Author: rgreig
Date: Sat Dec 16 01:59:02 2006
New Revision: 487779
URL: http://svn.apache.org/viewvc?view=rev&rev=487779
Log:
QPID-201 : Fix to throw correct exception when getting char as null in
JMSMapMessage
Modified:
incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
Modified:
incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java?view=diff&rev=487779&r1=487778&r2=487779
==============================================================================
---
incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
(original)
+++
incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
Sat Dec 16 01:59:02 2006
@@ -102,6 +102,27 @@
{
Assert.fail("JMSException received." + e);
}
+
+ try
+ {
+ JMSMapMessage mm = TestMessageHelper.newJMSMapMessage();
+
+ mm.setString("value", null);
+ char c = mm.getChar("value");
+ fail("Expected NullPointerException");
+
+ }
+ catch (NullPointerException e)
+ {
+ ; // pass
+ }
+ catch (JMSException e)
+ {
+ Assert.fail("JMSException received." + e);
+ }
+
+
+
}
public void testDoubleLookup()
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java?view=diff&rev=487779&r1=487778&r2=487779
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
Sat Dec 16 01:59:02 2006
@@ -93,4 +93,6 @@
public Object setObject(String string, Object object);
+ public boolean isNullStringValue(String name);
+
}
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java?view=diff&rev=487779&r1=487778&r2=487779
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
Sat Dec 16 01:59:02 2006
@@ -174,7 +174,7 @@
if (c == null)
{
- if (_fieldtable.get(string) instanceof Character)
+ if (_fieldtable.isNullStringValue(string))
{
throw new NullPointerException("Cannot convert null char");
}
@@ -415,7 +415,7 @@
}
catch (AMQPInvalidClassException aice)
{
- throw new JMSException("Only primatives are allowed object is:" +
object.getClass());
+ throw new MessageFormatException("Only primatives are allowed
object is:" + object.getClass());
}
}
Modified:
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java?view=diff&rev=487779&r1=487778&r2=487779
==============================================================================
---
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
(original)
+++
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
Sat Dec 16 01:59:02 2006
@@ -438,70 +438,53 @@
{
return setBoolean(string, (Boolean) object);
}
- else
+ else if (object instanceof Byte)
{
- if (object instanceof Byte)
- {
- return setByte(string, (Byte) object);
- }
- else
- {
- if (object instanceof Short)
- {
- return setShort(string, (Short) object);
- }
- else
- {
- if (object instanceof Integer)
- {
- return setInteger(string, (Integer) object);
- }
- else
- {
- if (object instanceof Long)
- {
- return setLong(string, (Long) object);
- }
- else
- {
- if (object instanceof Float)
- {
- return setFloat(string, (Float) object);
- }
- else
- {
- if (object instanceof Double)
- {
- return setDouble(string, (Double) object);
- }
- else
- {
- if (object instanceof String)
- {
- return setString(string, (String)
object);
- }
- else
- {
- if (object instanceof Character)
- {
- return setChar(string, (Character)
object);
- }
- else
- {
- if (object instanceof byte[])
- {
- return setBytes(string,
(byte[]) object);
- }
- }
- }
- }
- }
- }
- }
- }
- }
+ return setByte(string, (Byte) object);
}
+ else if (object instanceof Short)
+ {
+ return setShort(string, (Short) object);
+ }
+ else if (object instanceof Integer)
+ {
+ return setInteger(string, (Integer) object);
+ }
+ else if (object instanceof Long)
+ {
+ return setLong(string, (Long) object);
+ }
+ else if (object instanceof Float)
+ {
+ return setFloat(string, (Float) object);
+ }
+ else if (object instanceof Double)
+ {
+ return setDouble(string, (Double) object);
+ }
+ else if (object instanceof String)
+ {
+ return setString(string, (String) object);
+ }
+ else if (object instanceof Character)
+ {
+ return setChar(string, (Character) object);
+ }
+ else if (object instanceof byte[])
+ {
+ return setBytes(string, (byte[]) object);
+ }
+
throw new AMQPInvalidClassException("Only Primatives objects allowed
Object is:" + object.getClass());
+ }
+
+
+ public boolean isNullStringValue(String name)
+ {
+ return _properties.containsKey(name) && (_properties.get(name) ==
null) &&
+
_propertyNamesTypeMap.get(name).equals(Prefix.AMQP_NULL_STRING_PROPERTY_PREFIX);
+
+
}
// ***** Methods