Program: 82027
Project: 82027
Buggy source:
@Override public void start(){
  try {
    transport.harvestLocalCandidates();
    JireconSessionInfo sessionInfo=session.getSessionInfo();
    JireconRecorderInfo recorderInfo=recorder.getRecorderInfo();
    JingleIQ initPacket=session.connect(sessionInfo,recorderInfo,transport,srtpControl);
    Map<MediaType,String> fingerprints=JinglePacketParser.getFingerprint(initPacket);
    for (    Entry<MediaType,String> f : fingerprints.entrySet()) {
      srtpControl.addRemoteFingerprint(f.getKey(),f.getValue());
    }
    Map<MediaType,IceUdpTransportPacketExtension> transportPEs=JinglePacketParser.getTransportPacketExts(initPacket);
    transport.harvestRemoteCandidates(transportPEs);
    transport.startConnectivityCheck();
    Map<MediaType,StreamConnector> streamConnectors=new HashMap<MediaType,StreamConnector>();
    Map<MediaType,MediaStreamTarget> mediaStreamTargets=new HashMap<MediaType,MediaStreamTarget>();
    for (    MediaType mediaType : MediaType.values()) {
      if (mediaType != MediaType.AUDIO && mediaType != MediaType.VIDEO)       continue;
      StreamConnector streamConnector=transport.getStreamConnector(mediaType);
      streamConnectors.put(mediaType,streamConnector);
      MediaStreamTarget mediaStreamTarget=transport.getStreamTarget(mediaType);
      mediaStreamTargets.put(mediaType,mediaStreamTarget);
    }
    Map<MediaFormat,Byte> formatAndDynamicPTs=JinglePacketParser.getFormatAndDynamicPTs(initPacket);
    recorder.startRecording(formatAndDynamicPTs,streamConnectors,mediaStreamTargets);
  }
 catch (  BindException e) {
    e.printStackTrace();
  }
catch (  IllegalArgumentException e) {
    e.printStackTrace();
  }
catch (  IOException e) {
    e.printStackTrace();
  }
catch (  XMPPException e) {
    e.printStackTrace();
  }
catch (  OperationFailedException e) {
    e.printStackTrace();
  }
catch (  MediaException e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
@Override public void start(){
  try {
    transport.harvestLocalCandidates();
    JireconSessionInfo sessionInfo=session.getSessionInfo();
    JireconRecorderInfo recorderInfo=recorder.getRecorderInfo();
    JingleIQ initIq=session.connect(sessionInfo,recorderInfo,transport,srtpControl);
    Map<MediaType,String> fingerprints=JinglePacketParser.getFingerprint(initIq);
    for (    Entry<MediaType,String> f : fingerprints.entrySet()) {
      srtpControl.addRemoteFingerprint(f.getKey(),f.getValue());
    }
    Map<MediaType,IceUdpTransportPacketExtension> transportPEs=JinglePacketParser.getTransportPacketExts(initIq);
    transport.harvestRemoteCandidates(transportPEs);
    transport.startConnectivityCheck();
    Map<MediaType,StreamConnector> streamConnectors=new HashMap<MediaType,StreamConnector>();
    Map<MediaType,MediaStreamTarget> mediaStreamTargets=new HashMap<MediaType,MediaStreamTarget>();
    for (    MediaType mediaType : MediaType.values()) {
      if (mediaType != MediaType.AUDIO && mediaType != MediaType.VIDEO)       continue;
      StreamConnector streamConnector=transport.getStreamConnector(mediaType);
      streamConnectors.put(mediaType,streamConnector);
      MediaStreamTarget mediaStreamTarget=transport.getStreamTarget(mediaType);
      mediaStreamTargets.put(mediaType,mediaStreamTarget);
    }
    Map<MediaFormat,Byte> formatAndDynamicPTs=JinglePacketParser.getFormatAndDynamicPTs(initIq);
    recorder.startRecording(formatAndDynamicPTs,streamConnectors,mediaStreamTargets);
  }
 catch (  BindException e) {
    e.printStackTrace();
  }
catch (  IllegalArgumentException e) {
    e.printStackTrace();
  }
catch (  IOException e) {
    e.printStackTrace();
  }
catch (  XMPPException e) {
    e.printStackTrace();
  }
catch (  OperationFailedException e) {
    e.printStackTrace();
  }
catch (  MediaException e) {
    e.printStackTrace();
  }
}