very strange error with xwork.xml
Jesse Miller <[email protected]>
| Newsgroups | gmane.comp.java.open-symphony.webwork |
|---|---|
| Message-ID | <11473630.1165322172533.JavaMail.os-j2ee@opensymphony01.managed.contegix.com> |
We recently upgraded to WW2.2.4 (from 2.1.x). We are using Tomcat 5.5 and still currently using velocity templates. For some reason, ever since the upgrade, we get this seemingly random bug. It seems to change depending on which server we run off of, but the fix is always the same. It really makes us feel uncertain about the stability of the entire system so hopefully someone has some insight. Basically a particular action will start throwing a NullPointerException with this stack trace: [code] java.lang.NullPointerException com.opensymphony.xwork.util.TextParseUtil.translateVariables(CLjava/lang/String;Lcom/opensymphony/xwork/util/OgnlValueStack;Ljava/lang/Class;Lcom/opensymphony/xwork/util/TextParseUtil$ParsedValueEvaluator;)Ljava/lang/Object;(TextParseUtil.java:104) com.opensymphony.xwork.util.TextParseUtil.translateVariables(Ljava/lang/String;Lcom/opensymphony/xwork/util/OgnlValueStack;)Ljava/lang/String;(TextParseUtil.java:34) com.opensymphony.xwork.ActionChainResult.execute(Lcom/opensymphony/xwork/ActionInvocation;)V(ActionChainResult.java:131) com.opensymphony.xwork.DefaultActionInvocation.executeResult()V(DefaultActionInvocation.java:311) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:206) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AroundInterceptor.java:31) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.doIntercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(DefaultWorkflowInterceptor.java:168) com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(MethodFilterInterceptor.java:86) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.paxfood.operations.OperationsContextInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(OperationsContextInterceptor.java:32) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(ValidationInterceptor.java:115) com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(MethodFilterInterceptor.java:86) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AroundInterceptor.java:31) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AroundInterceptor.java:31) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AroundInterceptor.java:31) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AroundInterceptor.java:31) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.paxfood.hibernate.cache.CacheSyncInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(CacheSyncInterceptor.java:37) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.paxfood.hibernate.HibernateTransactionInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(HibernateTransactionInterceptor.java:77) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.paxfood.operations.AdminLoginInterceptor.intercept(Lcom/opensymphony/xwork/ActionInvocation;)Ljava/lang/String;(AdminLoginInterceptor.java:33) com.opensymphony.xwork.DefaultActionInvocation.invoke()Ljava/lang/String;(DefaultActionInvocation.java:188) com.opensymphony.xwork.DefaultActionProxy.execute()Ljava/lang/String;(DefaultActionProxy.java:113) com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/ServletContext;Lcom/opensymphony/webwork/dispatcher/mapper/ActionMapping;)V(DispatcherUtils.java:225) com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(FilterDispatcher.java:202) [/code] Now, the strangest part is how to fix it. It seems to fix it all we have to do is move around the action in the xwork.xml. Sometimes putting a comment above it will fix it. If there are multiple result names, then we sometimes just have to swap their order. Even stranger is sometimes if you put a couple of spaces before the broken action, the action above it will start breaking with the same stack trace. This xwork.xml worked perfectly in WW2.1.x Thanks in advance for any help. --------------------------------------------------------------------- Posted via Jive Forums http://forums.opensymphony.com/thread.jspa?threadID=52170&messageID=105288#105288 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]