2003/11/29 03:06:09
[org.ibex.core.git] / src / org / xwt / XMLRPC.java
index 39fc30d..4d541fd 100644 (file)
@@ -130,13 +130,21 @@ class XMLRPC extends JS {
                 Object memberValue = objects.elementAt(objects.size() - 1);
                 String memberName = (String)objects.elementAt(objects.size() - 2);
                 JS struct = (JS)objects.elementAt(objects.size() - 3);
-                struct.put(memberName, memberValue);
+                try {
+                    struct.put(memberName, memberValue);
+                } catch (JSExn e) {
+                    throw new Error("this should never happen");
+                }
                 objects.setSize(objects.size() - 2);
             case "data":
                 int i;
                 for(i=objects.size() - 1; objects.elementAt(i) != null; i--);
                 JSArray arr = new JSArray();
-                for(int j = i + 1; j<objects.size(); j++) arr.put(new Integer(j - i - 1), objects.elementAt(j));
+                try {
+                    for(int j = i + 1; j<objects.size(); j++) arr.put(new Integer(j - i - 1), objects.elementAt(j));
+                } catch (JSExn e) {
+                    throw new Error("this should never happen");
+                }
                 objects.setElementAt(arr, i);
                 objects.setSize(i + 1);
             //#end            
@@ -354,19 +362,27 @@ class XMLRPC extends JS {
             new java.lang.Thread() {
                 public void run() {
                     try {
-                        final Object ret = call_(args);
-                        Scheduler.add(new Scheduler.Task() {
-                                public void perform() {
-                                    try {
-                                        callback.unpause(null);
-                                    } catch (JS.PausedException pe) {
-                                        // okay
+                        try {
+                            final Object ret = call_(args);
+                            Scheduler.add(new Scheduler.Task() {
+                                    public void perform() {
+                                        try {
+                                            callback.unpause(null);
+                                        } catch (JS.PausedException pe) {
+                                            // okay
+                                        } catch (JSExn e) {
+                                            // FIXME
+                                            throw new Error("FIXME");
+                                        }
                                     }
-                                }
-                            });
-                    } catch (IOException se) {
-                        if (Log.on) Log.log(this, se);
-                        throw new JSExn("socket exception: " + se);
+                                });
+                        } catch (IOException se) {
+                            if (Log.on) Log.log(this, se);
+                            throw new JSExn("socket exception: " + se);
+                        }
+                    } catch (JSExn e) {
+                        // FIXME
+                        throw new Error("FIXME");
                     }
                 } }.start();
             return null;