2003/12/25 08:09:21
[org.ibex.core.git] / src / org / xwt / XMLRPC.java
index 0bdca37..a5ef850 100644 (file)
@@ -77,7 +77,7 @@ class XMLRPC extends JS {
 
         public void startElement(XML.Element c) {
             content.reset();
-            //#switch(c.localName)
+            //#switch(c.getLocalName())
             case "fault": fault = true;
             case "struct": objects.setElementAt(new JS(), objects.size() - 1);
             case "array": objects.setElementAt(null, objects.size() - 1);
@@ -86,7 +86,7 @@ class XMLRPC extends JS {
         }
         
         public void endElement(XML.Element c) {
-            //#switch(c.localName)
+            //#switch(c.getLocalName())
             case "int": objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
             case "i4": objects.setElementAt(new Integer(new String(content.getBuf(), 0, content.size())), objects.size() - 1);
             case "boolean": objects.setElementAt(content.getBuf()[0] == '1' ? Boolean.TRUE : Boolean.FALSE, objects.size() - 1);
@@ -324,21 +324,17 @@ class XMLRPC extends JS {
             try {
                 new Helper().parse(br);
                 final Object result = fault ? new JSExn(objects.elementAt(0)) : objects.size() == 0 ? null : objects.elementAt(0);
-                Scheduler.add(new Scheduler.Task() { public void perform() {
-                    try {
-                        callback.unpause(result);
-                    } catch (Exception e) {
-                        // FIXME
-                        Log.log(this, e);
-                    }
-                }});
+                Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(result); }});
             } finally {
                 tracker.clear();
                 objects.setSize(0);
             }
-        } catch (Exception e) {
-            // FIXME
-            Log.log(this, e);
+        } catch (final JSExn e) {
+            Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(e); }});
+        } catch (final IOException e) {
+            Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(new JSExn(e)); }});
+        } catch (final XML.Exn e) {
+            Scheduler.add(new Scheduler.Task() { public void perform() throws Exception { callback.unpause(new JSExn(e)); }});
         }
     }
 }