Program: 83655
Project: 83655
Buggy source:
public void handleMessage(byte[] data,boolean fromDarknet,PeerNode source,int type){
  if (!fromDarknet) {
    freenet.support.Logger.error(this,"String_Node_Str" + source);
    return;
  }
  DarknetPeerNode darkSource=(DarknetPeerNode)source;
  freenet.support.Logger.normal(this,"String_Node_Str" + darkSource.getPeer() + "String_Node_Str");
  SimpleFieldSet fs=null;
  try {
    fs=new SimpleFieldSet(new String(data,"String_Node_Str"),false,true);
  }
 catch (  UnsupportedEncodingException e) {
    throw new Error("String_Node_Str" + e,e);
  }
catch (  IOException e) {
    freenet.support.Logger.error(this,"String_Node_Str",e);
    return;
  }
  long globalIdentifier;
  try {
    globalIdentifier=fs.getLong("String_Node_Str");
  }
 catch (  FSParseException e) {
    System.out.println("String_Node_Str" + ((DarknetPeerNode)source).getName() + '.');
    return;
  }
  try {
    type=fs.getInt("String_Node_Str");
  }
 catch (  FSParseException e) {
    System.out.println("String_Node_Str" + globalIdentifier);
  }
  if (type == OFFER_INVITE) {
    try {
      String username=new String(Base64.decode(fs.get("String_Node_Str")));
      String roomName=new String(Base64.decode(fs.get("String_Node_Str")));
      receivedInvites.put(globalIdentifier,new chatInvite(username,roomName,darkSource));
    }
 catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
 else   if (type == RETRACT_INVITE) {
    if (receivedInvites.containsKey(globalIdentifier) && receivedInvites.get(globalIdentifier).darkPeer == darkSource) {
      receivedInvites.remove(darkSource.getPubKeyHash());
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
  if (!chatRooms.containsKey(globalIdentifier)) {
    freenet.support.Logger.error(this,l10n.getBase().getString("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{String.valueOf(globalIdentifier),String.valueOf(type)}));
    return;
  }
  if (type == ACCEPT_INVITE) {
    chatRooms.get(globalIdentifier).receiveInviteAccept(darkSource);
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
 else   if (type == REJECT_INVITE) {
    chatRooms.get(globalIdentifier).receiveInviteReject(darkSource);
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
  byte[] pubKeyHash;
  try {
    pubKeyHash=Base64.decode(fs.getString("String_Node_Str"));
  }
 catch (  FSParseException e) {
    pubKeyHash=darkSource.getPubKeyHash();
  }
catch (  IllegalBase64Exception e) {
    System.out.println("String_Node_Str" + darkSource.getName() + '.');
    return;
  }
  if (type == MESSAGE) {
    try {
      chatRooms.get(globalIdentifier).receiveMessage(pubKeyHash,new Date(fs.getLong("String_Node_Str")),darkSource.getPubKeyHash(),new String(Base64.decode(fs.get("String_Node_Str"))));
    }
 catch (    FSParseException e) {
      System.out.println("String_Node_Str" + darkSource.getName() + '.');
    }
catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
  }
 else   if (type == JOIN) {
    try {
      chatRooms.get(globalIdentifier).joinedParticipant(pubKeyHash,new String(Base64.decode(fs.get("String_Node_Str"))),darkSource);
    }
 catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
  }
 else   if (type == LEAVE) {
    chatRooms.get(globalIdentifier).removeParticipant(pubKeyHash,darkSource.getPubKeyHash(),false);
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
  }
}

Fixed version (ground truth):
public void handleMessage(byte[] data,boolean fromDarknet,PeerNode source,int type){
  if (!fromDarknet) {
    freenet.support.Logger.error(this,"String_Node_Str" + source);
    return;
  }
  DarknetPeerNode darkSource=(DarknetPeerNode)source;
  freenet.support.Logger.normal(this,"String_Node_Str" + darkSource.getPeer() + "String_Node_Str");
  SimpleFieldSet fs=null;
  try {
    fs=new SimpleFieldSet(new String(data,"String_Node_Str"),false,true);
  }
 catch (  UnsupportedEncodingException e) {
    throw new Error("String_Node_Str" + e,e);
  }
catch (  IOException e) {
    freenet.support.Logger.error(this,"String_Node_Str",e);
    return;
  }
  long globalIdentifier;
  try {
    globalIdentifier=fs.getLong("String_Node_Str");
  }
 catch (  FSParseException e) {
    System.out.println("String_Node_Str" + ((DarknetPeerNode)source).getName() + '.');
    return;
  }
  try {
    type=fs.getInt("String_Node_Str");
  }
 catch (  FSParseException e) {
    System.out.println("String_Node_Str" + globalIdentifier);
  }
  if (type == OFFER_INVITE) {
    try {
      String username=new String(Base64.decode(fs.get("String_Node_Str")));
      String roomName=new String(Base64.decode(fs.get("String_Node_Str")));
      receivedInvites.put(globalIdentifier,new chatInvite(username,roomName,darkSource));
    }
 catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
 else   if (type == RETRACT_INVITE) {
    if (receivedInvites.containsKey(globalIdentifier) && receivedInvites.get(globalIdentifier).darkPeer == darkSource) {
      receivedInvites.remove(darkSource.getPubKeyHash());
    }
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    return;
  }
  if (!chatRooms.containsKey(globalIdentifier)) {
    freenet.support.Logger.error(this,l10n.getBase().getString("String_Node_Str",new String[]{"String_Node_Str","String_Node_Str"},new String[]{String.valueOf(globalIdentifier),String.valueOf(type)}));
    return;
  }
  if (type == ACCEPT_INVITE) {
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    chatRooms.get(globalIdentifier).receiveInviteAccept(darkSource);
    return;
  }
 else   if (type == REJECT_INVITE) {
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    chatRooms.get(globalIdentifier).receiveInviteReject(darkSource);
    return;
  }
  byte[] pubKeyHash;
  try {
    pubKeyHash=Base64.decode(fs.getString("String_Node_Str"));
  }
 catch (  FSParseException e) {
    pubKeyHash=darkSource.getPubKeyHash();
  }
catch (  IllegalBase64Exception e) {
    System.out.println("String_Node_Str" + darkSource.getName() + '.');
    return;
  }
  if (type == MESSAGE) {
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    try {
      chatRooms.get(globalIdentifier).receiveMessage(pubKeyHash,new Date(fs.getLong("String_Node_Str")),darkSource.getPubKeyHash(),new String(Base64.decode(fs.get("String_Node_Str"))));
    }
 catch (    FSParseException e) {
      System.out.println("String_Node_Str" + darkSource.getName() + '.');
    }
catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
  }
 else   if (type == JOIN) {
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    try {
      chatRooms.get(globalIdentifier).joinedParticipant(pubKeyHash,new String(Base64.decode(fs.get("String_Node_Str"))),darkSource);
    }
 catch (    IllegalBase64Exception e) {
      freenet.support.Logger.error(this,"String_Node_Str",e);
    }
  }
 else   if (type == LEAVE) {
    System.out.println("String_Node_Str" + globalIdentifier + "String_Node_Str"+ darkSource.getName());
    chatRooms.get(globalIdentifier).removeParticipant(pubKeyHash,darkSource.getPubKeyHash(),false);
  }
}