Buggy code:
public class HBaseMetadataProvider implements IDBMetadataProvider { private static String CATALOG_NAME = "HBase" ; private static String COLUMN_FAMILY = "COLUMN<seq2seq4repair_space>FAMILY" ; private static ClassLoader classLoader ; private static Map < IMetadataConnection , Object > adminMap = new HashMap < IMetadataConnection , Object > ( ) ; @ Override public ConnectionStatus testConnection ( IMetadataConnection metadataConnection ) { HBaseMetadataProvider . classLoader = HBaseClassLoaderFactory . getClassLoader ( metadataConnection ) ; ConnectionStatus connectionStatus = new ConnectionStatus ( ) ; connectionStatus . setResult ( false ) ; ClassLoader oldClassLoaderLoader = Thread . currentThread ( ) . getContextClassLoader ( ) ; try { Thread . currentThread ( ) . setContextClassLoader ( HBaseMetadataProvider . classLoader ) ; Object config = getConfiguration ( metadataConnection ) ; Callable < Object > callable = checkHBaseAvailable ( config ) ; ExecutorService executor = Executors . newSingleThreadExecutor ( ) ; Future < Object > future = executor . submit ( callable ) ; try { int timeout = 15 ; if ( GlobalServiceRegister . getDefault ( ) . isServiceRegistered ( IDesignerCoreService . class ) ) { IDesignerCoreService designerService = ( ( IDesignerCoreService ) ( GlobalServiceRegister . getDefault ( ) . getService ( IDesignerCoreService . class ) ) ) ; timeout = designerService . getDBConnectionTimeout ( ) ; } future . get ( timeout , TimeUnit . SECONDS ) ; connectionStatus . setResult ( true ) ; } catch ( Exception e ) { future . cancel ( true ) ; connectionStatus . setResult ( false ) ; connectionStatus . setMessageException ( ExceptionUtils . getFullStackTrace ( e ) ) ; ExceptionHandler . process ( e ) ; } <START_BUG> } catch ( Exception e ) { <END_BUG> ExceptionHandler . process ( e ) ; connectionStatus . setResult ( false ) ; connectionStatus . setMessageException ( ExceptionUtils . getFullStackTrace ( e ) ) ; } finally { Thread . currentThread ( ) . setContextClassLoader ( oldClassLoaderLoader ) ; } return connectionStatus ; } private Object getConfiguration ( IMetadataConnection metadataConnection ) throws Exception { } private Callable < Object > checkHBaseAvailable ( final Object config ) { } private void updateHadoopProperties ( Object hbaseConfiguration , IMetadataConnection metadataConnection ) throws Exception { } @ Override public void updatePackage ( IMetadataConnection metadataConnection ) { } @ Override public List getTableNodeInfo ( IMetadataConnection metadataConnection ) { } private TdTable getTableFromConnection ( IMetadataConnection metadataConnection , String tableName ) { } @ Override public AbstractMetadataExtractorViewProvider getMetadataViewProvider ( ) { } class HBaseMetadataViewProvider extends SelectorTreeViewerProvider { @ Override public void inputChanged ( Viewer viewer , Object oldInput , Object newInput ) { } @ Override public Object [ ] getElements ( Object inputElement ) { } @ Override public Object [ ] getChildren ( Object parentElement ) { } @ Override public Object getParent ( Object element ) { } @ Override public boolean hasChildren ( Object element ) { } @ Override public Image getColumnImage ( Object element , int columnIndex ) { } @ Override public String getColumnText ( Object element , int columnIndex ) { } } @ Override public int getRunnableAccessNodeType ( ) { } @ Override public void executeInRunnable ( IMetadataConnection metadataConnection , Object currentNode , DatabaseConnection dbconn ) { } @ Override public Map getConnectionMap ( ) { } @ Override public void fillConnection ( DatabaseConnection connection ) { } @ Override public String getDefaultCatalogName ( ) { } @ Override public void deleteMetadataFromConnection ( Object node , DatabaseConnection connection ) { } @ Override public boolean isMetadataExsit ( Object node , DatabaseConnection connection ) { } @ Override public List < TdColumn > returnMetadataColumnsFromTable ( String tableName , IMetadataConnection metadataConnection ) { } private Object getAdmin ( IMetadataConnection metadataConnection ) { } @ Override public List < String > returnTablesFormConnection ( IMetadataConnection metadataConnection ) { } @ Override public boolean isSupportGuessSchema ( ) { } @ Override public boolean isSupportRetrieveSchema ( ) { } }

Fix:
} catch ( Throwable e ) {