You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Robert Veigel (JIRA)" <ji...@apache.org> on 2007/08/22 10:44:34 UTC

[jira] Created: (WW-2124) ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText

ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText
--------------------------------------------------------------------------------

                 Key: WW-2124
                 URL: https://issues.apache.org/struts/browse/WW-2124
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.0.6
         Environment: OS: Sun Solaris 
VM: JDK 1.5.0_08
Application Server: BEA Weblogic 9.0
            Reporter: Robert Veigel


Sometimes when an action is called by the user which does not implement "ModelDriven" a ClassCastException is thrown. This happens perhaps 1 time in 50 or so http calls. The Stacktrace is: 

java.lang.ClassCastException: com.xxx.yyy.interfaces.zzz.action.ConfigUpload
        at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:362)
        at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:224)
        at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:99)
        at org.apache.struts2.components.Text.end(Text.java:158)
        at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
        at jsp_servlet._ipls._upload.__configupload._jspService(__configupload.java:168)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:214)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:120)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
        at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
        at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
        at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
        at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
        at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.xxx.yyy.interfaces.zzz.interceptor.ConfigFileUploadInterceptor.intercept(Unknown Source)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.xxx.yyy.interfaces.zzz.interceptor.DatabaseResourceInterceptor.intercept(Unknown Source)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
        at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
        at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
        at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
        at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
        at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.UploadFilter.doFilter(Unknown Source)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.DatabaseResourceFilter.doFilter(DatabaseResourceFilter.java:90)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3020)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1848)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1288)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)

Implementing "ModelDriven" seems to avoid the ClassCastException

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (WW-2124) ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText

Posted by "James Holmes (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/struts/browse/WW-2124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Holmes updated WW-2124:
-----------------------------

    Fix Version/s: 2.0.11

> ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText
> --------------------------------------------------------------------------------
>
>                 Key: WW-2124
>                 URL: https://issues.apache.org/struts/browse/WW-2124
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.0.6
>         Environment: OS: Sun Solaris 
> VM: JDK 1.5.0_08
> Application Server: BEA Weblogic 9.0
>            Reporter: Robert Veigel
>             Fix For: 2.0.11
>
>
> Sometimes when an action is called by the user which does not implement "ModelDriven" a ClassCastException is thrown. This happens perhaps 1 time in 50 or so http calls. The Stacktrace is: 
> java.lang.ClassCastException: com.xxx.yyy.interfaces.zzz.action.ConfigUpload
>         at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:362)
>         at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:224)
>         at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:99)
>         at org.apache.struts2.components.Text.end(Text.java:158)
>         at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
>         at jsp_servlet._ipls._upload.__configupload._jspService(__configupload.java:168)
>         at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
>         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:214)
>         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:120)
>         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
>         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
>         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
>         at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
>         at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
>         at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
>         at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
>         at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.xxx.yyy.interfaces.zzz.interceptor.ConfigFileUploadInterceptor.intercept(Unknown Source)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.xxx.yyy.interfaces.zzz.interceptor.DatabaseResourceInterceptor.intercept(Unknown Source)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
>         at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
>         at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.UploadFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.DatabaseResourceFilter.doFilter(DatabaseResourceFilter.java:90)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3020)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925)
>         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1848)
>         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1288)
>         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
>         at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
> Implementing "ModelDriven" seems to avoid the ClassCastException

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (WW-2124) ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText

Posted by "Don Brown (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/struts/browse/WW-2124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Don Brown resolved WW-2124.
---------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 2.0.11)
                   2.1.0
         Assignee: Don Brown

Fixed for 2.1.0 in XWork.  Will take a release of XWork 2.0 branch to be usable by 2.0.x

> ClassCastException at at com.opensymphony.xwork2.util.LocalizedTextUtil.findText
> --------------------------------------------------------------------------------
>
>                 Key: WW-2124
>                 URL: https://issues.apache.org/struts/browse/WW-2124
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.0.6
>         Environment: OS: Sun Solaris 
> VM: JDK 1.5.0_08
> Application Server: BEA Weblogic 9.0
>            Reporter: Robert Veigel
>            Assignee: Don Brown
>             Fix For: 2.1.0
>
>
> Sometimes when an action is called by the user which does not implement "ModelDriven" a ClassCastException is thrown. This happens perhaps 1 time in 50 or so http calls. The Stacktrace is: 
> java.lang.ClassCastException: com.xxx.yyy.interfaces.zzz.action.ConfigUpload
>         at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:362)
>         at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:224)
>         at com.opensymphony.xwork2.ActionSupport.getText(ActionSupport.java:99)
>         at org.apache.struts2.components.Text.end(Text.java:158)
>         at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:43)
>         at jsp_servlet._ipls._upload.__configupload._jspService(__configupload.java:168)
>         at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
>         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:214)
>         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:120)
>         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:272)
>         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:414)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
>         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245)
>         at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:139)
>         at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
>         at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
>         at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
>         at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.xxx.yyy.interfaces.zzz.interceptor.ConfigFileUploadInterceptor.intercept(Unknown Source)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.xxx.yyy.interfaces.zzz.interceptor.DatabaseResourceInterceptor.intercept(Unknown Source)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
>         at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
>         at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
>         at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
>         at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
>         at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
>         at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.UploadFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.AuthorizationFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.DatabaseResourceFilter.doFilter(DatabaseResourceFilter.java:90)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at com.xxx.yyy.interfaces.zzz.http.ExceptionFilter.doFilter(Unknown Source)
>         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
>         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3020)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1925)
>         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1848)
>         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1288)
>         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
>         at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
> Implementing "ModelDriven" seems to avoid the ClassCastException

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.