Surround calls to JavaScript with catch (Throwable) fx
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 12 Apr 2013 15:59:24 +0200
branchfx
changeset 97344cd2b184dd1
parent 972 fbabd1f33dda
child 974 cab175cc3358
Surround calls to JavaScript with catch (Throwable)
javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java
     1.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Fri Apr 12 15:42:05 2013 +0200
     1.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/Knockout.java	Fri Apr 12 15:59:24 2013 +0200
     1.3 @@ -89,8 +89,12 @@
     1.4  
     1.5      public void valueHasMutated(String prop) {
     1.6          LOG.log(Level.FINE, "property mutated: {0}", prop);
     1.7 -        JSObject koProp = (JSObject) ((JSObject)model).getMember(prop);
     1.8 -        koProp.call("valueHasMutated");
     1.9 +        try {
    1.10 +            JSObject koProp = (JSObject) ((JSObject) model).getMember(prop);
    1.11 +            koProp.call("valueHasMutated");
    1.12 +        } catch (Throwable t) {
    1.13 +            LOG.log(Level.FINE, "valueHasMutated failed for {0}", model);
    1.14 +        }
    1.15      }
    1.16      
    1.17  
    1.18 @@ -141,8 +145,12 @@
    1.19          + "); x;");
    1.20          
    1.21          Object ko = e.executeScript("ko");
    1.22 -        bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive, array);
    1.23 -        LOG.log(Level.FINE, "binding defined for {0}: {1}", new Object[]{prop, ((JSObject)bindings).getMember(prop)});
    1.24 +        try {
    1.25 +            bnd.call("bnd", ko, bindings, model, prop, strip(getter), strip(setter), primitive, array);
    1.26 +            LOG.log(Level.FINE, "binding defined for {0}: {1}", new Object[]{prop, ((JSObject)bindings).getMember(prop)});
    1.27 +        } catch (Throwable ex) {
    1.28 +            LOG.log(Level.FINE, "binding failed for {0} on {1}", new Object[]{prop, bindings});
    1.29 +        }
    1.30      }
    1.31      
    1.32      private static String strip(String mangled) {