Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2015-02-19 03:30:39 +0000
committerGreg Wilkins2015-02-19 03:30:39 +0000
commitc4a49110efe47c7f5554dc52b829b4ae53884f95 (patch)
treeaff554fe5f0476bbb292dc25f3f7ca44b093731c
parente83549f4b4ba0bb4695cd92bb6b3dbcbbe34ce07 (diff)
downloadorg.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.java11
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();
}

Back to the top