Author: etnu
Date: Sun Nov  9 00:57:32 2008
New Revision: 712475

URL: http://svn.apache.org/viewvc?rev=712475&view=rev
Log:
Fixed NumberFormatException error when getting numeric ModulePrefs attributes.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
    
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java?rev=712475&r1=712474&r2=712475&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java
 Sun Nov  9 00:57:32 2008
@@ -380,15 +380,18 @@
 
   /**
    * @return the attribute by name converted to an interger, or 0 if the
-   *     attribute doesn't exist
+   *     attribute doesn't exist or is not a valid number.
    */
   public int getIntAttribute(String name) {
     String value = getAttribute(name);
     if (value == null) {
       return 0;
     } else {
-      // TODO might want to handle parse exception here
-      return Integer.parseInt(value);
+      try {
+        return Integer.parseInt(value);
+      } catch (NumberFormatException e) {
+        return 0;
+      }
     }
   }
 

Modified: 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java?rev=712475&r1=712474&r2=712475&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/ModulePrefsTest.java
 Sun Nov  9 00:57:32 2008
@@ -197,6 +197,17 @@
     assertEquals(preHref, prefs.getPreloads().get(0).getHref().toString());
   }
 
+  @Test
+  public void malformedIntAttributeTreatedAsZero() throws Exception {
+    String xml = "<ModulePrefs title='' height='100px' width='foobar' 
arbitrary='0xff'/>";
+
+    ModulePrefs prefs = new ModulePrefs(XmlUtil.parse(xml), SPEC_URL);
+
+    assertEquals(0, prefs.getHeight());
+    assertEquals(0, prefs.getWidth());
+    assertEquals(0, prefs.getIntAttribute("arbitrary"));
+  }
+
   @Test(expected = SpecParserException.class)
   public void missingTitleThrows() throws Exception {
     String xml = "<ModulePrefs/>";


Reply via email to