summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorRobert Greig <rgreig@apache.org>2006-12-16 09:59:02 +0000
committerRobert Greig <rgreig@apache.org>2006-12-16 09:59:02 +0000
commit868b03b88d4defa781cbd5898d4c576bbe494997 (patch)
tree69b7e32ca0778bbc918e4aa35659e577399e42d2 /java
parent0b7211b3f64fba8ecd60175d01f091f97f0c7f12 (diff)
downloadqpid-python-868b03b88d4defa781cbd5898d4c576bbe494997.tar.gz
QPID-201 : Fix to throw correct exception when getting char as null in JMSMapMessage
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@487779 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java21
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/FieldTable.java2
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java4
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java105
4 files changed, 69 insertions, 63 deletions
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java b/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
index 276067a28d..bd4b3b3987 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/client/message/MapMessageTest.java
@@ -102,6 +102,27 @@ public class MapMessageTest extends TestCase
{
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()
diff --git a/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java b/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
index 44d0268561..193c7adf1c 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
@@ -93,4 +93,6 @@ public interface FieldTable extends Map
public Object setObject(String string, Object object);
+ public boolean isNullStringValue(String name);
+
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java b/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
index d2b64ec3c5..142a689a01 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/JMSPropertyFieldTable.java
@@ -174,7 +174,7 @@ public class JMSPropertyFieldTable
if (c == null)
{
- if (_fieldtable.get(string) instanceof Character)
+ if (_fieldtable.isNullStringValue(string))
{
throw new NullPointerException("Cannot convert null char");
}
@@ -415,7 +415,7 @@ public class JMSPropertyFieldTable
}
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());
}
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java b/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
index 4dafee910d..1292ff2f6e 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/PropertyFieldTable.java
@@ -438,72 +438,55 @@ public class PropertyFieldTable implements FieldTable
{
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
public Enumeration getPropertyNames()