Committed by
Gerrit Code Review
[ONOS-3528] Enable logging exception when Executor.execute invoked
Change-Id: I4df7c9a0bc0607c16c4c36103447ce8a8f14ffa7
Showing
1 changed file
with
22 additions
and
1 deletions
| ... | @@ -100,10 +100,31 @@ public abstract class Tools { | ... | @@ -100,10 +100,31 @@ public abstract class Tools { |
| 100 | * @return thread factory | 100 | * @return thread factory |
| 101 | */ | 101 | */ |
| 102 | public static ThreadFactory groupedThreads(String groupName, String pattern) { | 102 | public static ThreadFactory groupedThreads(String groupName, String pattern) { |
| 103 | + return groupedThreads(groupName, pattern, log); | ||
| 104 | + } | ||
| 105 | + | ||
| 106 | + /** | ||
| 107 | + * Returns a thread factory that produces threads named according to the | ||
| 108 | + * supplied name pattern and from the specified thread-group. The thread | ||
| 109 | + * group name is expected to be specified in slash-delimited format, e.g. | ||
| 110 | + * {@code onos/intent}. The thread names will be produced by converting | ||
| 111 | + * the thread group name into dash-delimited format and pre-pended to the | ||
| 112 | + * specified pattern. If a logger is specified, it will use the logger to | ||
| 113 | + * print out the exception if it has any. | ||
| 114 | + * | ||
| 115 | + * @param groupName group name in slash-delimited format to indicate hierarchy | ||
| 116 | + * @param pattern name pattern | ||
| 117 | + * @param logger logger | ||
| 118 | + * @return thread factory | ||
| 119 | + */ | ||
| 120 | + public static ThreadFactory groupedThreads(String groupName, String pattern, Logger logger) { | ||
| 121 | + if (logger == null) { | ||
| 122 | + return groupedThreads(groupName, pattern); | ||
| 123 | + } | ||
| 103 | return new ThreadFactoryBuilder() | 124 | return new ThreadFactoryBuilder() |
| 104 | .setThreadFactory(groupedThreadFactory(groupName)) | 125 | .setThreadFactory(groupedThreadFactory(groupName)) |
| 105 | .setNameFormat(groupName.replace(GroupedThreadFactory.DELIMITER, "-") + "-" + pattern) | 126 | .setNameFormat(groupName.replace(GroupedThreadFactory.DELIMITER, "-") + "-" + pattern) |
| 106 | - .setUncaughtExceptionHandler((t, e) -> log.error("Uncaught exception on " + t.getName(), e)) | 127 | + .setUncaughtExceptionHandler((t, e) -> logger.error("Uncaught exception on " + t.getName(), e)) |
| 107 | .build(); | 128 | .build(); |
| 108 | } | 129 | } |
| 109 | 130 | ... | ... |
-
Please register or login to post a comment