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]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.