Program: 94205
Project: 94205
Buggy source:
/** 
 * @since 3.0
 */
protected void encodeServiceProperties(org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,IServiceProperties result){
  encodeOSGiServiceProperties(endpointDescription,result);
  if (endpointDescription instanceof org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription) {
    EndpointDescription ecfEd=(EndpointDescription)endpointDescription;
    Long rsId=(Long)endpointDescription.getProperties().get(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
    if (rsId != null)     encodeLong(result,org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,rsId);
    String containerIDNamespace=ecfEd.getIdNamespace();
    if (containerIDNamespace != null)     encodeString(result,RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,containerIDNamespace);
    ID connectTargetID=ecfEd.getConnectTargetID();
    if (connectTargetID != null)     encodeString(result,RemoteConstants.ENDPOINT_CONNECTTARGET_ID,connectTargetID.getName());
    ID[] idFilter=ecfEd.getIDFilter();
    if (idFilter != null && idFilter.length > 0) {
      List<String> idNames=new ArrayList<String>();
      for (int i=0; i < idFilter.length; i++)       idNames.add(idFilter[i].getName());
      encodeList(result,RemoteConstants.ENDPOINT_IDFILTER_IDS,idNames);
    }
    String remoteFilter=ecfEd.getRemoteServiceFilter();
    if (remoteFilter != null)     encodeString(result,RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,remoteFilter);
  }
  encodeNonStandardServiceProperties(endpointDescription.getProperties(),result);
}

Fixed version (ground truth):
/** 
 * @since 3.0
 */
protected void encodeServiceProperties(org.osgi.service.remoteserviceadmin.EndpointDescription endpointDescription,IServiceProperties result){
  encodeOSGiServiceProperties(endpointDescription,result);
  if (endpointDescription instanceof org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescription) {
    EndpointDescription ecfEd=(EndpointDescription)endpointDescription;
    Long rsId=(Long)endpointDescription.getProperties().get(org.eclipse.ecf.remoteservice.Constants.SERVICE_ID);
    if (rsId != null)     encodeLong(result,org.eclipse.ecf.remoteservice.Constants.SERVICE_ID,rsId);
    String ecfEndpointId=(String)ecfEd.getProperties().get(RemoteConstants.ENDPOINT_ID);
    if (ecfEndpointId != null)     encodeString(result,RemoteConstants.ENDPOINT_ID,ecfEndpointId);
    String containerIDNamespace=ecfEd.getIdNamespace();
    if (containerIDNamespace != null)     encodeString(result,RemoteConstants.ENDPOINT_CONTAINER_ID_NAMESPACE,containerIDNamespace);
    Long timestamp=(Long)ecfEd.getProperties().get(RemoteConstants.ENDPOINT_TIMESTAMP);
    if (timestamp != null)     encodeLong(result,RemoteConstants.ENDPOINT_TIMESTAMP,timestamp);
    ID connectTargetID=ecfEd.getConnectTargetID();
    if (connectTargetID != null)     encodeString(result,RemoteConstants.ENDPOINT_CONNECTTARGET_ID,connectTargetID.getName());
    ID[] idFilter=ecfEd.getIDFilter();
    if (idFilter != null && idFilter.length > 0) {
      List<String> idNames=new ArrayList<String>();
      for (int i=0; i < idFilter.length; i++)       idNames.add(idFilter[i].getName());
      encodeList(result,RemoteConstants.ENDPOINT_IDFILTER_IDS,idNames);
    }
    String remoteFilter=ecfEd.getRemoteServiceFilter();
    if (remoteFilter != null)     encodeString(result,RemoteConstants.ENDPOINT_REMOTESERVICE_FILTER,remoteFilter);
  }
  encodeNonStandardServiceProperties(endpointDescription.getProperties(),result);
}