Committed by
Gerrit Code Review
[ONOS-3528] Enable logging exception for SharedExecutorService
Change-Id: I612d5e844412b2ddca6b848e5f7aae5138999d3f
Showing
1 changed file
with
8 additions
and
5 deletions
... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
15 | */ | 15 | */ |
16 | package org.onlab.util; | 16 | package org.onlab.util; |
17 | 17 | ||
18 | +import com.codahale.metrics.Timer; | ||
18 | import org.onlab.metrics.MetricsComponent; | 19 | import org.onlab.metrics.MetricsComponent; |
19 | import org.onlab.metrics.MetricsFeature; | 20 | import org.onlab.metrics.MetricsFeature; |
20 | import org.onlab.metrics.MetricsService; | 21 | import org.onlab.metrics.MetricsService; |
... | @@ -27,8 +28,8 @@ import java.util.concurrent.ExecutorService; | ... | @@ -27,8 +28,8 @@ import java.util.concurrent.ExecutorService; |
27 | import java.util.concurrent.Future; | 28 | import java.util.concurrent.Future; |
28 | import java.util.concurrent.TimeUnit; | 29 | import java.util.concurrent.TimeUnit; |
29 | import java.util.concurrent.TimeoutException; | 30 | import java.util.concurrent.TimeoutException; |
30 | -import com.codahale.metrics.Timer; | ||
31 | 31 | ||
32 | +import static org.slf4j.LoggerFactory.getLogger; | ||
32 | 33 | ||
33 | 34 | ||
34 | /** | 35 | /** |
... | @@ -111,11 +112,11 @@ class SharedExecutorService implements ExecutorService { | ... | @@ -111,11 +112,11 @@ class SharedExecutorService implements ExecutorService { |
111 | return executor.submit(() -> { | 112 | return executor.submit(() -> { |
112 | T t = null; | 113 | T t = null; |
113 | long queueWaitTime = (long) taskCounter.duration(); | 114 | long queueWaitTime = (long) taskCounter.duration(); |
114 | - String className; | 115 | + Class className; |
115 | if (task instanceof CallableExtended) { | 116 | if (task instanceof CallableExtended) { |
116 | - className = ((CallableExtended) task).getRunnable().getClass().toString(); | 117 | + className = ((CallableExtended) task).getRunnable().getClass(); |
117 | } else { | 118 | } else { |
118 | - className = task.getClass().toString(); | 119 | + className = task.getClass(); |
119 | } | 120 | } |
120 | if (queueMetrics != null) { | 121 | if (queueMetrics != null) { |
121 | queueMetrics.update(queueWaitTime, TimeUnit.SECONDS); | 122 | queueMetrics.update(queueWaitTime, TimeUnit.SECONDS); |
... | @@ -123,7 +124,9 @@ class SharedExecutorService implements ExecutorService { | ... | @@ -123,7 +124,9 @@ class SharedExecutorService implements ExecutorService { |
123 | taskCounter.reset(); | 124 | taskCounter.reset(); |
124 | try { | 125 | try { |
125 | t = task.call(); | 126 | t = task.call(); |
126 | - } catch (Exception e) { } | 127 | + } catch (Exception e) { |
128 | + getLogger(className).error("Uncaught exception on " + className, e); | ||
129 | + } | ||
127 | long taskwaittime = (long) taskCounter.duration(); | 130 | long taskwaittime = (long) taskCounter.duration(); |
128 | if (delayMetrics != null) { | 131 | if (delayMetrics != null) { |
129 | delayMetrics.update(taskwaittime, TimeUnit.SECONDS); | 132 | delayMetrics.update(taskwaittime, TimeUnit.SECONDS); | ... | ... |
-
Please register or login to post a comment