Program: 102917
Project: 102917
Buggy source:
/** 
 * Adds next payload type information update request to  {@link RequestType#CHANNEL_INFO_UPDATE} query currently being built.
 * @param map the map of content name to RTP description packet extension.
 * @param localChannelsInfo {@link ColibriConferenceIQ} holding info aboutColibri channels to be updated.
 * @return <tt>true</tt> if the request yields any changes in Colibrichannels state on the bridge or <tt>false</tt> otherwise. In general when <tt>false</tt> is returned for all combined requests it makes no sense to send it.
 */
public boolean addRtpDescription(Map<String,RtpDescriptionPacketExtension> map,ColibriConferenceIQ localChannelsInfo){
  Objects.requireNonNull(map,"String_Node_Str");
  Objects.requireNonNull(localChannelsInfo,"String_Node_Str");
  if (conferenceState == null || StringUtils.isNullOrEmpty(conferenceState.getID())) {
    return false;
  }
  assertRequestType(RequestType.CHANNEL_INFO_UPDATE);
  request.setType(IQ.Type.SET);
  boolean anyUpdates=false;
  for (  Map.Entry<String,RtpDescriptionPacketExtension> e : map.entrySet()) {
    String contentName=e.getKey();
    ColibriConferenceIQ.ChannelCommon channel=getColibriChannel(localChannelsInfo,contentName);
    if (channel != null && channel instanceof ColibriConferenceIQ.Channel) {
      RtpDescriptionPacketExtension rtpPE=e.getValue();
      if (rtpPE == null) {
        continue;
      }
      List<PayloadTypePacketExtension> pts=rtpPE.getPayloadTypes();
      if (pts == null || pts.isEmpty()) {
        continue;
      }
      anyUpdates=true;
      ColibriConferenceIQ.Channel channelRequest=request.getOrCreateContent(contentName).getChannel(channel.getID());
      if (channelRequest == null) {
        channelRequest=new ColibriConferenceIQ.Channel();
        channelRequest.setID(channel.getID());
      }
      for (      PayloadTypePacketExtension ptPE : pts) {
        channelRequest.addPayloadType(ptPE);
      }
    }
  }
  return anyUpdates;
}

Fixed version (ground truth):
/** 
 * Adds next payload type information update request to  {@link RequestType#CHANNEL_INFO_UPDATE} query currently being built.
 * @param map the map of content name to RTP description packet extension.
 * @param localChannelsInfo {@link ColibriConferenceIQ} holding info aboutColibri channels to be updated.
 * @return <tt>true</tt> if the request yields any changes in Colibrichannels state on the bridge or <tt>false</tt> otherwise. In general when <tt>false</tt> is returned for all combined requests it makes no sense to send it.
 */
public boolean addRtpDescription(Map<String,RtpDescriptionPacketExtension> map,ColibriConferenceIQ localChannelsInfo){
  Objects.requireNonNull(map,"String_Node_Str");
  Objects.requireNonNull(localChannelsInfo,"String_Node_Str");
  if (conferenceState == null || StringUtils.isNullOrEmpty(conferenceState.getID())) {
    return false;
  }
  assertRequestType(RequestType.CHANNEL_INFO_UPDATE);
  request.setType(IQ.Type.SET);
  boolean anyUpdates=false;
  for (  Map.Entry<String,RtpDescriptionPacketExtension> e : map.entrySet()) {
    String contentName=e.getKey();
    ColibriConferenceIQ.ChannelCommon channel=getColibriChannel(localChannelsInfo,contentName);
    if (channel != null && channel instanceof ColibriConferenceIQ.Channel) {
      RtpDescriptionPacketExtension rtpPE=e.getValue();
      if (rtpPE == null) {
        continue;
      }
      List<PayloadTypePacketExtension> pts=rtpPE.getPayloadTypes();
      if (pts == null || pts.isEmpty()) {
        continue;
      }
      anyUpdates=true;
      ColibriConferenceIQ.Channel channelRequest=(ColibriConferenceIQ.Channel)getRequestChannel(request.getOrCreateContent(contentName),channel);
      if (channelRequest == null) {
        channelRequest=new ColibriConferenceIQ.Channel();
        channelRequest.setID(channel.getID());
      }
      for (      PayloadTypePacketExtension ptPE : pts) {
        channelRequest.addPayloadType(ptPE);
      }
    }
  }
  return anyUpdates;
}