You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/05/19 17:05:04 UTC

svn commit: r407816 - in /incubator/activemq/trunk/activemq-core/src: main/java/org/apache/activemq/filter/ComparisonExpression.java test/java/org/apache/activemq/selector/SelectorTest.java

Author: chirino
Date: Fri May 19 08:05:04 2006
New Revision: 407816

URL: http://svn.apache.org/viewvc?rev=407816&view=rev
Log:
Test and Fix for http://issues.apache.org/activemq/browse/AMQ-715

Modified:
    incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/filter/ComparisonExpression.java
    incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java

Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/filter/ComparisonExpression.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/filter/ComparisonExpression.java?rev=407816&r1=407815&r2=407816&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/filter/ComparisonExpression.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/filter/ComparisonExpression.java Fri May 19 08:05:04 2006
@@ -351,7 +351,42 @@
         // If the the objects are not of the same type,
         // try to convert up to allow the comparison.
         if (lc != rc) {
-            if (lc == Integer.class) {
+            if (lc == Byte.class) {
+                if (rc == Short.class) {
+                    lv = new Short(((Number) lv).shortValue());
+                }
+                else if (rc == Integer.class) {
+                    lv = new Integer(((Number) lv).intValue());
+                }
+                else if (rc == Long.class) {
+                    lv = new Long(((Number) lv).longValue());
+                }
+                else if (rc == Float.class) {
+                    lv = new Float(((Number) lv).floatValue());
+                }
+                else if (rc == Double.class) {
+                    lv = new Double(((Number) lv).doubleValue());
+                }
+                else {
+                    return Boolean.FALSE;
+                }
+             } else if (lc == Short.class) {
+                if (rc == Integer.class) {
+                    lv = new Integer(((Number) lv).intValue());
+                }
+                else if (rc == Long.class) {
+                    lv = new Long(((Number) lv).longValue());
+                }
+                else if (rc == Float.class) {
+                    lv = new Float(((Number) lv).floatValue());
+                }
+                else if (rc == Double.class) {
+                    lv = new Double(((Number) lv).doubleValue());
+                }
+                else {
+                    return Boolean.FALSE;
+                }
+            } else if (lc == Integer.class) {
                 if (rc == Long.class) {
                     lv = new Long(((Number) lv).longValue());
                 }

Modified: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java?rev=407816&r1=407815&r2=407816&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java (original)
+++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/selector/SelectorTest.java Fri May 19 08:05:04 2006
@@ -78,8 +78,33 @@
         assertSelector(message, "rank > 100", true);
         assertSelector(message, "rank >= 123", true);
         assertSelector(message, "rank >= 124", false);
+        
     }
 
+    public void testPropertyTypes() throws Exception {
+        Message message = createMessage();
+        assertSelector(message, "byteProp = 123", true);
+        assertSelector(message, "byteProp = 10", false);
+
+        assertSelector(message, "shortProp = 123", true);
+        assertSelector(message, "shortProp = 10", false);
+
+
+        assertSelector(message, "shortProp = 123", true);
+        assertSelector(message, "shortProp = 10", false);
+
+        assertSelector(message, "intProp = 123", true);
+        assertSelector(message, "intProp = 10", false);
+
+        assertSelector(message, "longProp = 123", true);
+        assertSelector(message, "longProp = 10", false);
+
+        assertSelector(message, "floatProp = 123", true);
+        assertSelector(message, "floatProp = 10", false);
+
+        assertSelector(message, "doubleProp = 123", true);
+        assertSelector(message, "doubleProp = 10", false);
+    }
     public void testAndSelectors() throws Exception {
         Message message = createMessage();
 
@@ -297,6 +322,14 @@
         message.setJMSMessageID("connection:1:1:1:1");
         message.setObjectProperty("name", "James");
         message.setObjectProperty("location", "London");
+        
+        message.setByteProperty("byteProp", (byte)123);
+        message.setShortProperty("shortProp", (short)123);
+        message.setIntProperty("intProp", (int)123);
+        message.setLongProperty("longProp", (long)123);
+        message.setFloatProperty("floatProp", (float)123);
+        message.setDoubleProperty("doubleProp", (double)123);
+
         message.setIntProperty("rank", 123);
         message.setIntProperty("version", 2);
         message.setStringProperty("quote", "'In God We Trust'");