Jacques Le Roux created OFBIZ-9200:
--------------------------------------
Summary: Form widget: the image element used in the field element
does not work when used with an existing field value
Key: OFBIZ-9200
URL: https://issues.apache.org/jira/browse/OFBIZ-9200
Project: OFBiz
Issue Type: Bug
Components: framework
Affects Versions: Release Branch 16.11, Release Branch 15.12, Trunk,
Release Branch 14.12, Release Branch 13.07
Reporter: Jacques Le Roux
When you use the image element with a field name of an existing field value a
fake chained request is weirdly called. This is true in both simple and
list/grid forms, I did not test multi but I guess it's the same.
For example if you add this line
bq. <field name="exampleName"><image
value="/images/defaultImage.jpg"/></field>
just after the line
bq. <field name="exampleName" title="${uiLabelMap.CommonName}"
sort-field="true"><display/></field>
in the ListExamples form you get as much as errors as there are examples, eg:
{code}
2017-02-04 06:03:27,605 |http-nio-8443-exec-7 |ControlServlet
|E| Error in request handler:
org.apache.ofbiz.webapp.control.RequestHandlerException: Unknown request
[Example 1]; this request does not exist or cannot be called directly.
at
org.apache.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:197)
~[ofbiz.jar:?]
at
org.apache.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:210)
[ofbiz.jar:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
[javax.servlet-api-3.1.0.jar:3.1.0]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[javax.servlet-api-3.1.0.jar:3.1.0]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
[tomcat-embed-websocket-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:209)
[ofbiz.jar:?]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.ofbiz.webapp.control.ControlFilter.doFilter(ControlFilter.java:156)
[ofbiz.jar:?]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:509)
[tomcat-catalina-8.0.39.jar:8.0.39]
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
[tomcat-coyote-8.0.39.jar:8.0.39]
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
[tomcat-coyote-8.0.39.jar:8.0.39]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
[tomcat-coyote-8.0.39.jar:8.0.39]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
[tomcat-coyote-8.0.39.jar:8.0.39]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[?:1.8.0_112]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[?:1.8.0_112]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[tomcat-util-8.0.39.jar:8.0.39]
{code}
As you can see from the stack trace it's a tricky bug
A workaround is to use a non existing value as field name when you can, for
instance combined with an use-when. But of course this is not satisfactory and
you also can't use entry-name to bypass the issue.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)