Program: 50070
Project: 50070
Buggy source:
public void readData(DataInput in) throws IOException {
  groupConfig=new GroupConfig();
  groupConfig.readData(in);
  port=in.readInt();
  boolean[] b1=ByteUtil.fromByte(in.readByte());
  reuseAddress=b1[0];
  portAutoIncrement=b1[1];
  superClient=b1[2];
  boolean[] b2=ByteUtil.fromByte(in.readByte());
  boolean hasMapConfigs=b2[0];
  boolean hasMapExecutors=b2[1];
  boolean hasMapTopicConfigs=b2[2];
  boolean hasMapQueueConfigs=b2[3];
  boolean hasMapMergePolicyConfigs=b2[4];
  boolean hasProperties=b2[5];
  networkConfig=new NetworkConfig();
  networkConfig.readData(in);
  executorConfig=new ExecutorConfig();
  executorConfig.readData(in);
  if (hasMapConfigs) {
    int size=in.readInt();
    mapConfigs=new ConcurrentHashMap<String,MapConfig>(size);
    for (int i=0; i < size; i++) {
      final MapConfig mapConfig=new MapConfig();
      mapConfig.readData(in);
      mapConfigs.put(mapConfig.getName(),mapConfig);
    }
  }
  if (hasMapExecutors) {
    int size=in.readInt();
    mapExecutors=new ConcurrentHashMap<String,ExecutorConfig>(size);
    for (int i=0; i < size; i++) {
      final ExecutorConfig executorConfig=new ExecutorConfig();
      executorConfig.readData(in);
      mapExecutors.put(executorConfig.getName(),executorConfig);
    }
  }
  if (hasMapTopicConfigs) {
    int size=in.readInt();
    mapTopicConfigs=new ConcurrentHashMap<String,TopicConfig>(size);
    for (int i=0; i < size; i++) {
      final TopicConfig topicConfig=new TopicConfig();
      topicConfig.readData(in);
      mapTopicConfigs.put(topicConfig.getName(),topicConfig);
    }
  }
  if (hasMapQueueConfigs) {
    int size=in.readInt();
    mapQueueConfigs=new ConcurrentHashMap<String,QueueConfig>(size);
    for (int i=0; i < size; i++) {
      final QueueConfig queueConfig=new QueueConfig();
      queueConfig.readData(in);
      mapQueueConfigs.put(queueConfig.getName(),queueConfig);
    }
  }
  if (hasMapMergePolicyConfigs) {
  }
  if (hasProperties) {
    int size=in.readInt();
    properties=new Properties();
    for (int i=0; i < size; i++) {
      final String name=in.readUTF();
      final String value=in.readUTF();
      properties.put(name,value);
    }
  }
}

Fixed version (ground truth):
public void readData(DataInput in) throws IOException {
  groupConfig=new GroupConfig();
  groupConfig.readData(in);
  port=in.readInt();
  boolean[] b1=ByteUtil.fromByte(in.readByte());
  checkCompatibility=b1[0];
  reuseAddress=b1[1];
  portAutoIncrement=b1[2];
  superClient=b1[3];
  boolean[] b2=ByteUtil.fromByte(in.readByte());
  boolean hasMapConfigs=b2[0];
  boolean hasMapExecutors=b2[1];
  boolean hasMapTopicConfigs=b2[2];
  boolean hasMapQueueConfigs=b2[3];
  boolean hasMapMergePolicyConfigs=b2[4];
  boolean hasProperties=b2[5];
  networkConfig=new NetworkConfig();
  networkConfig.readData(in);
  executorConfig=new ExecutorConfig();
  executorConfig.readData(in);
  if (hasMapConfigs) {
    int size=in.readInt();
    mapConfigs=new ConcurrentHashMap<String,MapConfig>(size);
    for (int i=0; i < size; i++) {
      final MapConfig mapConfig=new MapConfig();
      mapConfig.readData(in);
      mapConfigs.put(mapConfig.getName(),mapConfig);
    }
  }
  if (hasMapExecutors) {
    int size=in.readInt();
    mapExecutors=new ConcurrentHashMap<String,ExecutorConfig>(size);
    for (int i=0; i < size; i++) {
      final ExecutorConfig executorConfig=new ExecutorConfig();
      executorConfig.readData(in);
      mapExecutors.put(executorConfig.getName(),executorConfig);
    }
  }
  if (hasMapTopicConfigs) {
    int size=in.readInt();
    mapTopicConfigs=new ConcurrentHashMap<String,TopicConfig>(size);
    for (int i=0; i < size; i++) {
      final TopicConfig topicConfig=new TopicConfig();
      topicConfig.readData(in);
      mapTopicConfigs.put(topicConfig.getName(),topicConfig);
    }
  }
  if (hasMapQueueConfigs) {
    int size=in.readInt();
    mapQueueConfigs=new ConcurrentHashMap<String,QueueConfig>(size);
    for (int i=0; i < size; i++) {
      final QueueConfig queueConfig=new QueueConfig();
      queueConfig.readData(in);
      mapQueueConfigs.put(queueConfig.getName(),queueConfig);
    }
  }
  if (hasMapMergePolicyConfigs) {
  }
  if (hasProperties) {
    int size=in.readInt();
    properties=new Properties();
    for (int i=0; i < size; i++) {
      final String name=in.readUTF();
      final String value=in.readUTF();
      properties.put(name,value);
    }
  }
}