2003/06/29 21:20:38
[org.ibex.core.git] / src / org / xwt / Template.java
index 6ee6f0b..2f14040 100644 (file)
@@ -212,15 +212,19 @@ public class Template {
         }
 
         for(int i=0; keys != null && i<keys.length; i++) {
-            // FIXME: make sure that if exceptions are thrown in here, the line number of the offending XML is logged
-            if (keys[i] == null) { }
-            else if (keys[i].equals("border") || keys[i].equals("image") &&
-                     !vals[i].toString().startsWith("http://") && !vals[i].toString().startsWith("https://")) {
-                String s = Resources.resolve(vals[i].toString() + ".png", importlist);
-                if (s != null) b.put(keys[i], s.substring(0, s.length() - 4));
-                else if (Log.on) Log.log(this, "unable to resolve image " + vals[i].toString() + " referenced in attributes of " + nodeName); 
+            try {
+                if (keys[i] == null) { }
+                else if (keys[i].equals("border") || keys[i].equals("image") &&
+                        !vals[i].toString().startsWith("http://") && !vals[i].toString().startsWith("https://")) {
+                    String s = Resources.resolve(vals[i].toString() + ".png", importlist);
+                    if (s != null) b.put(keys[i], s.substring(0, s.length() - 4));
+                    else if (Log.on) Log.log(this, "unable to resolve image " + vals[i].toString() + " referenced in attributes of " + nodeName); 
+                }
+                else b.put(keys[i], vals[i]);
+            } catch(JS.Exn e) {
+                if(Log.on) Log.log(this,"WARNING: uncaught ecmascript exception while putting attr \"" + keys[i] + 
+                    "\" of " + nodeName + " : " + e.getMessage());
             }
-            else b.put(keys[i], vals[i]);
         }
 
         if (redirect != null && !"self".equals(redirect)) b.redirect = redir;