Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-2452

freemarker templating for task forms: outcome (transitions) vs. outcome (result) clash

XMLWordPrintable

      In the freemarker-based templating mechanism for task forms, 'outcome' is both
      "a default context information for templates".
      and
      "reserved field name for signaling execution".

      Additionaly, "form field names become process variables and vice-versa".

      (See http://www.jboss.org/index.html?module=bb&op=viewtopic&t=155048.)

      ,-- example code in the documentation –

      <#list outcome.values as transition>
      <input type="submit" name="outcome" value="${transition}">
      </#list>
      `--------------------

      This code works exactly once.
      If used a second time, outcome will have become a process variable and therefore the result is an exception like:

      2009-07-23 15:18:44,485 ERROR [freemarker.runtime] (http-127.0.0.1-8080-4)
      Expected hash. outcome evaluated instead to freemarker.template.SimpleScalar on line 5, column 32 in review.ftl.
      The problematic instruction:
      ----------
      ==> list outcome.values as transition [on line 5, column 25 in review.ftl]
      ----------
      Java backtrace for programmers:
      ----------
      freemarker.template.TemplateException: Expected hash. outcome evaluated instead to freemarker.template.SimpleScalar on line 5, column 32 in review.ftl.
      at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135)
      at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.Environment.process(Environment.java:189)
      at freemarker.template.Template.process(Template.java:237)
      at org.jbpm.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:116)
      at org.jbpm.integration.console.forms.TaskFormDispatcher.provideForm(TaskFormDispatcher.java:161)
      at org.jbpm.integration.console.forms.FormDispatcherComposite.provideForm(FormDispatcherComposite.java:65)
      at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jboss.bpm.console.server.util.InvocationProxy.invoke(InvocationProxy.java:64)
      at $Proxy291.provideForm(Unknown Source)
      at org.jboss.bpm.console.server.FormProcessingFacade.provideForm(FormProcessingFacade.java:181)
      at org.jboss.bpm.console.server.FormProcessingFacade.renderTaskUI(FormProcessingFacade.java:120)
      at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
      at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
      at org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      2009-07-23 15:18:44,485 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/gwt-console-server].[Resteasy]] (http-127.0.0.1-8080-4) Servlet.service() for servlet Resteasy threw exception
      org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Unexpected invocation exception: null
      at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)
      at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230)
      at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93)
      at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: java.lang.RuntimeException: Unexpected invocation exception: null
      at org.jboss.bpm.console.server.util.InvocationProxy.invoke(InvocationProxy.java:80)
      at $Proxy291.provideForm(Unknown Source)
      at org.jboss.bpm.console.server.FormProcessingFacade.provideForm(FormProcessingFacade.java:181)
      at org.jboss.bpm.console.server.FormProcessingFacade.renderTaskUI(FormProcessingFacade.java:120)
      at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117)
      at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232)
      at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166)
      at org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142)
      at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
      ... 28 more
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.jboss.bpm.console.server.util.InvocationProxy.invoke(InvocationProxy.java:64)
      ... 40 more
      Caused by: java.lang.RuntimeException: Failed to process task template
      at org.jbpm.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:149)
      at org.jbpm.integration.console.forms.TaskFormDispatcher.provideForm(TaskFormDispatcher.java:161)
      at org.jbpm.integration.console.forms.FormDispatcherComposite.provideForm(FormDispatcherComposite.java:65)
      ... 44 more
      Caused by: freemarker.template.TemplateException: Expected hash. outcome evaluated instead to freemarker.template.SimpleScalar on line 5, column 32 in review.ftl.
      at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:135)
      at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
      at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
      at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.MixedContent.accept(MixedContent.java:92)
      at freemarker.core.Environment.visit(Environment.java:209)
      at freemarker.core.Environment.process(Environment.java:189)
      at freemarker.template.Template.process(Template.java:237)
      at org.jbpm.integration.console.forms.AbstractFormDispatcher.processTemplate(AbstractFormDispatcher.java:116)
      ... 46 more

            rhn-support-hbraun Heiko Braun
            sny_jira Marko Friedemann (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: