Callbacks should rather catch all exceptions, otherwise a NPE, like one generated by Tyrus, may kill whole JavaFX WebView
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 30 Aug 2013 15:09:01 +0000
changeset 269f01f949ebb1e
parent 268 09aaf52b71c5
child 270 0724c6dcff34
Callbacks should rather catch all exceptions, otherwise a NPE, like one generated by Tyrus, may kill whole JavaFX WebView
json/src/main/java/org/apidesign/html/json/spi/FunctionBinding.java
ko-ws-tyrus/src/main/java/org/apidesign/html/wstyrus/TyrusContext.java
     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          }