From 13d831c447fa7fdb108a1450d03e00ce6e0a8010 Mon Sep 17 00:00:00 2001 From: emopers Date: Tue, 22 Dec 2015 16:54:39 -0600 Subject: [PATCH] Fixing uncaught exception --- .../oio/internal/protocol/ietf00/Hybi00Handshake.java | 8 +++++++- src/test/java/org/jboss/as/websocket/HandshakeTests.java | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/jboss/websockets/oio/internal/protocol/ietf00/Hybi00Handshake.java b/src/main/java/org/jboss/websockets/oio/internal/protocol/ietf00/Hybi00Handshake.java index 9e0cf61..5567b48 100644 --- a/src/main/java/org/jboss/websockets/oio/internal/protocol/ietf00/Hybi00Handshake.java +++ b/src/main/java/org/jboss/websockets/oio/internal/protocol/ietf00/Hybi00Handshake.java @@ -114,7 +114,13 @@ public static long decodeKey(final String encoded) { } final String digits = encoded.replaceAll("[^0-9]", ""); - final long product = Long.parseLong(digits); + final long product; + try { + product = Long.parseLong(digits); + } + catch (NumberFormatException e){ + throw new NumberFormatException("Passed key to decode is not a parsable long"); + } return product / numSpaces; } } diff --git a/src/test/java/org/jboss/as/websocket/HandshakeTests.java b/src/test/java/org/jboss/as/websocket/HandshakeTests.java index d7e40c3..fbfeaf3 100644 --- a/src/test/java/org/jboss/as/websocket/HandshakeTests.java +++ b/src/test/java/org/jboss/as/websocket/HandshakeTests.java @@ -14,4 +14,11 @@ public void testHandshake() { "B..r..\\8".getBytes()))); } + @Test(expected=NumberFormatException.class) + public void testHandshakeInvalidDecodeKey() { + System.out.println(new String(Hybi00Handshake.solve("MD5", Hybi00Handshake.decodeKey(""), + Hybi00Handshake.decodeKey(""), + "".getBytes()))); + } + }