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