Update of /var/cvs/src/org/mmbase/framework/basic
In directory james.mmbase.org:/tmp/cvs-serv20962

Modified Files:
        ChainedUrlConverter.java 
Log Message:
made urlconverter parameter resistant against  non existing classes


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/framework/basic


Index: ChainedUrlConverter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/framework/basic/ChainedUrlConverter.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- ChainedUrlConverter.java    27 Oct 2008 17:27:37 -0000      1.14
+++ ChainedUrlConverter.java    27 Oct 2008 17:42:31 -0000      1.15
@@ -13,6 +13,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.mmbase.bridge.*;
 import org.mmbase.framework.*;
 import org.mmbase.util.functions.Parameters;
 import org.mmbase.util.functions.Parameter;
@@ -27,7 +28,7 @@
  * outcome of a converter can be added to the outcome of its preceder.
  *
  * @author André van Toly
- * @version $Id: ChainedUrlConverter.java,v 1.14 2008/10/27 17:27:37 michiel 
Exp $
+ * @version $Id: ChainedUrlConverter.java,v 1.15 2008/10/27 17:42:31 michiel 
Exp $
  * @since MMBase-1.9
  */
 public class ChainedUrlConverter implements UrlConverter {
@@ -35,7 +36,19 @@
     private static final Logger log = 
Logging.getLoggerInstance(ChainedUrlConverter.class);
 
 
-    public static Parameter<Class> URLCONVERTER_PARAM = new 
Parameter<Class>("urlconverter", Class.class);
+    public static Parameter<Class> URLCONVERTER_PARAM = new 
Parameter<Class>("urlconverter", new 
org.mmbase.datatypes.BasicDataType<Class>("class", Class.class) {
+            protected Class cast(Object value, Cloud cloud, Node node, Field 
field) throws org.mmbase.datatypes.CastException {
+                try {
+                    Object preCast = preCast(value, cloud, node, field);
+                    if (preCast == null) return null;
+                    Class cast = org.mmbase.util.Casting.toType(Class.class, 
cloud, preCast);
+                    return cast;
+                } catch (IllegalArgumentException iae) {
+                    log.info(iae.getMessage());
+                    return null;
+                }
+            }
+        });
 
     public static String URLCONVERTER = "org.mmbase.urlconverter";
     /**
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to