ONOS-180 Suppressing a few superfluous stack traces on shutdown.
Change-Id: If648b9d7658e8ee57a0e9eb157b12120f0ea20bd
Showing
1 changed file
with
17 additions
and
3 deletions
... | @@ -21,6 +21,7 @@ import java.net.InetSocketAddress; | ... | @@ -21,6 +21,7 @@ import java.net.InetSocketAddress; |
21 | import java.net.SocketAddress; | 21 | import java.net.SocketAddress; |
22 | import java.util.Collections; | 22 | import java.util.Collections; |
23 | import java.util.List; | 23 | import java.util.List; |
24 | +import java.util.concurrent.RejectedExecutionException; | ||
24 | import java.util.concurrent.atomic.AtomicInteger; | 25 | import java.util.concurrent.atomic.AtomicInteger; |
25 | 26 | ||
26 | import org.jboss.netty.channel.Channel; | 27 | import org.jboss.netty.channel.Channel; |
... | @@ -50,6 +51,8 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { | ... | @@ -50,6 +51,8 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { |
50 | 51 | ||
51 | protected final Logger log = LoggerFactory.getLogger(getClass()); | 52 | protected final Logger log = LoggerFactory.getLogger(getClass()); |
52 | 53 | ||
54 | + private static final String SHUTDOWN_MSG = "Worker has already been shutdown"; | ||
55 | + | ||
53 | protected Channel channel; | 56 | protected Channel channel; |
54 | protected String channelId; | 57 | protected String channelId; |
55 | 58 | ||
... | @@ -97,14 +100,26 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { | ... | @@ -97,14 +100,26 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { |
97 | @Override | 100 | @Override |
98 | public final void sendMsg(OFMessage m) { | 101 | public final void sendMsg(OFMessage m) { |
99 | if (role == RoleState.MASTER) { | 102 | if (role == RoleState.MASTER) { |
100 | - this.write(m); | 103 | + try { |
104 | + this.write(m); | ||
105 | + } catch (RejectedExecutionException e) { | ||
106 | + if (!e.getMessage().contains(SHUTDOWN_MSG)) { | ||
107 | + throw e; | ||
108 | + } | ||
109 | + } | ||
101 | } | 110 | } |
102 | } | 111 | } |
103 | 112 | ||
104 | @Override | 113 | @Override |
105 | public final void sendMsg(List<OFMessage> msgs) { | 114 | public final void sendMsg(List<OFMessage> msgs) { |
106 | if (role == RoleState.MASTER) { | 115 | if (role == RoleState.MASTER) { |
107 | - this.write(msgs); | 116 | + try { |
117 | + this.write(msgs); | ||
118 | + } catch (RejectedExecutionException e) { | ||
119 | + if (!e.getMessage().contains(SHUTDOWN_MSG)) { | ||
120 | + throw e; | ||
121 | + } | ||
122 | + } | ||
108 | } | 123 | } |
109 | } | 124 | } |
110 | 125 | ||
... | @@ -296,7 +311,6 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { | ... | @@ -296,7 +311,6 @@ public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver { |
296 | } | 311 | } |
297 | } else { | 312 | } else { |
298 | log.warn("Failed to set role for {}", this.getStringId()); | 313 | log.warn("Failed to set role for {}", this.getStringId()); |
299 | - return; | ||
300 | } | 314 | } |
301 | } | 315 | } |
302 | 316 | ... | ... |
-
Please register or login to post a comment