Callbacks should rather catch all exceptions, otherwise a NPE, like one generated by Tyrus, may kill whole JavaFX WebView
1.1 --- a/json/src/main/java/org/apidesign/html/json/spi/FunctionBinding.java Thu Aug 29 16:08:09 2013 +0000
1.2 +++ b/json/src/main/java/org/apidesign/html/json/spi/FunctionBinding.java Fri Aug 30 15:09:01 2013 +0000
1.3 @@ -47,6 +47,10 @@
1.4 * @param ev event (with additional properties) that triggered the event
1.5 */
1.6 public void call(Object data, Object ev) {
1.7 - fb.call(data, ev);
1.8 + try {
1.9 + fb.call(data, ev);
1.10 + } catch (Throwable ex) {
1.11 + ex.printStackTrace();
1.12 + }
1.13 }
1.14 }
2.1 --- a/ko-ws-tyrus/src/main/java/org/apidesign/html/wstyrus/TyrusContext.java Thu Aug 29 16:08:09 2013 +0000
2.2 +++ b/ko-ws-tyrus/src/main/java/org/apidesign/html/wstyrus/TyrusContext.java Fri Aug 30 15:09:01 2013 +0000
2.3 @@ -85,7 +85,10 @@
2.4 @Override
2.5 public void close(Comm socket) {
2.6 try {
2.7 - socket.session.close();
2.8 + final Session s = socket.session;
2.9 + if (s != null) {
2.10 + s.close();
2.11 + }
2.12 } catch (IOException ex) {
2.13 socket.callback.notifyError(ex);
2.14 }