Buggy code:
public class ServerManager { private static final String ECF_NAMESPACE_JMDNS = "ecf.namespace.jmdns" ; private static final String GROUP_PROPERTY_NAME = "group" ; private static final String PWREQUIRED_PROPERTY_NAME = "pwrequired" ; private static final String PROTOCOL_PROPERTY_NAME = "protocol" ; private static final String SERVICE_TYPE = Messages . ServerManager_SERVICE_TYPE ; static TCPServerSOContainerGroup [ ] serverGroups = null ; static Map servers = new HashMap ( ) ; public static final String EXTENSION_POINT_NAME = "configuration" ; public static final String EXTENSION_POINT = ( ( Activator . PLUGIN_ID ) + "." ) + ( ServerManager . EXTENSION_POINT_NAME ) ; public static final String CONFIGURATION_ELEMENT = "configuration" ; public static final String CONNECTOR_ELEMENT = "connector" ; public static final String GROUP_ELEMENT = ServerManager . GROUP_PROPERTY_NAME ; public static final String HOSTNAME_ATTR = "hostname" ; public static final String PORT_ATTR = "port" ; public static final String KEEPALIVE_ATTR = "keepAlive" ; public static final String NAME_ATTR = "name" ; public static final String DISCOVERY_ATTR = "discovery" ; public ServerManager ( ) { } public synchronized ISharedObjectContainer getServer ( ID id ) { } private void createServersFromExtensionRegistry ( IExtensionRegistry registry ) throws Exception { final IExtensionPoint extensionPoint = registry . getExtensionPoint ( ServerManager . EXTENSION_POINT ) ; if ( extensionPoint == null ) return ; final IConfigurationElement [ ] elements = extensionPoint . getConfigurationElements ( ) ; final List connectors = new ArrayList ( ) ; for ( int i = 0 ; i < ( elements . length ) ; i ++ ) { final IConfigurationElement element = elements [ i ] ; final String portString = element . getAttribute ( ServerManager . PORT_ATTR ) ; int port = TCPServerSOContainer . DEFAULT_PORT ; if ( portString != null ) port = Integer . parseInt ( portString ) ; int keepAlive = TCPServerSOContainer . DEFAULT_KEEPALIVE ; final String keepAliveString = element . getAttribute ( ServerManager . KEEPALIVE_ATTR ) ; if ( keepAliveString != null ) keepAlive = Integer . parseInt ( keepAliveString ) ; boolean discovery = false ; final String discoveryString = element . getAttribute ( ServerManager . DISCOVERY_ATTR ) ; if ( discoveryString != null ) <START_BUG> discovery = Boolean . parseBoolean ( discoveryString ) ; <END_BUG> final Connector connector = new Connector ( null , element . getAttribute ( ServerManager . HOSTNAME_ATTR ) , port , keepAlive , discovery ) ; final IConfigurationElement [ ] groupElements = element . getChildren ( ServerManager . GROUP_ELEMENT ) ; for ( int j = 0 ; j < ( groupElements . length ) ; j ++ ) { final String groupName = groupElements [ i ] . getAttribute ( ServerManager . NAME_ATTR ) ; if ( groupName != null ) connector . addGroup ( new NamedGroup ( groupName ) ) ; } connectors . add ( connector ) ; } createServersFromConnectorList ( connectors ) ; } protected boolean isActive ( ) { } public synchronized void closeServers ( ) { } private synchronized void createServersFromConnectorList ( List connectors ) throws IOException , IDCreateException { } private void createServersFromConfigurationFile ( InputStream ins ) throws Exception { } private TCPServerSOContainerGroup createServerGroup ( Connector connector ) { } private TCPServerSOContainer createServerContainer ( String id , TCPServerSOContainerGroup group , String path , int keepAlive ) throws IDCreateException { } private void registerServerForDiscovery ( NamedGroup group , boolean pwrequired ) { } }

Fix:
discovery = Boolean . valueOf ( discoveryString ) . booleanValue ( ) ;