You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2005/09/29 19:39:25 UTC

svn commit: r292490 - in /jakarta/tapestry/trunk: framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java status.xml

Author: hlship
Date: Thu Sep 29 10:39:18 2005
New Revision: 292490

URL: http://svn.apache.org/viewcvs?rev=292490&view=rev
Log:
TAPESTRY-601: EnhanceUtils needs null checks in the primitive unwrapper methods

Modified:
    jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java
    jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java
    jakarta/tapestry/trunk/status.xml

Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java?rev=292490&r1=292489&r2=292490&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/enhance/EnhanceUtils.java Thu Sep 29 10:39:18 2005
@@ -129,56 +129,56 @@
     {
         Boolean wrapped = (Boolean) binding.getObject(Boolean.class);
 
-        return wrapped.booleanValue();
+        return wrapped == null ? false : wrapped.booleanValue();
     }
 
     public static byte toByte(IBinding binding)
     {
         Byte wrapped = (Byte) binding.getObject(Byte.class);
 
-        return wrapped.byteValue();
+        return wrapped == null ? 0 : wrapped.byteValue();
     }
 
     public static char toChar(IBinding binding)
     {
         Character wrapped = (Character) binding.getObject(Character.class);
 
-        return wrapped.charValue();
+        return wrapped == null ? 0 : wrapped.charValue();
     }
 
     public static short toShort(IBinding binding)
     {
         Short wrapped = (Short) binding.getObject(Short.class);
 
-        return wrapped.shortValue();
+        return wrapped == null ? 0 : wrapped.shortValue();
     }
 
     public static int toInt(IBinding binding)
     {
         Integer wrapped = (Integer) binding.getObject(Integer.class);
 
-        return wrapped.intValue();
+        return wrapped == null ? 0 : wrapped.intValue();
     }
 
     public static long toLong(IBinding binding)
     {
         Long wrapped = (Long) binding.getObject(Long.class);
 
-        return wrapped.longValue();
+        return wrapped == null ? 0 : wrapped.longValue();
     }
 
     public static float toFloat(IBinding binding)
     {
         Float wrapped = (Float) binding.getObject(Float.class);
 
-        return wrapped.floatValue();
+        return wrapped == null ? 0.0f : wrapped.floatValue();
     }
 
     public static double toDouble(IBinding binding)
     {
         Double wrapped = (Double) binding.getObject(Double.class);
 
-        return wrapped.doubleValue();
+        return wrapped == null ? 0.0d : wrapped.doubleValue();
     }
 
     /**

Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java?rev=292490&r1=292489&r2=292490&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/enhance/TestEnhanceUtils.java Thu Sep 29 10:39:18 2005
@@ -18,6 +18,7 @@
 
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.test.HiveMindTestCase;
+import org.apache.tapestry.IBinding;
 import org.apache.tapestry.IComponent;
 import org.apache.tapestry.IRender;
 import org.easymock.MockControl;
@@ -179,7 +180,192 @@
         }
 
         verifyControls();
+    }
+
+    protected IBinding newBinding(Class expectedType, Object value)
+    {
+        IBinding binding = (IBinding) newMock(IBinding.class);
+
+        binding.getObject(expectedType);
+        setReturnValue(binding, value);
+
+        return binding;
+    }
+
+    public void testToBooleanNull()
+    {
+        IBinding binding = newBinding(Boolean.class, null);
+
+        replayControls();
+
+        assertEquals(false, EnhanceUtils.toBoolean(binding));
+
+        verifyControls();
+    }
+
+    public void testToBoolean()
+    {
+        IBinding binding = newBinding(Boolean.class, Boolean.TRUE);
+
+        replayControls();
+
+        assertEquals(true, EnhanceUtils.toBoolean(binding));
+
+        verifyControls();
+    }
+
+    public void testToByteNull()
+    {
+        IBinding binding = newBinding(Byte.class, null);
+
+        replayControls();
+
+        assertEquals(0, EnhanceUtils.toByte(binding));
+
+        verifyControls();
+    }
+
+    public void testToByte()
+    {
+        IBinding binding = newBinding(Byte.class, new Byte((byte) 37));
+
+        replayControls();
+
+        assertEquals(37, EnhanceUtils.toByte(binding));
+
+        verifyControls();
+    }
+
+    public void testToCharNull()
+    {
+        IBinding binding = newBinding(Character.class, null);
+
+        replayControls();
+
+        assertEquals(0, EnhanceUtils.toChar(binding));
+
+        verifyControls();
+    }
+
+    public void testToChar()
+    {
+        IBinding binding = newBinding(Character.class, new Character('q'));
+
+        replayControls();
+
+        assertEquals('q', EnhanceUtils.toChar(binding));
+
+        verifyControls();
+    }
+
+    public void testToShortNull()
+    {
+        IBinding binding = newBinding(Short.class, null);
+
+        replayControls();
+
+        assertEquals(0, EnhanceUtils.toShort(binding));
+
+        verifyControls();
+    }
+
+    public void testToShort()
+    {
+        IBinding binding = newBinding(Short.class, new Short((short) 99));
+
+        replayControls();
 
+        assertEquals(99, EnhanceUtils.toShort(binding));
+
+        verifyControls();
+    }
+
+    public void testToIntNull()
+    {
+        IBinding binding = newBinding(Integer.class, null);
+
+        replayControls();
+
+        assertEquals(0, EnhanceUtils.toInt(binding));
+
+        verifyControls();
+    }
+
+    public void testToInt()
+    {
+        IBinding binding = newBinding(Integer.class, new Integer(107));
+
+        replayControls();
+
+        assertEquals(107, EnhanceUtils.toInt(binding));
+
+        verifyControls();
+    }
+
+    public void testToLongNull()
+    {
+        IBinding binding = newBinding(Long.class, null);
+
+        replayControls();
+
+        assertEquals(0, EnhanceUtils.toLong(binding));
+
+        verifyControls();
+    }
+
+    public void testToLong()
+    {
+        IBinding binding = newBinding(Long.class, new Long(90000));
+
+        replayControls();
+
+        assertEquals(90000, EnhanceUtils.toLong(binding));
+
+        verifyControls();
+    }
+
+    public void testToFloatNull()
+    {
+        IBinding binding = newBinding(Float.class, null);
+
+        replayControls();
+
+        assertEquals(0.0f, EnhanceUtils.toFloat(binding));
+
+        verifyControls();
+    }
+
+    public void testToFloat()
+    {
+        IBinding binding = newBinding(Float.class, new Float(2.5f));
+
+        replayControls();
+
+        assertEquals(2.5f, EnhanceUtils.toFloat(binding));
+
+        verifyControls();
+    }
+
+    public void testToDoubleNull()
+    {
+        IBinding binding = newBinding(Double.class, null);
+
+        replayControls();
+
+        assertEquals(0.0d, EnhanceUtils.toDouble(binding));
+
+        verifyControls();
+    }
+
+    public void testToDouble()
+    {
+        IBinding binding = newBinding(Double.class, new Double(2.5d));
+
+        replayControls();
+
+        assertEquals(2.5d, EnhanceUtils.toDouble(binding));
+
+        verifyControls();
     }
 
 }

Modified: jakarta/tapestry/trunk/status.xml
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/status.xml?rev=292490&r1=292489&r2=292490&view=diff
==============================================================================
--- jakarta/tapestry/trunk/status.xml (original)
+++ jakarta/tapestry/trunk/status.xml Thu Sep 29 10:39:18 2005
@@ -53,6 +53,7 @@
     <release version="4.0-beta-9" date="unreleased">
       <action type="fix" dev="DS" fixes-bug="TAPESTRY-663">Document Button component</action>
       <action type="fix" dev="DS" fixes-bug="TAPESTRY-491">Document Inspector component</action>
+      <action type="fix" dev="HLS" fixes-bug="TAPESTRY-601">EnhanceUtils needs null checks in the primitive unwrapper methods</action>
     </release>
     <release version="4.0-beta-8" date="Sep 24 2005">
       <action type="fix" dev="DS" fixes-bug="TAPESTRY-465">Document Foreach component</action>



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org