Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-9378

Display a more friendly user message when a Velocity error happens when starting the office server from the admin page

    XMLWordPrintable

Details

    • Unknown
    • N/A
    • N/A

    Description

      I got the message: "Failed to execute the [velocity] macro" which cannot be clicked nor expanded...

      With Chrome Dev Tools, I could get the root cause:

      org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [#set($msgParameter=$services.localization.render('xe.officeimporter.openoffice.parameter'))
      #set($msgValue=$services.localization.render('xe.officeimporter.openoffice.value'))
      #set($msgYes=$services.localization.render('xe.officeimporter.openoffice.yes'))
      #set($msgNo=$services.localization.render('xe.officeimporter.openoffice.no'))
      #set($msgServerType=$services.localization.render('xe.officeimporter.openoffice.servertype'))
      #set($msgServerPort=$services.localization.render('xe.officeimporter.openoffice.serverport'))
      #set($msgAutoConnect=$services.localization.render('xe.officeimporter.openoffice.autoconnect'))
      #set($msgAutoStart=$services.localization.render('xe.officeimporter.openoffice.autostart'))
      #set($msgServerTypeInternal=$services.localization.render('xe.officeimporter.openoffice.servertype.internal'))
      #set($msgServerTypeExternalLocal=$services.localization.render('xe.officeimporter.openoffice.servertype.external'))
      #set($msgServerTypeExternalRemote=$services.localization.render('xe.officeimporter.openoffice.servertype.remote'))
      #set($msgServerPath=$services.localization.render('xe.officeimporter.openoffice.serverpath'))
      #set($msgServerProfile=$services.localization.render('xe.officeimporter.openoffice.serverprofile'))
      #set($msgServerProfileDefault=$services.localization.render('xe.officeimporter.openoffice.serverprofile.default'))
      #set($msgServerState=$services.localization.render('xe.officeimporter.openoffice.serverstate'))
      #set($msgActions=$services.localization.render('xe.officeimporter.openoffice.actions'))
      #set($msgStart=$services.localization.render('xe.officeimporter.openoffice.actions.start'))
      #set($msgConnect=$services.localization.render('xe.officeimporter.openoffice.actions.connect'))
      #set($msgStop=$services.localization.render('xe.officeimporter.openoffice.actions.stop'))
      #set($msgDisconnect=$services.localization.render('xe.officeimporter.openoffice.actions.disconnect'))
      #set($msgRestart=$services.localization.render('xe.officeimporter.openoffice.actions.restart'))
      #set($msgUpdate=$services.localization.render('xe.officeimporter.openoffice.update'))
      #set($msgLimitedControl=$services.localization.render('xe.officeimporter.openoffice.limitedcontrol'))
      #if($hasAdmin)
        #set($currentAction = "$!{request.action}")
        #if($currentAction == "stop" && ${services.csrf.isTokenValid("$!{request.getParameter('form_token')}")})
          #if(!$services.officemanager.stopServer())
            {{error}}$services.officemanager.lastErrorMessage{{/error}}
      
          #end
        #elseif($currentAction == "start" && ${services.csrf.isTokenValid("$!{request.getParameter('form_token')}")})
          #if(!$services.officemanager.startServer())
            {{error}}$services.officemanager.lastErrorMessage{{/error}}
      
          #end
        #elseif($currentAction == "restart" && ${services.csrf.isTokenValid("$!{request.getParameter('form_token')}")})
          #if(!$services.officemanager.stopServer())
            {{error}}$services.officemanager.lastErrorMessage{{/error}}
      
          #elseif(!$services.officemanager.startServer())
            {{error}}$services.officemanager.lastErrorMessage{{/error}}
      
          #end
        #end
      #end
      #set($actionStart=$msgConnect)
      #set($actionStop=$msgDisconnect)
      #set($autoStart=$msgAutoConnect)
      #if($services.officemanager.config.serverType == 0)
        #set($serverType=$msgServerTypeInternal)
        #set($actionStart=$msgStart)
        #set($actionStop=$msgStop)
        #set($actionRestart=$msgRestart)
        #set($autoStart=$msgAutoStart)
      #elseif($services.officemanager.config.serverType == 1)
        #set($serverType=$msgServerTypeExternalLocal)
      #elseif($services.officemanager.config.serverType == 2)
        #set($serverType=$msgServerTypeExternalRemote)
      #end
      {{html wiki="true" clean="false"}}
      <form action="" enctype="multipart/form-data" method="post" class="xform">
      <fieldset>
      <legend>$services.localization.render('admin.ooserver.options')</legend>
      
      {{info}}$services.localization.render('admin.ooserver.options.source', ['##xwiki.properties##']){{/info}}
      
      <dl>
      <dt><label>$msgServerType</label></dt>
      <dd>$serverType</dd>
      <dt><label>$msgServerPort</label></dt>
      <dd>$services.officemanager.config.serverPort</dd>
      <dt><label>$autoStart</label></dt>
      <dd>#if($services.officemanager.config.autoStart)$msgYes#else$msgNo#end</dd>
      #if($services.officemanager.config.serverType == 0)
        <dt><label>$msgServerPath</label></dt>
        <dd>$services.officemanager.config.homePath</dd>
        <dt><label>$msgServerProfile</label></dt>
        <dd>#if("$!services.officemanager.config.profilePath" == '' && $services.officemanager.config.profilePath != '')$msgServerProfileDefault#{else}$services.officemanager.config.profilePath#end</dd>
      #end
      <dt><label>$msgServerState</label></dt>
      <dd>$services.officemanager.serverState</dd>
      </dl>
      </fieldset>
      #if($hasAdmin && $xcontext.isMainWiki())
        <fieldset>
        <legend>$msgActions</legend>
        <dl>
        <dd><label for="action1"><input id="action1" name="action" type="radio" value="start" checked="checked"/> $actionStart</label></dd>
        <dd><label for="action2"><input id="action2" name="action" type="radio" value="stop"/> $actionStop</label></dd>
        #if($actionRestart)<dd><label for="action3"><input id="action3" name="action" type="radio" value="restart"/> $actionRestart</label></dd>#end
        </dl>
        </fieldset>
        <div class="buttons">
        <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
        <span class="buttonwrapper"><input type="submit" value="$msgUpdate" class="button"/></span>
        </div>
      #end
      </form>
      {{/html}}
      #if($hasAdmin && !$xcontext.isMainWiki())
      
        {{info}}$msgLimitedControl{{/info}}
      #end]
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:131)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:50)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:302)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:191)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:132)
      	at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:87)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:252)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:125)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:55)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:924)
      	at com.xpn.xwiki.XWiki.getRenderedContent(XWiki.java:3928)
      	at com.xpn.xwiki.XWiki.include(XWiki.java:3843)
      	at com.xpn.xwiki.api.XWiki.includeForm(XWiki.java:1679)
      	at com.xpn.xwiki.api.XWiki.includeForm(XWiki.java:1639)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216)
      	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311)
      	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230)
      	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:92)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:124)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:50)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:302)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:198)
      	at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:59)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:191)
      	at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:132)
      	at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:87)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:252)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:125)
      	at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:55)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:80)
      	at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:38)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:113)
      	at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:50)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:67)
      	at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:41)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:924)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:903)
      	at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:934)
      	at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:603)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at com.xpn.xwiki.render.XWikiVelocityRenderer.evaluate(XWikiVelocityRenderer.java:105)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluate(DefaultPrivilegedTemplateRenderer.java:125)
      	at com.xpn.xwiki.internal.template.DefaultPrivilegedTemplateRenderer.evaluateTemplate(DefaultPrivilegedTemplateRenderer.java:75)
      	at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:1829)
      	at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:166)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:295)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:128)
      	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
      	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
      	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
      	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:669)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1448)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:120)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:144)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at com.xpn.xwiki.plugin.webdav.XWikiDavFilter.doFilter(XWikiDavFilter.java:66)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
      	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      	at org.eclipse.jetty.server.Server.handle(Server.java:368)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:488)
      	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:943)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1004)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
      	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
      	at java.lang.Thread.run(Thread.java:724)
      Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [xwiki:XWiki.XWikiPreferences]
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:247)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:187)
      	at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:124)
      	... 137 more
      Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'startServer' in  class org.xwiki.officeimporter.internal.server.script.OfficeServerScriptService threw exception java.lang.IllegalStateException: officeHome not set and could not be auto-detected at xwiki:XWiki.XWikiPreferences[line 32, column 30]
      	at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187)
      	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
      	at org.apache.velocity.runtime.parser.node.ASTReference.evaluate(ASTReference.java:530)
      	at org.apache.velocity.runtime.parser.node.ASTNotNode.evaluate(ASTNotNode.java:63)
      	at org.apache.velocity.runtime.parser.node.ASTExpression.evaluate(ASTExpression.java:62)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:85)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:92)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106)
      	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
      	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87)
      	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
      	at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:228)
      	... 139 more
      Caused by: java.lang.IllegalStateException: officeHome not set and could not be auto-detected
      	at org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration.buildOfficeManager(DefaultOfficeManagerConfiguration.java:163)
      	at org.xwiki.officeimporter.internal.server.DefaultOfficeServer.initialize(DefaultOfficeServer.java:126)
      	at org.xwiki.officeimporter.internal.server.DefaultOfficeServer.start(DefaultOfficeServer.java:172)
      	at org.xwiki.officeimporter.internal.server.script.OfficeServerScriptService.startServer(OfficeServerScriptService.java:111)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
      	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
      	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
      	... 151 more
      

      We need to display a more friendly message to the user.

      Attachments

        Activity

          People

            vmassol Vincent Massol
            vmassol Vincent Massol
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: