Author: michiel
Date: 2009-07-06 12:22:21 +0200 (Mon, 06 Jul 2009)
New Revision: 36557

Modified:
   
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java
Log:
comparing values as strings, this solves a bug, and it logical any way, because 
only strings can be represented as 'value' of an option

Modified: 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java
===================================================================
--- 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java
    2009-07-06 10:20:44 UTC (rev 36556)
+++ 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/EnumHandler.java
    2009-07-06 10:22:21 UTC (rev 36557)
@@ -87,13 +87,14 @@
                     case Field.TYPE_STRING:  type = String.class; break;
                     case Field.TYPE_INTEGER: type = Integer.class; break;
                     case Field.TYPE_LONG:    type = Long.class; break;
+                    case Field.TYPE_NODE:    type = Node.class; break;
 
                         // I wonder if enums for the following types could 
make any sense, but well:
                     case Field.TYPE_FLOAT:   type = Float.class; break;
                     case Field.TYPE_DOUBLE:  type = Double.class; break;
                     case Field.TYPE_BINARY:    type = byte[].class; break;
                     case Field.TYPE_XML:     type = String.class; break; // 
Document.class ?
-                    case Field.TYPE_NODE:    type = Node.class; break;
+
                         /*
                           case Field.TYPE_DATETIME:  type = Date.class; break;
                           case Field.TYPE_BOOLEAN:   type = Boolean.class; 
break;
@@ -130,7 +131,10 @@
     @Override
     protected Object convertToValidate(final Object s, final Node node, final 
Field field) throws JspTagException {
         DataType dt = field.getDataType();
-        if (s == null && ! dt.isRequired()) return null;
+        if (s == null && ! dt.isRequired()) {
+            return null;
+        }
+        String ss = Casting.toString(s);
         Iterator i = getIterator(node, field);
         Object firstValue = null;
         if (i!= null && i.hasNext()) {
@@ -138,7 +142,7 @@
             if (log.isDebugEnabled()) {
                 log.debug("Comparing " + value + " to " + s);
             }
-            if (value.equals(s)) {
+            if (Casting.toString(value).equals(ss)) {
                 return value;
             }
             firstValue = value;
@@ -148,7 +152,9 @@
             if (log.isDebugEnabled()) {
                 log.debug("Comparing " + value + " to " + s);
             }
-            if (value.equals(s)) return value;
+            if (Casting.toString(value).equals(ss)) {
+                return value;
+            }
         }
         log.debug("Returning firstValue");
         return firstValue;

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to