From 90913bf8c37629ab69e2dd3370c7b58f50dc6dc9 Mon Sep 17 00:00:00 2001 From: "PSp..om" Date: Mon, 30 Dec 2013 02:27:15 +0000 Subject: [PATCH] Catch another case where shutdown state can cause a key to be invalid before it is checked. The "bug" was that shutdown of a network server would occasionally log an exception about a canceled key. git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10947 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../com/jme3/network/kernel/tcp/SelectorKernel.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/engine/src/networking/com/jme3/network/kernel/tcp/SelectorKernel.java b/engine/src/networking/com/jme3/network/kernel/tcp/SelectorKernel.java index 54d6fab42..42aa3ddbc 100644 --- a/engine/src/networking/com/jme3/network/kernel/tcp/SelectorKernel.java +++ b/engine/src/networking/com/jme3/network/kernel/tcp/SelectorKernel.java @@ -455,11 +455,15 @@ public class SelectorKernel extends AbstractKernel // Check for available keys and process them try { - select(); + select(); } catch( ClosedSelectorException e ) { if( !go.get() ) return; // it's because we're shutting down throw new KernelException( "Premature selector closing", e ); + } catch( CancelledKeyException e ) { + if( !go.get() ) + return; // it's because we're shutting down + throw new KernelException( "Invalid key state", e ); } catch( IOException e ) { if( !go.get() ) return; // error likely due to shutting down