diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java')
-rw-r--r-- | openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java | 70 |
1 files changed, 33 insertions, 37 deletions
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java index 3ad999f272..e2b31c3202 100644 --- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java +++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/api/context/TaskFactory.java @@ -23,57 +23,53 @@ package org.openecomp.sdc.logging.api.context; import org.openecomp.sdc.logging.api.BaseFactory; /** - * <p>Should be used to propagate a diagnostic context (for instance - * <a href="http://www.slf4j.org/manual.html#mdc">MDC</a>) to other threads.</p> - * - * <p>Applicable when creating a child thread directly, or submitting tasks for potentially postponed execution via - * an <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html">Executor</a> (including - * any of the <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html">executor - * services</a> and - * <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html">ForkJoinPool</a>).</p> - * + * <p>Should be used to propagate a diagnostic context (for instance <a + * href="http://www.slf4j.org/manual.html#mdc">MDC</a>) to other threads.</p> + * <p>Applicable when creating a child thread directly, or submitting tasks for potentially + * postponed execution via an <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.html">Executor</a> + * (including any of the <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html">executor + * services</a> and <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ForkJoinPool.html">ForkJoinPool</a>).</p> * <p>The service used by this factory must implement {@link ContextPropagationService}.</p> * * @author evitaliy - * @since 12/09/2016. - * * @see ContextPropagationService + * @since 12/09/2016. */ @SuppressWarnings("ThrowableInstanceNeverThrown") public class TaskFactory extends BaseFactory { - private static final ContextPropagationService SERVICE; - private static final RuntimeException ERROR; - - static { + private static final ContextPropagationService SERVICE; + private static final RuntimeException ERROR; - ContextPropagationService service = null; - RuntimeException error = null; + static { - try { - service = locateService(ContextPropagationService.class); - } catch (Throwable e) { - error = new RuntimeException("Failed to instantiate task factory", e); - } + ContextPropagationService service = null; + RuntimeException error = null; - SERVICE = service; - ERROR = error; + try { + service = locateService(ContextPropagationService.class); + } catch (Exception ex) { + error = new RuntimeException("Failed to instantiate task factory", ex); } - /** - * Modify a task so that a diagnostic context is propagated to the thread when the task runs. Done in a - * logging-framework specific way. - * - * @param task any Runnable that will run in a thread - * @return modified (wrapped) original task that runs the same business logic, but also takes care of copying the - * diagnostic context for logging - */ - public static Runnable create(Runnable task) { + SERVICE = service; + ERROR = error; + } - if (SERVICE == null) { - throw ERROR; - } + /** + * Modify a task so that a diagnostic context is propagated to the thread when the task runs. Done + * in a logging-framework specific way. + * + * @param task any Runnable that will run in a thread + * @return modified (wrapped) original task that runs the same business logic, but also takes care + * of copying the diagnostic context for logging + */ + public static Runnable create(Runnable task) { - return SERVICE.create(task); + if (SERVICE == null) { + throw ERROR; } + + return SERVICE.create(task); + } } |