@Override public void execute() throws Exception { ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); if (!loadArguments()) { logger.error("Not executed: unable to process arguments."); return; } if (logger.isDebugEnabled()) { logger.debug( String.format( "executing %s:%s\n\t %s", cdaSettings.getId(), queryOptions.getDataAccessId(), jsonStringArg)); } else { logger.info( String.format( "executing %s:%s...", cdaSettings.getId(), queryOptions.getDataAccessId())); } CdaEngine.getInstance().doQuery(cdaSettings, queryOptions); } catch (Exception e) { logger.error("Execution failed.", e); } finally { Thread.currentThread().setContextClassLoader(contextClassLoader); } }