Hi, Tapestry 4.1.2 here.
We're having a problem involving ognl expression compilation. We have a page with a simple parameter assignation expression, something like: <span jwcid="@general/configaration/ProductListing" products="ognl:activity.products"/> products is a property of type: java.util.Set and sometimes its an instance of java.util.HashSet other times its an instance of Hibernate's: org.hibernate.collection.PersistentSet. At development and test environments works fine most of the time but sometimes we get the following exception: java.lang.ClassCastException: java.util.HashSet cannot be cast to org.hibernate.collection.PersistentCollection $ASTAnd_11b90020cfa.get($ASTAnd_11b90020cfa.java) org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:142) $ExpressionEvaluator_11b90020bbb.read($ExpressionEvaluator_11b90020bbb.java) org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:139) org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125) Then the page becomes useless and only restarting the webapp or server fixes it. Turns out the problem is related with ognl compilation. If ognl compiles the expression with products being an instance of PersistentSet and it later changes to HashSet, such compiled exception isn't updated and ExpressionEvaluatorImpl keeps trying to cast the HashSet's instance into a PersistentSet's. Has anybody encounter such a problem? Any ideas on how to solve it? Is there anyway to disable ognl compilation? Or to use tapestry-prop in Tap4.1.2? Thanks in advance, Miguel Hernandez
