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)

Reply via email to