Program: 160513
Project: 160513
Buggy source:
@Override public void register(SInternalServicePluginConfiguration internalServicePluginConfiguration,PluginConfiguration pluginConfiguration){
  ServiceDescriptor serviceDescriptor=StoreFactory.eINSTANCE.createServiceDescriptor();
  serviceDescriptor.setProviderName("String_Node_Str");
  serviceDescriptor.setIdentifier(getClass().getName());
  serviceDescriptor.setName("String_Node_Str");
  serviceDescriptor.setDescription("String_Node_Str");
  serviceDescriptor.setNotificationProtocol(AccessMethod.INTERNAL);
  serviceDescriptor.setTrigger(Trigger.NEW_REVISION);
  registerNewRevisionHandler(serviceDescriptor,new NewRevisionHandler(){
    @Override public void newRevision(    BimServerClientInterface bimServerClientInterface,    long poid,    long roid,    String userToken,    long soid,    SObjectType settings) throws ServerException, UserException {
      try {
        Date startDate=new Date();
        Long topicId=bimServerClientInterface.getRegistry().registerProgressOnRevisionTopic(SProgressTopicType.RUNNING_SERVICE,poid,roid,"String_Node_Str");
        for (int i=0; i < 100; i++) {
          SLongActionState state=new SLongActionState();
          state.setProgress(i);
          state.setTitle("String_Node_Str");
          state.setState(SActionState.STARTED);
          state.setStart(startDate);
          bimServerClientInterface.getRegistry().updateProgressTopic(topicId,state);
          try {
            Thread.sleep(200);
          }
 catch (          InterruptedException e) {
            LOGGER.error("String_Node_Str",e);
          }
        }
        SLongActionState state=new SLongActionState();
        state.setProgress(100);
        state.setTitle("String_Node_Str");
        state.setState(SActionState.FINISHED);
        state.setStart(startDate);
        state.setEnd(new Date());
        bimServerClientInterface.getRegistry().updateProgressTopic(topicId,state);
        bimServerClientInterface.getRegistry().unregisterProgressTopic(topicId);
      }
 catch (      PublicInterfaceNotFoundException e) {
        LOGGER.error("String_Node_Str",e);
      }
    }
  }
);
}

Fixed version (ground truth):
@Override public void register(SInternalServicePluginConfiguration internalServicePluginConfiguration,PluginConfiguration pluginConfiguration){
  ServiceDescriptor serviceDescriptor=StoreFactory.eINSTANCE.createServiceDescriptor();
  serviceDescriptor.setProviderName("String_Node_Str");
  serviceDescriptor.setIdentifier("String_Node_Str" + internalServicePluginConfiguration.getOid());
  serviceDescriptor.setName("String_Node_Str");
  serviceDescriptor.setDescription("String_Node_Str");
  serviceDescriptor.setNotificationProtocol(AccessMethod.INTERNAL);
  serviceDescriptor.setTrigger(Trigger.NEW_REVISION);
  registerNewRevisionHandler(serviceDescriptor,new NewRevisionHandler(){
    @Override public void newRevision(    BimServerClientInterface bimServerClientInterface,    long poid,    long roid,    String userToken,    long soid,    SObjectType settings) throws ServerException, UserException {
      try {
        Date startDate=new Date();
        Long topicId=bimServerClientInterface.getRegistry().registerProgressOnRevisionTopic(SProgressTopicType.RUNNING_SERVICE,poid,roid,"String_Node_Str");
        for (int i=0; i < 100; i++) {
          SLongActionState state=new SLongActionState();
          state.setProgress(i);
          state.setTitle("String_Node_Str");
          state.setState(SActionState.STARTED);
          state.setStart(startDate);
          bimServerClientInterface.getRegistry().updateProgressTopic(topicId,state);
          try {
            Thread.sleep(200);
          }
 catch (          InterruptedException e) {
            LOGGER.error("String_Node_Str",e);
          }
        }
        SLongActionState state=new SLongActionState();
        state.setProgress(100);
        state.setTitle("String_Node_Str");
        state.setState(SActionState.FINISHED);
        state.setStart(startDate);
        state.setEnd(new Date());
        bimServerClientInterface.getRegistry().updateProgressTopic(topicId,state);
        bimServerClientInterface.getRegistry().unregisterProgressTopic(topicId);
      }
 catch (      PublicInterfaceNotFoundException e) {
        LOGGER.error("String_Node_Str",e);
      }
    }
  }
);
}