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