Program: 103489
Project: 103489
Buggy source:
/** 
 * Creates new <tt>SendStream</tt> instances for the streams of  {@link #deviceSession} through {@link #rtpManager}.
 */
private void createSendStreams(){
  RTPManager rtpManager=getRTPManager();
  MediaDeviceSession deviceSession=getDeviceSession();
  DataSource dataSource=deviceSession.getOutputDataSource();
  int streamCount;
  if (dataSource instanceof PushBufferDataSource) {
    PushBufferStream[] streams=((PushBufferDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PushDataSource) {
    PushSourceStream[] streams=((PushDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PullBufferDataSource) {
    PullBufferStream[] streams=((PullBufferDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PullDataSource) {
    PullSourceStream[] streams=((PullDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   streamCount=(dataSource == null) ? 0 : 1;
  for (int streamIndex=0; streamIndex < streamCount; streamIndex++) {
    try {
      SendStream sendStream=rtpManager.createSendStream(dataSource,streamIndex);
      if (logger.isTraceEnabled())       logger.trace("String_Node_Str" + "String_Node_Str" + sendStream.hashCode() + "String_Node_Str"+ toString(dataSource)+ "String_Node_Str"+ streamIndex+ "String_Node_Str"+ rtpManager.hashCode());
      ZRTPTransformEngine engine=zrtpControl.getZrtpEngine();
      if (engine != null)       engine.setOwnSSRC(sendStream.getSSRC());
    }
 catch (    IOException ioe) {
      logger.error("String_Node_Str" + dataSource + "String_Node_Str"+ streamIndex,ioe);
    }
catch (    UnsupportedFormatException ufe) {
      logger.error("String_Node_Str" + dataSource + "String_Node_Str"+ streamIndex+ "String_Node_Str"+ ufe.getFailedFormat(),ufe);
    }
  }
  sendStreamsAreCreated=true;
  if (logger.isTraceEnabled()) {
    @SuppressWarnings("String_Node_Str") Vector<SendStream> sendStreams=rtpManager.getSendStreams();
    int sendStreamCount=(sendStreams == null) ? 0 : sendStreams.size();
    logger.trace("String_Node_Str" + rtpManager.hashCode() + "String_Node_Str"+ sendStreamCount);
  }
}

Fixed version (ground truth):
/** 
 * Creates new <tt>SendStream</tt> instances for the streams of  {@link #deviceSession} through {@link #rtpManager}.
 */
private void createSendStreams(){
  RTPManager rtpManager=getRTPManager();
  MediaDeviceSession deviceSession=getDeviceSession();
  DataSource dataSource=deviceSession.getOutputDataSource();
  int streamCount;
  if (dataSource instanceof PushBufferDataSource) {
    PushBufferStream[] streams=((PushBufferDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PushDataSource) {
    PushSourceStream[] streams=((PushDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PullBufferDataSource) {
    PullBufferStream[] streams=((PullBufferDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   if (dataSource instanceof PullDataSource) {
    PullSourceStream[] streams=((PullDataSource)dataSource).getStreams();
    streamCount=(streams == null) ? 0 : streams.length;
  }
 else   streamCount=(dataSource == null) ? 0 : 1;
  registerCustomCodecFormats(rtpManager);
  for (int streamIndex=0; streamIndex < streamCount; streamIndex++) {
    try {
      SendStream sendStream=rtpManager.createSendStream(dataSource,streamIndex);
      if (logger.isTraceEnabled())       logger.trace("String_Node_Str" + "String_Node_Str" + sendStream.hashCode() + "String_Node_Str"+ toString(dataSource)+ "String_Node_Str"+ streamIndex+ "String_Node_Str"+ rtpManager.hashCode());
      ZRTPTransformEngine engine=zrtpControl.getZrtpEngine();
      if (engine != null)       engine.setOwnSSRC(sendStream.getSSRC());
    }
 catch (    IOException ioe) {
      logger.error("String_Node_Str" + dataSource + "String_Node_Str"+ streamIndex,ioe);
    }
catch (    UnsupportedFormatException ufe) {
      logger.error("String_Node_Str" + dataSource + "String_Node_Str"+ streamIndex+ "String_Node_Str"+ ufe.getFailedFormat(),ufe);
    }
  }
  sendStreamsAreCreated=true;
  if (logger.isTraceEnabled()) {
    @SuppressWarnings("String_Node_Str") Vector<SendStream> sendStreams=rtpManager.getSendStreams();
    int sendStreamCount=(sendStreams == null) ? 0 : sendStreams.size();
    logger.trace("String_Node_Str" + rtpManager.hashCode() + "String_Node_Str"+ sendStreamCount);
  }
}