[ 
https://issues.apache.org/jira/browse/WW-5451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17869919#comment-17869919
 ] 

Jon Pulice commented on WW-5451:
--------------------------------

Here is a more complete stack trace
{code:java}
ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception 
occurred during processing request: null
java.lang.NullPointerException: null
    at 
org.apache.struts2.components.IteratorComponent.start(IteratorComponent.java:309)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:51)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:116) 
~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:42)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:43)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:63)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:253)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.api.TilesContainerWrapper.render(TilesContainerWrapper.java:95)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:193)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.template.InsertAttributeModel.execute(InsertAttributeModel.java:137)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.web.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:296)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.servlet.ServletRequest.forward(ServletRequest.java:274)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.servlet.ServletRequest.doForward(ServletRequest.java:235)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.AbstractClientRequest.dispatch(AbstractClientRequest.java:51)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:43)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:253)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:393)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.core.impl.BasicTilesContainer.render(BasicTilesContainer.java:230)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.api.TilesContainerWrapper.render(TilesContainerWrapper.java:90)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.tiles.core.impl.mgmt.CachingTilesContainer.render(CachingTilesContainer.java:110)
 ~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.views.tiles.TilesResult.doExecute(TilesResult.java:140) 
~[struts2-tiles-plugin-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:377)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:284)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:260)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.FetchMetadataInterceptor.intercept(FetchMetadataInterceptor.java:78)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.CoopInterceptor.intercept(CoopInterceptor.java:57)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.CoepInterceptor.intercept(CoepInterceptor.java:55)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:143)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.parameter.ParametersInterceptor.doIntercept(ParametersInterceptor.java:204)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.parameter.ParametersInterceptor.doIntercept(ParametersInterceptor.java:204)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:202)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.ActionFileUploadInterceptor.intercept(ActionFileUploadInterceptor.java:142)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:200)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:101)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:142)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:161)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:302)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.httpmethod.HttpMethodInterceptor.intercept(HttpMethodInterceptor.java:99)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:154)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:229)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.executeConditional(DefaultActionInvocation.java:299)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
 ~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48) 
~[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:703) 
[struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
 [struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.handleRequest(StrutsPrepareAndExecuteFilter.java:157)
 [struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.tryHandleRequest(StrutsPrepareAndExecuteFilter.java:140)
 [struts2-core-6.4.0.jar:6.4.0]
    at 
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:128)
 [struts2-core-6.4.0.jar:6.4.0]{code}

> NullPointerException when <s:iterator> value array contains a null in the 
> first entry
> -------------------------------------------------------------------------------------
>
>                 Key: WW-5451
>                 URL: https://issues.apache.org/jira/browse/WW-5451
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 6.4.0
>            Reporter: Jon Pulice
>            Priority: Minor
>             Fix For: 6.7.0
>
>
> When the first entry in an array contains a null value, and that array is 
> used as the source for an <s:iterator> tag, a NullPointerException is thrown. 
> This exception did not occur in prior versions of Struts 6.x
> Exception:
>  
> {code:java}
> ERROR org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - Exception 
> occurred during processing request: null
> java.lang.NullPointerException: null
>     at 
> org.apache.struts2.components.IteratorComponent.start(IteratorComponent.java:309)
>  ~[struts2-core-6.4.0.jar:6.4.0]
>     at 
> org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:51)
>  ~[struts2-core-6.4.0.jar:6.4.0]
>     ...{code}
>  
>  
> A trivial example would be this tag:
> {code:java}
> <s:iterator value="pages">
>     ...
> </s:iterator>{code}
> and Action:
>  
> {code:java}
> public class TestAction extends ActionSupport {    
>     private Object[] pages = null;    
>     
>     public String prompt() throws Exception {
>         pages = new Object[10];
>         return SUCCESS;
>     }
> }
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to