[
https://issues.apache.org/jira/browse/OFBIZ-12934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17831365#comment-17831365
]
Gaetan Chaboussie commented on OFBIZ-12934:
-------------------------------------------
Sure, here is the relevant code :
The java code is as follows :
https://github.com/apache/ofbiz-framework/blob/65f90adf868701e4420877fe98aba58007315b2a/framework/base/src/main/java/org/apache/ofbiz/base/component/ComponentConfig.java#L1271
So the return type of the method would be an array.
And the FTL code is as follows :
https://github.com/apache/ofbiz-framework/blob/65f90adf868701e4420877fe98aba58007315b2a/themes/rainbowstone/template/includes/TopAppBar.ftl#L57
So there is a non null checker in the beginnig of the block.
With the Freemarker version in patch on top of this ticket I get this error :
{{2024-03-27 14:51:59,697 |jsse-nio-8443-exec-9 |FreeMarkerWorker
|E| null}}
{{{}freemarker.core._TemplateModelException: Java method
"org.apache.ofbiz.base.component.ComponentConfig$WebappInfo.getBasePermission()"
threw an exception when invoked on
org.apache.ofbiz.base.component.ComponentConfig$WebappInfo object
"org.apache.ofbiz.base.component.ComponentConfig$WebappInfo@6127dd1f"; see
cause exception in the Java stack trace.{}}}{{{}----{}}}
{{FTL stack trace ("~" means nesting-related):}}
{{ - Failed at: #assign permissions = display.getBase... [in template
"component://rainbowstone/template/includes/TopAppBar.ftl" at line 57, column
21]}}
{{----}}
{{ at
freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:292)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:255)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:78)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.MethodCall._eval(MethodCall.java:62)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Expression.eval(Expression.java:101)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Assignment.accept(Assignment.java:134)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visit(Environment.java:380)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visitIteratorBlock(Environment.java:654)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visit(Environment.java:344)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visit(Environment.java:350)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visit(Environment.java:350)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.visit(Environment.java:350)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.core.Environment.process(Environment.java:323)
[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
org.apache.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:244)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:196)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:266)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.HtmlWidget.renderWidgetString(HtmlWidget.java:165)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:1371)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:312)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:297)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:297)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:158)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:214)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:819)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:297)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:158)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:214)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:819)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:297)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:158)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:214)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:900)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:109)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:297)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:158)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:147)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:105)
[main/:?]}}
{{ at
org.apache.ofbiz.widget.renderer.macro.MacroScreenViewHandler.render(MacroScreenViewHandler.java:116)
[main/:?]}}
{{ at
org.apache.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:1257)
[main/:?]}}
{{ at
org.apache.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:933)
[main/:?]}}
{{ at
org.apache.ofbiz.webapp.control.ControlServlet.handle(ControlServlet.java:231)
[main/:?]}}
{{ at
org.apache.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:81)
[main/:?]}}
{{ at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
[tomcat-servlet-api-9.0.86.jar:4.0.FR]}}
{{ at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
[tomcat-servlet-api-9.0.86.jar:4.0.FR]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.ofbiz.webapp.control.SameSiteFilter.doFilter(SameSiteFilter.java:45)
[main/:?]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:188)
[main/:?]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at org.apache.ofbiz.base.util.CacheFilter.doFilter(CacheFilter.java:63)
[main/:?]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.ofbiz.webapp.control.ControlFilter.doFilter(ControlFilter.java:176)
[main/:?]}}
{{ at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:53)
[tomcat-servlet-api-9.0.86.jar:4.0.FR]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
[log4j-web-2.20.0.jar:2.20.0]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:670)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
[tomcat-catalina-9.0.86.jar:9.0.86]}}
{{ at
org.apache.coyote.http2.StreamProcessor.service(StreamProcessor.java:432)
[tomcat-coyote-9.0.86.jar:9.0.86]}}
{{ at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
[tomcat-coyote-9.0.86.jar:9.0.86]}}
{{ at
org.apache.coyote.http2.StreamProcessor.process(StreamProcessor.java:90)
[tomcat-coyote-9.0.86.jar:9.0.86]}}
{{ at org.apache.coyote.http2.StreamRunnable.run(StreamRunnable.java:35)
[tomcat-coyote-9.0.86.jar:9.0.86]}}
{{ at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
[tomcat-util-9.0.86.jar:9.0.86]}}
{{ at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
[tomcat-util-9.0.86.jar:9.0.86]}}
{{ at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
[tomcat-util-9.0.86.jar:9.0.86]}}
{{ at java.lang.Thread.run(Thread.java:840) [?:?]}}
{{Caused by: java.lang.NullPointerException: Cannot invoke
"java.lang.Package.getName()" because "accessedPackage" is null}}
{{ at
freemarker.core._Java9Impl.isAccessibleAccordingToModuleExports(_Java9Impl.java:44)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:827)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.ext.beans.ClassIntrospector.discoverAccessibleMethods(ClassIntrospector.java:820)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
freemarker.ext.beans.ClassIntrospector.createClassIntrospectionData(ClassIntrospector.java:298)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.ClassIntrospector.get(ClassIntrospector.java:272)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:116)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.BeanModel.<init>(BeanModel.java:107)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.ArrayModel.<init>(ArrayModel.java:65)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.ArrayModel$1.create(ArrayModel.java:48)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.BeansModelCache.create(BeansModelCache.java:71)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.util.ModelCache.getInstance(ModelCache.java:80)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.BeansWrapper.wrap(BeansWrapper.java:1022)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at
org.apache.ofbiz.widget.model.HtmlWidget$ExtendedWrapper.wrap(HtmlWidget.java:95)
~[main/:?]}}
{{ at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1640)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:73)
~[freemarker-2.3.33-SNAPSHOT.jar:2.3.32.97]}}
{{ ... 85 more}}
While with the previous version, i don't get any error.
Do you need any more information
> Test next FreeMarker release
> -----------------------------
>
> Key: OFBIZ-12934
> URL: https://issues.apache.org/jira/browse/OFBIZ-12934
> Project: OFBiz
> Issue Type: Task
> Components: Freemarker
> Affects Versions: Upcoming Branch
> Reporter: Jacques Le Roux
> Priority: Minor
> Attachments: OFBIZ-12934-1.patch
>
>
> h1. {color:#FF8B00}This issue is a "reusable" one, not to be closed...{color}
> It's intended to test next FreeMarker releases [as, for instance, requested
> by the FreeMarker
> team|https://lists.apache.org/thread/t4c9z7wkcp3dbdokmnjd32fcptq8h9tz]
> As it's not an as simple change, here I attach a patch as an exemple based on
> the test requested above: [^OFBIZ-12934-1.patch]
> If you use Eclipse, you also need to update it with the "gradlew eclipse"
> Gradle task
--
This message was sent by Atlassian Jira
(v8.20.10#820010)