ko/bck2brwsr/src/main/java/org/apidesign/bck2brwsr/ko2brwsr/BrwsrCtxImpl.java
changeset 1254 2e0da2375ef5
parent 1253 a936dd8280dc
child 1420 246ee398b411
     1.1 --- a/ko/bck2brwsr/src/main/java/org/apidesign/bck2brwsr/ko2brwsr/BrwsrCtxImpl.java	Thu Aug 29 14:35:01 2013 +0000
     1.2 +++ b/ko/bck2brwsr/src/main/java/org/apidesign/bck2brwsr/ko2brwsr/BrwsrCtxImpl.java	Thu Aug 29 16:24:04 2013 +0000
     1.3 @@ -45,15 +45,36 @@
     1.4      @Override
     1.5      public void loadJSON(final JSONCall call) {
     1.6          class R implements Runnable {
     1.7 +            final boolean success;
     1.8 +
     1.9 +            public R(boolean success) {
    1.10 +                this.success = success;
    1.11 +            }
    1.12 +            
    1.13              Object[] arr = { null };
    1.14              @Override
    1.15              public void run() {
    1.16 -                call.notifySuccess(arr[0]);
    1.17 +                if (success) {
    1.18 +                    call.notifySuccess(arr[0]);
    1.19 +                } else {
    1.20 +                    Throwable t;
    1.21 +                    if (arr[0] instanceof Throwable) {
    1.22 +                        t = (Throwable) arr[0];
    1.23 +                    } else {
    1.24 +                        if (arr[0] == null) {
    1.25 +                            t = new IOException();
    1.26 +                        } else {
    1.27 +                            t = new IOException(arr[0].toString());
    1.28 +                        }
    1.29 +                    }
    1.30 +                    call.notifyError(t);
    1.31 +                }
    1.32              }
    1.33          }
    1.34 -        R r = new R();
    1.35 +        R success = new R(true);
    1.36 +        R failure = new R(false);
    1.37          if (call.isJSONP()) {
    1.38 -            String me = ConvertTypes.createJSONP(r.arr, r);
    1.39 +            String me = ConvertTypes.createJSONP(success.arr, success);
    1.40              ConvertTypes.loadJSONP(call.composeURL(me), me);
    1.41          } else {
    1.42              String data = null;
    1.43 @@ -66,7 +87,7 @@
    1.44                      call.notifyError(ex);
    1.45                  }
    1.46              }
    1.47 -            ConvertTypes.loadJSON(call.composeURL(null), r.arr, r, call.getMethod(), data);
    1.48 +            ConvertTypes.loadJSON(call.composeURL(null), success.arr, success, failure, call.getMethod(), data);
    1.49          }
    1.50      }
    1.51