[ 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)