You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2006/12/13 11:01:08 UTC
svn commit: r486574 - in /incubator/qpid/trunk/qpid/java:
client/src/test/java/org/apache/qpid/test/unit/basic/
common/src/main/java/org/apache/qpid/framing/
Author: ritchiem
Date: Wed Dec 13 02:01:07 2006
New Revision: 486574
URL: http://svn.apache.org/viewvc?view=rev&rev=486574
Log:
QPID-9
Added ability to send NULL Strings. EncodingUtils.java now returns an empty string for a zero lengthed String.
To send a null string use prefix 'n'
MapMessageTest.java - Updated to test emptyString and nullString behave correctly.
Modified:
incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.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/basic/MapMessageTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java?view=diff&rev=486574&r1=486573&r2=486574
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/basic/MapMessageTest.java Wed Dec 13 02:01:07 2006
@@ -1170,9 +1170,7 @@
//Check Special values
assertTrue(m.getString("nullString") == null);
- assertTrue(m.getString("emptyString") == null);
- _logger.warn("An emptyString should not become a null string after transmission.");
- //assertEqual("", m.getString("emptyString"));
+ assertEqual("", m.getString("emptyString"));
}
private void assertBytesEqual(byte[] expected, byte[] actual)
Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java?view=diff&rev=486574&r1=486573&r2=486574
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java Wed Dec 13 02:01:07 2006
@@ -343,7 +343,7 @@
long length = buffer.getUnsignedInt();
if (length == 0)
{
- return null;
+ return "";
}
else
{
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=486574&r1=486573&r2=486574
==============================================================================
--- 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 Wed Dec 13 02:01:07 2006
@@ -52,6 +52,7 @@
public static final char LONG_PROPERTY_PREFIX = 'l';
public static final char FLOAT_PROPERTY_PREFIX = 'f';
public static final char DOUBLE_PROPERTY_PREFIX = 'd';
+ public static final char NULL_STRING_PROPERTY_PREFIX = 'n';
public static final char STRING_PROPERTY_PREFIX = AMQP_STRING_PROPERTY_PREFIX;
public static final char CHAR_PROPERTY_PREFIX = AMQP_ASCII_STRING_PROPERTY_PREFIX;
@@ -235,9 +236,11 @@
}
else
{
+
+
String type = _propertyNamesTypeMap.get(string);
- if (type == null)
+ if (type == null || type.equals("" + NULL_STRING_PROPERTY_PREFIX))
{
return null;
}
@@ -345,7 +348,14 @@
public Object setString(String string, String string1)
{
- return put(STRING_PROPERTY_PREFIX + string, string1);
+ if (string1 == null)
+ {
+ return put(NULL_STRING_PROPERTY_PREFIX + string, null);
+ }
+ else
+ {
+ return put(STRING_PROPERTY_PREFIX + string, string1);
+ }
}
public Object setChar(String string, char c)
@@ -1167,7 +1177,9 @@
buffer.put((byte) DOUBLE_PROPERTY_PREFIX);
EncodingUtils.writeDouble(buffer, (Double) value);
break;
-
+ case NULL_STRING_PROPERTY_PREFIX:
+ buffer.put((byte) NULL_STRING_PROPERTY_PREFIX);
+ break;
case AMQP_WIDE_STRING_PROPERTY_PREFIX:
//case AMQP_STRING_PROPERTY_PREFIX:
case STRING_PROPERTY_PREFIX:
@@ -1263,6 +1275,9 @@
case STRING_PROPERTY_PREFIX:
value = EncodingUtils.readLongString(buffer);
break;
+ case NULL_STRING_PROPERTY_PREFIX:
+ value = null;
+ break;
//case AMQP_ASCII_STRING_PROPERTY_PREFIX:
case CHAR_PROPERTY_PREFIX:
value = EncodingUtils.readShortString(buffer).charAt(0);
@@ -1344,6 +1359,9 @@
//case AMQP_STRING_PROPERTY_PREFIX:
case STRING_PROPERTY_PREFIX:
encodingSize += EncodingUtils.encodedLongStringLength((String) value);
+ break;
+ case NULL_STRING_PROPERTY_PREFIX:
+ // There is no need for additiona size beyond the prefix
break;
//case AMQP_ASCII_STRING_PROPERTY_PREFIX:
case CHAR_PROPERTY_PREFIX: