Program: 92098
Project: 92098
Buggy source:
/** 
 * Test method for   {@link org.eclipse.linuxtools.internal.tmf.core.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
 */
public void testExecute(){
  final long TIMEOUT=100;
  MyProvider provider=new MyProvider();
  MyRequest request1=new MyRequest(ITmfRequest.TmfRequestPriority.NORMAL,Integer.MAX_VALUE / 10,reqmon1);
  MyThread thread1=new MyThread(provider,request1,thrmon1);
  MyRequest request2=new MyRequest(ITmfRequest.TmfRequestPriority.HIGH,Integer.MAX_VALUE / 100,reqmon2);
  MyThread thread2=new MyThread(provider,request2,thrmon2);
  MyRequest request3=new MyRequest(ITmfRequest.TmfRequestPriority.HIGH,Integer.MAX_VALUE / 100,reqmon3);
  MyThread thread3=new MyThread(provider,request3,thrmon3);
  fExecutor.execute(thread1);
synchronized (reqmon1) {
    try {
      reqmon1.wait();
      assertTrue("String_Node_Str",thread1.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
  fExecutor.execute(thread2);
synchronized (reqmon2) {
    try {
      reqmon2.wait();
      assertFalse("String_Node_Str",thread1.isRunning());
      assertTrue("String_Node_Str",thread2.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
  try {
synchronized (reqmon2) {
      reqmon2.wait();
      assertTrue("String_Node_Str",thread2.isCompleted());
    }
synchronized (thrmon1) {
      thrmon1.wait(TIMEOUT);
      assertTrue("String_Node_Str",thread1.isRunning());
    }
  }
 catch (  InterruptedException e) {
  }
  fExecutor.execute(thread3);
synchronized (reqmon3) {
    try {
      reqmon3.wait();
      assertFalse("String_Node_Str",thread1.isRunning());
      assertTrue("String_Node_Str",thread3.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
  try {
synchronized (reqmon3) {
      reqmon3.wait();
      assertTrue("String_Node_Str",thread3.isCompleted());
    }
synchronized (thrmon1) {
      thrmon1.wait(TIMEOUT);
      assertTrue("String_Node_Str",thread1.isRunning());
    }
  }
 catch (  InterruptedException e) {
  }
  try {
synchronized (reqmon1) {
      reqmon1.wait();
      assertTrue("String_Node_Str",thread1.isCompleted());
    }
  }
 catch (  InterruptedException e) {
  }
}

Fixed version (ground truth):
/** 
 * Test method for   {@link org.eclipse.linuxtools.internal.tmf.core.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
 */
public void testExecute(){
  final long TIMEOUT=100;
  final long ONE_MINUTE=60 * 1000;
  MyProvider provider=new MyProvider();
  MyRequest request1=new MyRequest(ITmfRequest.TmfRequestPriority.NORMAL,Integer.MAX_VALUE / 10,reqmon1);
  MyThread thread1=new MyThread(provider,request1,thrmon1);
  MyRequest request2=new MyRequest(ITmfRequest.TmfRequestPriority.HIGH,Integer.MAX_VALUE / 100,reqmon2);
  MyThread thread2=new MyThread(provider,request2,thrmon2);
  MyRequest request3=new MyRequest(ITmfRequest.TmfRequestPriority.HIGH,Integer.MAX_VALUE / 100,reqmon3);
  MyThread thread3=new MyThread(provider,request3,thrmon3);
synchronized (reqmon1) {
    try {
      fExecutor.execute(thread1);
      reqmon1.wait(ONE_MINUTE);
      assertTrue("String_Node_Str",thread1.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
synchronized (reqmon2) {
    try {
      fExecutor.execute(thread2);
      reqmon2.wait(ONE_MINUTE);
      assertFalse("String_Node_Str",thread1.isRunning());
      assertTrue("String_Node_Str",thread2.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
  try {
synchronized (reqmon2) {
      reqmon2.wait(ONE_MINUTE);
      assertTrue("String_Node_Str",thread2.isCompleted());
    }
synchronized (thrmon1) {
      thrmon1.wait(TIMEOUT);
      assertTrue("String_Node_Str",thread1.isRunning());
    }
  }
 catch (  InterruptedException e) {
  }
synchronized (reqmon3) {
    try {
      fExecutor.execute(thread3);
      reqmon3.wait(ONE_MINUTE);
      assertFalse("String_Node_Str",thread1.isRunning());
      assertTrue("String_Node_Str",thread3.isRunning());
    }
 catch (    InterruptedException e) {
    }
  }
  try {
synchronized (reqmon3) {
      reqmon3.wait(ONE_MINUTE);
      assertTrue("String_Node_Str",thread3.isCompleted());
    }
synchronized (thrmon1) {
      thrmon1.wait(TIMEOUT);
      assertTrue("String_Node_Str",thread1.isRunning());
    }
  }
 catch (  InterruptedException e) {
  }
  try {
synchronized (reqmon1) {
      reqmon1.wait(ONE_MINUTE);
      assertTrue("String_Node_Str",thread1.isCompleted());
    }
  }
 catch (  InterruptedException e) {
  }
}