diff options
author | Greg Wilkins | 2015-02-19 03:30:39 +0000 |
---|---|---|
committer | Greg Wilkins | 2015-02-19 03:30:39 +0000 |
commit | c4a49110efe47c7f5554dc52b829b4ae53884f95 (patch) | |
tree | aff554fe5f0476bbb292dc25f3f7ca44b093731c | |
parent | e83549f4b4ba0bb4695cd92bb6b3dbcbbe34ce07 (diff) | |
download | org.eclipse.jetty.project-c4a49110efe47c7f5554dc52b829b4ae53884f95.tar.gz org.eclipse.jetty.project-c4a49110efe47c7f5554dc52b829b4ae53884f95.tar.xz org.eclipse.jetty.project-c4a49110efe47c7f5554dc52b829b4ae53884f95.zip |
460210 - ExecutionStragegy producer for SelectManager calls onOpen from produce method
fixed NPE on connection destroy for stopped selector
-rw-r--r-- | jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java b/jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java index 0af27cb1c9..3e727e9b65 100644 --- a/jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java +++ b/jetty-io/src/main/java/org/eclipse/jetty/io/ManagedSelector.java @@ -120,7 +120,8 @@ public class ManagedSelector extends AbstractLifeCycle implements Runnable, Dump _actions.offer(change); if (_selecting) { - _selector.wakeup(); + if (_selector!=null) + _selector.wakeup(); // To avoid the extra select wakeup. _selecting=false; } @@ -708,8 +709,12 @@ public class ManagedSelector extends AbstractLifeCycle implements Runnable, Dump @Override public void run() { - Selector selector=_selector; - _selector=null; + Selector selector; + try(SpinLock.Lock lock = _lock.lock()) + { + selector=_selector; + _selector=null; + } closeNoExceptions(selector); _latch.countDown(); } |