-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
26.1.3.Final
-
None
-
-
---
-
---
If WildFly uses Weld module, org.apache.jasper.el.JspValueExpression can no longer be unserialized (it can be serialized, but the result is useless). The reason seems to be that the object internally uses a Weld expression as delegate and this structure cannot be unserialized because 'io.undertow.jsp' module cannot find classes from Weld module.
Background: we have a very old application with lots of outdated technologies, e.g. JSP and old MyFaces (JSF). When trying to upgrade MyFaces from 2.1 to 2.2 (and eventually further), WildFly started activating Weld module, which broke (by side effect) serialization/deserialization of ValueExpression objects coming from JSP pages. The latter is important for us, as it is used in many places in the application.
I managed to create a fairly small reproducer. It basically consists of a custom JSF tag that tries to serialize/unserialize the ValueExpression it receives and one JSP file to trigger it. If I use MyFaces 2.2 (see file 'build.gradle'), this results in an exception when deployed and accessed. If I downgrade to MyFaces 2.1, this works fine. In the example application MyFaces is practically unused, but it causes WildFly to activate Weld.