Buggy code:
public class JMDNSDiscoveryContainer implements ServiceListener , ServiceTypeListener , IContainer , IDiscoveryService { public static final int DEFAULT_REQUEST_TIMEOUT = 3000 ; protected static String JMDNS_NAMESPACE_ID = Messages . getString ( "JMDNSPlugin.namespace.identifier" ) ; ContainerConfig config = null ; InetAddress intf = null ; JmDNS jmdns = null ; int requestTimeout = JMDNSDiscoveryContainer . DEFAULT_REQUEST_TIMEOUT ; Map serviceListeners = new HashMap ( ) ; Vector serviceTypeListeners = new Vector ( ) ; private Vector listeners = new Vector ( ) ; public JMDNSDiscoveryContainer ( ) throws IOException , IDCreateException { } public ID getID ( ) { } public JMDNSDiscoveryContainer ( InetAddress addr ) throws IOException , IDCreateException { } public void addServiceListener ( String type , IServiceListener listener ) { } public void addServiceTypeListener ( IServiceTypeListener listener ) { } protected void fireContainerEvent ( IContainerEvent event ) { } public void dispose ( ) { } protected void fireServiceAdded ( ServiceEvent arg0 ) { } protected void fireServiceRemoved ( ServiceEvent arg0 ) { } protected void fireServiceResolved ( ServiceEvent arg0 ) { } protected void fireServiceTypeAdded ( ServiceEvent arg0 ) { } public Object getAdapter ( Class adapter ) { } public ID getConnectedID ( ) { } public IServiceInfo getServiceInfo ( IServiceID service , int timeout ) { } public IServiceInfo [ ] getServices ( String type ) { } public void connect ( ID groupID , IConnectContext joinContext ) throws ContainerConnectException { } public void disconnect ( ) { } protected IServiceInfo createIServiceInfoFromServiceEvent ( ServiceEvent event ) { } 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 ) { <START_BUG> return svcProperties . getPropertyBytes ( name ) ; <END_BUG> } 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 ; } protected ServiceID createServiceID ( String type , String name ) { } protected ServiceInfo createServiceInfoFromIServiceInfo ( IServiceInfo serviceInfo ) { } protected String prepareSvcTypeForBonjour ( String svcType ) { } public void registerService ( IServiceInfo serviceInfo ) throws ECFException { } public void registerServiceType ( String serviceType ) { } protected void registerServiceWithJmDNS ( IServiceInfo serviceInfo ) throws IOException { } public void removeServiceListener ( String type , IServiceListener listener ) { } public void removeServiceTypeListener ( IServiceTypeListener listener ) { } public void requestServiceInfo ( IServiceID service , int timeout ) { } public void serviceAdded ( ServiceEvent arg0 ) { } public void serviceRemoved ( ServiceEvent arg0 ) { } public void serviceResolved ( ServiceEvent arg0 ) { } public void serviceTypeAdded ( ServiceEvent arg0 ) { } public void unregisterService ( IServiceInfo serviceInfo ) { } public Namespace getConnectNamespace ( ) { } public void addListener ( IContainerListener l ) { } public void removeListener ( IContainerListener l ) { } }

Fix:
return svcProperties . getProperty ( name ) ;