Program: 94933
Project: 94933
Buggy source:
protected IServiceInfo createIServiceInfoFromServiceInfo(final ServiceInfo serviceInfo){
  if (serviceInfo == null)   return null;
  ServiceID sID=createServiceID(serviceInfo.getType(),serviceInfo.getName());
  InetAddress addr=serviceInfo.getAddress();
  int port=serviceInfo.getPort();
  int priority=serviceInfo.getPriority();
  int weight=serviceInfo.getWeight();
  Properties props=new Properties();
  for (Enumeration e=serviceInfo.getPropertyNames(); e.hasMoreElements(); ) {
    String name=(String)e.nextElement();
    Object value=serviceInfo.getPropertyString(name);
    if (value == null)     value=serviceInfo.getPropertyBytes(name);
    if (value != null)     props.put(name,value);
  }
  final ServiceProperties svcProperties=new ServiceProperties(props);
  IServiceProperties newProps=new IServiceProperties(){
    public Enumeration getPropertyNames(){
      return svcProperties.getPropertyNames();
    }
    public String getPropertyString(    String name){
      return svcProperties.getPropertyString(name);
    }
    public byte[] getPropertyBytes(    String name){
      return svcProperties.getPropertyBytes(name);
    }
    public Object getProperty(    String name){
      return svcProperties.getPropertyBytes(name);
    }
    public Object setProperty(    String name,    Object value){
      return svcProperties.setProperty(name,value);
    }
    public Object setPropertyBytes(    String name,    byte[] value){
      return svcProperties.setPropertyBytes(name,value);
    }
    public Object setPropertyString(    String name,    String value){
      return svcProperties.setPropertyString(name,value);
    }
  }
;
  IServiceInfo newInfo=new JMDNSServiceInfo(addr,sID,port,priority,weight,newProps);
  return newInfo;
}

Fixed version (ground truth):
protected IServiceInfo createIServiceInfoFromServiceInfo(final ServiceInfo serviceInfo){
  if (serviceInfo == null)   return null;
  ServiceID sID=createServiceID(serviceInfo.getType(),serviceInfo.getName());
  InetAddress addr=serviceInfo.getAddress();
  int port=serviceInfo.getPort();
  int priority=serviceInfo.getPriority();
  int weight=serviceInfo.getWeight();
  Properties props=new Properties();
  for (Enumeration e=serviceInfo.getPropertyNames(); e.hasMoreElements(); ) {
    String name=(String)e.nextElement();
    Object value=serviceInfo.getPropertyString(name);
    if (value == null)     value=serviceInfo.getPropertyBytes(name);
    if (value != null)     props.put(name,value);
  }
  final ServiceProperties svcProperties=new ServiceProperties(props);
  IServiceProperties newProps=new IServiceProperties(){
    public Enumeration getPropertyNames(){
      return svcProperties.getPropertyNames();
    }
    public String getPropertyString(    String name){
      return svcProperties.getPropertyString(name);
    }
    public byte[] getPropertyBytes(    String name){
      return svcProperties.getPropertyBytes(name);
    }
    public Object getProperty(    String name){
      return svcProperties.getProperty(name);
    }
    public Object setProperty(    String name,    Object value){
      return svcProperties.setProperty(name,value);
    }
    public Object setPropertyBytes(    String name,    byte[] value){
      return svcProperties.setPropertyBytes(name,value);
    }
    public Object setPropertyString(    String name,    String value){
      return svcProperties.setPropertyString(name,value);
    }
  }
;
  IServiceInfo newInfo=new JMDNSServiceInfo(addr,sID,port,priority,weight,newProps);
  return newInfo;
}