diff --git a/modules/cpr/src/main/java/org/atmosphere/container/version/JSR356WebSocket.java b/modules/cpr/src/main/java/org/atmosphere/container/version/JSR356WebSocket.java index 994074bb45b..7c42ad13045 100644 --- a/modules/cpr/src/main/java/org/atmosphere/container/version/JSR356WebSocket.java +++ b/modules/cpr/src/main/java/org/atmosphere/container/version/JSR356WebSocket.java @@ -47,10 +47,7 @@ public JSR356WebSocket(Session session, AtmosphereConfig config) { super(config); this.session = session; // https://issues.apache.org/bugzilla/show_bug.cgi?id=56026 - String s = config.getInitParameter(ApplicationConfig.WEBSOCKET_IDLETIME); - if (s != null) { - session.getAsyncRemote().setSendTimeout(Integer.valueOf(s)); - } + session.getAsyncRemote().setSendTimeout(config.getInitParameter(ApplicationConfig.WEBSOCKET_IDLETIME, 10 * 1000)); } @Override @@ -65,8 +62,10 @@ public WebSocket write(String s) throws IOException { session.getAsyncRemote().sendText(s, new WriteResult(resource(), s)); } catch (NullPointerException e) { patchGlassFish(e); - } finally { semaphore.release(); + } catch (RuntimeException e){ + semaphore.release(); + throw e; } return this; } @@ -80,8 +79,10 @@ public WebSocket write(byte[] data, int offset, int length) throws IOException { new WriteResult(resource(), b.array())); } catch (NullPointerException e) { patchGlassFish(e); - } finally { semaphore.release(); + } catch (RuntimeException e){ + semaphore.release(); + throw e; } return this; }