Program: 79402
Project: 79402
Buggy source:
public static void main(String[] args){
  Registry registry;
  System.err.println("String_Node_Str");
  TestLibrary.suggestSecurityManager("String_Node_Str");
  RMID rmid=null;
  try {
    RMID.removeLog();
    rmid=RMID.createRMID();
    rmid.start();
    final Properties p=new Properties();
    p.put("String_Node_Str",TestParams.defaultGroupPolicy);
    p.put("String_Node_Str",TestParams.defaultSecurityManager);
    Thread t=new Thread(){
      public void run(){
        try {
          System.err.println("String_Node_Str");
          ActivationGroupDesc groupDesc=new ActivationGroupDesc(p,null);
          ActivationSystem system=ActivationGroup.getSystem();
          ActivationGroupID groupID=system.registerGroup(groupDesc);
          ActivateMe[] obj=new ActivateMe[NUM_OBJECTS];
          for (int i=0; i < NUM_OBJECTS; i++) {
            System.err.println("String_Node_Str" + i);
            ActivationDesc desc=new ActivationDesc(groupID,"String_Node_Str",null,null);
            System.err.println("String_Node_Str" + i);
            obj[i]=(ActivateMe)Activatable.register(desc);
            System.err.println("String_Node_Str" + i);
            obj[i].ping();
          }
          lastResortExitObj=obj[0];
          System.err.println("String_Node_Str");
          system.unregisterGroup(groupID);
          try {
            System.err.println("String_Node_Str");
            system.getActivationGroupDesc(groupID);
            error="String_Node_Str";
          }
 catch (          UnknownGroupException e) {
            System.err.println("String_Node_Str" + "String_Node_Str");
          }
          for (int i=0; i < NUM_OBJECTS; i++) {
            System.err.println("String_Node_Str" + i);
            obj[i].shutdown();
            obj[i]=null;
          }
          lastResortExitObj=null;
        }
 catch (        Exception e) {
          exception=e;
        }
        done=true;
      }
    }
;
    t.start();
    t.join(120000);
    if (exception != null) {
      TestLibrary.bomb("String_Node_Str",exception);
    }
 else     if (error != null) {
      TestLibrary.bomb(error,null);
    }
 else     if (!done) {
      TestLibrary.bomb("String_Node_Str",null);
    }
 else {
      System.err.println("String_Node_Str");
    }
  }
 catch (  Exception e) {
    TestLibrary.bomb("String_Node_Str",e);
  }
 finally {
    if (lastResortExitObj != null) {
      try {
        lastResortExitObj.justGoAway();
      }
 catch (      Exception munch) {
      }
    }
    try {
      registry=TestLibrary.createRegistryOnUnusedPort();
      registryPort=TestLibrary.getRegistryPort(registry);
      Callback robj=new Callback();
      registry.bind("String_Node_Str",robj);
      int maxwait=30;
      int nd=robj.getNumDeactivated();
      while ((nd < NUM_OBJECTS) && (maxwait > 0)) {
        System.err.println("String_Node_Str" + nd);
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException ie) {
        }
        maxwait--;
        nd=robj.getNumDeactivated();
      }
    }
 catch (    Exception ce) {
      System.err.println("String_Node_Str" + ce);
      ce.printStackTrace();
    }
    ActivationLibrary.rmidCleanup(rmid);
  }
}

Fixed version (ground truth):
public static void main(String[] args) throws RemoteException {
  System.err.println("String_Node_Str");
  TestLibrary.suggestSecurityManager("String_Node_Str");
  RMID rmid=null;
  Registry registry=TestLibrary.createRegistryOnUnusedPort();
  registryPort=TestLibrary.getRegistryPort(registry);
  Callback robj=new Callback();
  registry.rebind("String_Node_Str",robj);
  try {
    RMID.removeLog();
    rmid=RMID.createRMID();
    rmid.start();
    final Properties p=new Properties();
    p.put("String_Node_Str",TestParams.defaultGroupPolicy);
    p.put("String_Node_Str",TestParams.defaultSecurityManager);
    p.put("String_Node_Str",Integer.toString(registryPort));
    Thread t=new Thread(){
      public void run(){
        try {
          System.err.println("String_Node_Str");
          ActivationGroupDesc groupDesc=new ActivationGroupDesc(p,null);
          ActivationSystem system=ActivationGroup.getSystem();
          ActivationGroupID groupID=system.registerGroup(groupDesc);
          ActivateMe[] obj=new ActivateMe[NUM_OBJECTS];
          for (int i=0; i < NUM_OBJECTS; i++) {
            System.err.println("String_Node_Str" + i);
            ActivationDesc desc=new ActivationDesc(groupID,"String_Node_Str",null,null);
            System.err.println("String_Node_Str" + i);
            obj[i]=(ActivateMe)Activatable.register(desc);
            System.err.println("String_Node_Str" + i);
            obj[i].ping();
          }
          lastResortExitObj=obj[0];
          System.err.println("String_Node_Str");
          system.unregisterGroup(groupID);
          try {
            System.err.println("String_Node_Str");
            system.getActivationGroupDesc(groupID);
            error="String_Node_Str";
          }
 catch (          UnknownGroupException e) {
            System.err.println("String_Node_Str" + "String_Node_Str");
          }
          for (int i=0; i < NUM_OBJECTS; i++) {
            System.err.println("String_Node_Str" + i);
            obj[i].shutdown();
            obj[i]=null;
          }
          lastResortExitObj=null;
        }
 catch (        Exception e) {
          exception=e;
        }
        done=true;
      }
    }
;
    t.start();
    t.join(120000);
    if (exception != null) {
      TestLibrary.bomb("String_Node_Str",exception);
    }
 else     if (error != null) {
      TestLibrary.bomb(error,null);
    }
 else     if (!done) {
      TestLibrary.bomb("String_Node_Str",null);
    }
 else {
      System.err.println("String_Node_Str");
    }
  }
 catch (  Exception e) {
    TestLibrary.bomb("String_Node_Str",e);
  }
 finally {
    if (lastResortExitObj != null) {
      try {
        lastResortExitObj.justGoAway();
      }
 catch (      Exception munch) {
      }
    }
    try {
      int maxwait=30;
      int nd=robj.getNumDeactivated();
      while ((nd < NUM_OBJECTS) && (maxwait > 0)) {
        System.err.println("String_Node_Str" + nd);
        try {
          Thread.sleep(1000);
        }
 catch (        InterruptedException ie) {
        }
        maxwait--;
        nd=robj.getNumDeactivated();
      }
    }
 catch (    Exception ce) {
      System.err.println("String_Node_Str" + ce);
      ce.printStackTrace();
    }
    ActivationLibrary.rmidCleanup(rmid);
  }
}