Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Changes for akka 2.4.11
[controller.git]
/
opendaylight
/
md-sal
/
sal-clustering-commons
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
common
/
actor
/
MeteringBehavior.java
diff --git
a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteringBehavior.java
b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteringBehavior.java
index 45fe19333835e83feea0bee6a15a41f6e7959a61..5e631b90d36eb7c1e273a604dfdb283d58b3e4f3 100644
(file)
--- a/
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteringBehavior.java
+++ b/
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteringBehavior.java
@@
-12,6
+12,7
@@
import akka.japi.Procedure;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
import com.google.common.base.Preconditions;
import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer;
import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
import org.opendaylight.controller.cluster.reporting.MetricsReporter;
/**
import org.opendaylight.controller.cluster.reporting.MetricsReporter;
/**
@@
-82,6
+83,7
@@
public class MeteringBehavior implements Procedure<Object> {
* @param message the message to process
* @throws Exception on message failure
*/
* @param message the message to process
* @throws Exception on message failure
*/
+ @SuppressWarnings("checkstyle:IllegalCatch")
@Override
public void apply(final Object message) throws Exception {
final String messageType = message.getClass().getSimpleName();
@Override
public void apply(final Object message) throws Exception {
final String messageType = message.getClass().getSimpleName();
@@
-95,10
+97,15
@@
public class MeteringBehavior implements Procedure<Object> {
final Timer.Context context = msgProcessingTimer.time();
final Timer.Context contextByMsgType = msgProcessingTimerByMsgType.time();
final Timer.Context context = msgProcessingTimer.time();
final Timer.Context contextByMsgType = msgProcessingTimerByMsgType.time();
- meteredActor.onReceive(message);
-
- //stop timers
- contextByMsgType.stop();
- context.stop();
+ try {
+ meteredActor.onReceive(message);
+ } catch (Throwable e) {
+ Throwables.propagateIfPossible(e, Exception.class);
+ throw Throwables.propagate(e);
+ } finally {
+ //stop timers
+ contextByMsgType.stop();
+ context.stop();
+ }
}
}
}
}