Buggy code:
private Map browseFileTransferProtocolMap = null ; private ServiceTracker adapterManagerTracker = null ; private ServiceTracker proxyServiceTracker = null ; public Activator ( ) { } protected LogService getLogService ( ) { } public IProxyService getProxyService ( ) { } public void log ( IStatus status ) { } public Bundle getBundle ( ) { } public void start ( BundleContext ctxt ) throws Exception { } public void stop ( BundleContext ctxt ) throws Exception { } public static synchronized Activator getDefault ( ) { } public String [ ] getPlatformSupportedSchemes ( ) { } public IExtensionRegistry getExtensionRegistry ( ) { } private void loadProtocolHandlers ( ) { this . retrieveFileTransferProtocolMap = new HashMap ( 3 ) ; this . sendFileTransferProtocolMap = new HashMap ( 3 ) ; this . browseFileTransferProtocolMap = new HashMap ( 3 ) ; final IExtensionRegistry reg = getExtensionRegistry ( ) ; if ( reg != null ) { String [ ] existingSchemes = getPlatformSupportedSchemes ( ) ; final IExtensionPoint retrieveExtensionPoint = reg . getExtensionPoint ( Activator . RETRIEVE_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) ; if ( retrieveExtensionPoint == null ) return ; final IConfigurationElement [ ] retrieveConfigurationElements = retrieveExtensionPoint . getConfigurationElements ( ) ; for ( int i = 0 ; i < ( retrieveConfigurationElements . length ) ; i ++ ) { try { final String protocol = retrieveConfigurationElements [ i ] . getAttribute ( Activator . PROTOCOL_ATTR ) ; if ( ( protocol == null ) || ( "" . equals ( protocol ) ) ) continue ; if ( retrieveFileTransferProtocolMap . containsKey ( protocol ) ) { Activator . getDefault ( ) . log ( new Status ( IStatus . WARNING , Activator . PLUGIN_ID , IStatus . WARNING , NLS . bind ( Activator_WARNING_RETRIEVE_PROTOCOL_CONTRIBUTION_WILL_BE_IGNORED , protocol , retrieveExtensionPoint . getContributor ( ) . getName ( ) ) , null ) ) ; continue ; } final IRetrieveFileTransferFactory clazz = ( ( IRetrieveFileTransferFactory ) ( retrieveConfigurationElements [ i ] . createExecutableExtension ( Activator . CLASS_ATTR ) ) ) ; if ( ! ( isSchemeRegistered ( protocol , existingSchemes ) ) ) registerScheme ( protocol ) ; retrieveFileTransferProtocolMap . put ( protocol , clazz ) ; } catch ( final CoreException e ) { Activator . getDefault ( ) . log ( new Status ( IStatus . ERROR , Activator . PLUGIN_ID , IStatus . ERROR , NLS . bind ( Activator_EXCEPTION_LOADING_EXTENSION_POINT , Activator . RETRIEVE_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) , e ) ) ; } } final IExtensionPoint sendExtensionPoint = reg . getExtensionPoint ( Activator . SEND_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) ; if ( sendExtensionPoint == null ) { return ; } final IConfigurationElement [ ] sendConfigurationElements = sendExtensionPoint . getConfigurationElements ( ) ; existingSchemes = getPlatformSupportedSchemes ( ) ; for ( int i = 0 ; i < ( sendConfigurationElements . length ) ; i ++ ) { try { final String protocol = sendConfigurationElements [ i ] . getAttribute ( Activator . PROTOCOL_ATTR ) ; if ( ( protocol == null ) || ( "" . equals ( protocol ) ) ) continue ; if ( sendFileTransferProtocolMap . containsKey ( protocol ) ) { Activator . getDefault ( ) . log ( new Status ( IStatus . WARNING , Activator . PLUGIN_ID , IStatus . WARNING , NLS . bind ( Activator_WARNING_SEND_PROTOCOL_CONTRIBUTION_IGNORED , protocol , sendExtensionPoint . getContributor ( ) . getName ( ) ) , null ) ) ; continue ; } final ISendFileTransferFactory clazz = ( ( ISendFileTransferFactory ) ( sendConfigurationElements [ i ] . createExecutableExtension ( Activator . CLASS_ATTR ) ) ) ; if ( ! ( isSchemeRegistered ( protocol , existingSchemes ) ) ) registerScheme ( protocol ) ; sendFileTransferProtocolMap . put ( protocol , clazz ) ; } catch ( final CoreException e ) { Activator . getDefault ( ) . log ( new Status ( IStatus . ERROR , Activator . PLUGIN_ID , IStatus . ERROR , NLS . bind ( Activator_EXCEPTION_LOADING_EXTENSION_POINT , Activator . SEND_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) , e ) ) ; } } final IExtensionPoint browseExtensionPoint = reg . getExtensionPoint ( Activator . BROWSE_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) ; <START_BUG> if ( sendExtensionPoint == null ) { <END_BUG> return ; } final IConfigurationElement [ ] browseConfigurationElements = browseExtensionPoint . getConfigurationElements ( ) ; existingSchemes = getPlatformSupportedSchemes ( ) ; for ( int i = 0 ; i < ( browseConfigurationElements . length ) ; i ++ ) { try { final String protocol = browseConfigurationElements [ i ] . getAttribute ( Activator . PROTOCOL_ATTR ) ; if ( ( protocol == null ) || ( "" . equals ( protocol ) ) ) continue ; if ( browseFileTransferProtocolMap . containsKey ( protocol ) ) { Activator . getDefault ( ) . log ( new Status ( IStatus . WARNING , Activator . PLUGIN_ID , IStatus . WARNING , NLS . bind ( Activator_WARNING_BROWSE_PROTOCOL_CONTRIBUTION_IGNORED , protocol , browseExtensionPoint . getContributor ( ) . getName ( ) ) , null ) ) ; continue ; } final IRemoteFileSystemBrowserFactory clazz = ( ( IRemoteFileSystemBrowserFactory ) ( browseConfigurationElements [ i ] . createExecutableExtension ( Activator . CLASS_ATTR ) ) ) ; if ( ! ( isSchemeRegistered ( protocol , existingSchemes ) ) ) registerScheme ( protocol ) ; browseFileTransferProtocolMap . put ( protocol , clazz ) ; } catch ( final CoreException e ) { Activator . getDefault ( ) . log ( new Status ( IStatus . ERROR , Activator . PLUGIN_ID , IStatus . ERROR , NLS . bind ( Activator_EXCEPTION_LOADING_EXTENSION_POINT , Activator . BROWSE_FILETRANSFER_PROTOCOL_FACTORY_EPOINT ) , e ) ) ; } } } } private boolean isSchemeRegistered ( String protocol , String [ ] schemes ) { } class DummyURLStreamHandlerService extends AbstractURLStreamHandlerService { public URLConnection openConnection ( URL u ) throws IOException { } } private final Activator . DummyURLStreamHandlerService dummyService = new Activator . DummyURLStreamHandlerService ( ) ; private void registerScheme ( String protocol ) { } public IRetrieveFileTransfer getFileTransfer ( String protocol ) { } public ISendFileTransfer getSendFileTransfer ( String protocol ) { } public IRemoteFileSystemBrowser getBrowseFileTransfer ( String protocol ) { }

Fix:
if ( browseExtensionPoint == null ) {