Program: 73263
Project: 73263
Buggy source:
/** 
 * Callback method when a message from the topic is received.
 * @param topicName The name of the topic from which the message was received.
 * @param payload The MQTT message.
 * @param qos The Quality of Service at which the message was delivered by the broker.
 * @param retained indicates if this message is retained by the broker.
 * @see com.ibm.mqtt.MqttSimpleCallback#publishArrived(java.lang.String,byte[],int,boolean)
 * @exception Exception if there is a problem reading next token or setting attribute value
 */
public void publishArrived(String topicName,byte[] payload,int qos,boolean retained) throws Exception {
  Tokenizer tokenizer=new Tokenizer(payload);
  Token token=null;
  _LOGGER.fine("String_Node_Str" + _batchCount++);
  while ((token=tokenizer.getNextToken()) != null) {
    if (token instanceof CommunicationToken) {
      CommunicationToken communicationToken=(CommunicationToken)token;
      ProxySourceData data=_proxyModelInfrastructure.getProxySourceMap().get(communicationToken.getTargetActorName());
      data.getTokenQueue().add(communicationToken);
synchronized (data.getProxySource()) {
        data.getProxySource().notifyAll();
      }
    }
 else     if (token instanceof AttributeChangeToken) {
      AttributeChangeToken attributeChangeToken=(AttributeChangeToken)token;
      Settable remoteAttribute=_proxyModelInfrastructure.getRemoteAttributesMap().get(attributeChangeToken.getTargetSettableName());
      ProxyValueListener listener=_proxyModelInfrastructure.getRemoteAttributeListenersMap().get(attributeChangeToken.getTargetSettableName());
synchronized (listener) {
        try {
          listener.setEnabled(false);
          remoteAttribute.setExpression(attributeChangeToken.getExpression());
          remoteAttribute.validate();
        }
  finally {
          listener.setEnabled(true);
        }
      }
      _LOGGER.info("String_Node_Str");
    }
 else     if (token instanceof PingToken) {
      _proxyModelInfrastructure.getExecutor().execute(new PongTask(new PongToken(((PingToken)token).getTimestamp())));
      _LOGGER.info("String_Node_Str");
    }
 else     if (token instanceof PongToken) {
      _proxyModelInfrastructure.setLastPongToken((PongToken)token);
      _LOGGER.info("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
/** 
 * Callback method when a message from the topic is received.
 * @param topicName The name of the topic from which the message was received.
 * @param payload The MQTT message.
 * @param qos The Quality of Service at which the message was delivered by the broker.
 * @param retained indicates if this message is retained by the broker.
 * @see com.ibm.mqtt.MqttSimpleCallback#publishArrived(java.lang.String,byte[],int,boolean)
 * @exception Exception if there is a problem reading next token or setting attribute value
 */
public void publishArrived(String topicName,byte[] payload,int qos,boolean retained) throws Exception {
  Tokenizer tokenizer=new Tokenizer(payload);
  Token token=null;
  _LOGGER.fine("String_Node_Str" + _batchCount++);
  while ((token=tokenizer.getNextToken()) != null) {
    if (token instanceof CommunicationToken) {
      CommunicationToken communicationToken=(CommunicationToken)token;
      ProxySourceData data=_proxyModelInfrastructure.getProxySourceMap().get(communicationToken.getTargetActorName());
      data.getTokenQueue().add(communicationToken);
synchronized (data.getProxySource()) {
        data.getProxySource().notifyAll();
      }
    }
 else     if (token instanceof AttributeChangeToken) {
      AttributeChangeToken attributeChangeToken=(AttributeChangeToken)token;
      Settable remoteAttribute=_proxyModelInfrastructure.getRemoteAttributesMap().get(attributeChangeToken.getTargetSettableName());
      ProxyValueListener listener=_proxyModelInfrastructure.getRemoteAttributeListenersMap().get(attributeChangeToken.getTargetSettableName());
synchronized (listener) {
        try {
          listener.setEnabled(false);
          remoteAttribute.setExpression(attributeChangeToken.getExpression());
          remoteAttribute.validate();
        }
  finally {
          listener.setEnabled(true);
        }
      }
      _LOGGER.info("String_Node_Str");
    }
 else     if (token instanceof PingToken) {
      _proxyModelInfrastructure.getExecutor().execute(new PongTask(new PongToken(((PingToken)token).getTimestamp())));
      _LOGGER.info("String_Node_Str");
    }
 else     if (token instanceof PongToken) {
      _proxyModelInfrastructure.setLastPongToken((PongToken)token);
      _LOGGER.info("String_Node_Str");
    }
 else     if (token instanceof RemoteEventToken) {
      _proxyModelInfrastructure.fireServerEvent((RemoteEventToken)token);
    }
  }
}