[
https://issues.apache.org/jira/browse/OFBIZ-10342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16627146#comment-16627146
]
Jacques Le Roux commented on OFBIZ-10342:
-----------------------------------------
Hi Rishi, All,
Right, actually {{rs.setEndStamp()}} is needed where an exception is thrown,
not only in in catch blocks. For all the rest, the last {{rs.setEndStamp()}} is
sufficient.
I wondered if we should also add these somehow related lines, which are just
after the last current {{rs.setEndStamp()}}, while adding {{rs.setEndStamp()}}
elsewhere
{code}
long timeToRun = System.currentTimeMillis() - serviceStartTime;
long showServiceDurationThreshold =
UtilProperties.getPropertyAsLong("service", "showServiceDurationThreshold", 0);
long showSlowServiceThreshold =
UtilProperties.getPropertyAsLong("service", "showSlowServiceThreshold", 1000);
{code}
But there is already another existing {{rs.setEndStamp()}} in this catch block
{code}
} catch (Throwable t) {
if (Debug.timingOn()) {
UtilTimer.closeTimer(localName + " / " + modelService.name,
"Sync service failed...", module);
}
String errMsg = "Service [" + modelService.name + "] threw an
unexpected exception/error";
engine.sendCallbacks(modelService, context, t,
GenericEngine.SYNC_MODE);
try {
TransactionUtil.rollback(beganTrans, errMsg, t);
} catch (GenericTransactionException te) {
Debug.logError(te, "Cannot rollback transaction", module);
}
rs.setEndStamp();
if (t instanceof ServiceAuthException) {
throw (ServiceAuthException) t;
} else if (t instanceof ServiceValidationException) {
throw (ServiceValidationException) t;
} else if (t instanceof GenericServiceException) {
throw (GenericServiceException) t;
} else {
throw new GenericServiceException("Service [" +
modelService.name + "] Failed" + modelService.debugInfo() , t);
}
} finally {
{code}
with no set for timeToRun, showServiceDurationThreshold and
showSlowServiceThreshold.
I did not digg further but I guess it's OK to do the same everywhere else it's
needed (ie neglecting timeToRun, showServiceDurationThreshold and
showSlowServiceThreshold).
Also I did not try to improve the code in this issue (could be done, 273
lines... but not easy...).
Please check the attached patch in case I missed something, thanks.
> Service Log screen is broken
> ----------------------------
>
> Key: OFBIZ-10342
> URL: https://issues.apache.org/jira/browse/OFBIZ-10342
> Project: OFBiz
> Issue Type: Bug
> Components: framework/webtools
> Reporter: Swapnil M Mane
> Assignee: Jacques Le Roux
> Priority: Major
> Attachments: OFBIZ-10342.patch, serviceLog.png
>
>
> Service Log screen is broken.
> Steps to regenerate
> # Navigate to Logging menu under webtools
> [https://demo-trunk.ofbiz.apache.org/webtools/control/LogView]
> # Select Service Log menu
> *Console Logs*
> {code:java}
> |T| [[[ServiceLog(Domain:https://localhost)] Request Begun,
> encoding=[UTF-8]- total:0.0,since last(Begin):0.0]]
> 2018-04-16 16:23:03,482 |jsse-nio-8443-exec-8 |RequestHandler
> |I| Rendering View [ServiceLog]. Hidden sessionId by default.
> 2018-04-16 16:23:03,483 |jsse-nio-8443-exec-8 |ServiceDispatcher
> |T| Sync service [webtools/getUserPreferenceGroup] finished in [1]
> milliseconds
> 2018-04-16 16:23:03,484 |jsse-nio-8443-exec-8 |ScriptUtil
> |W| Error running script at location
> [component://webtools/groovyScripts/service/Services.groovy]:
> java.lang.NullPointerException
> java.lang.NullPointerException: null
> at
> org.apache.ofbiz.service.RunningService.getEndStamp(RunningService.java:63)
> ~[ofbiz.jar:?]
> at org.apache.ofbiz.service.RunningService$getEndStamp$2.call(Unknown
> Source) ~[?:?]
> at Services$_run_closure1.doCall(Services.groovy:43) ~[?:?]
> at sun.reflect.GeneratedMethodAccessor98.invoke(Unknown Source) ~[?:?]
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_66]
> at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_66]
> at
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at groovy.lang.Closure.call(Closure.java:414)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5276)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2117)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at org.codehaus.groovy.runtime.dgm$164.invoke(Unknown Source)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
> ~[groovy-all-2.4.13.jar:2.4.13]
> at Services.run(Services.groovy:38) ~[?:?]
> at
> org.apache.ofbiz.base.util.GroovyUtil.runScriptAtLocation(GroovyUtil.java:209)
> ~[ofbiz.jar:?]
> at
> org.apache.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:342)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:324)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.model.AbstractModelAction$Script.runAction(AbstractModelAction.java:634)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.model.AbstractModelAction.runSubActions(AbstractModelAction.java:143)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:277)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:140)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:102)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.widget.renderer.macro.MacroScreenViewHandler.render(MacroScreenViewHandler.java:115)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:1014)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:660)
> [ofbiz.jar:?]
> at
> org.apache.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:213)
> [ofbiz.jar:?]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:686)
> [javax.servlet-api-4.0.0.jar:4.0.0]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
> [javax.servlet-api-4.0.0.jar:4.0.0]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> [tomcat-embed-websocket-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:217)
> [ofbiz.jar:?]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.ofbiz.webapp.control.ControlFilter.doFilter(ControlFilter.java:157)
> [ofbiz.jar:?]
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
> [tomcat-catalina-8.5.24.jar:8.5.24]
> at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
> [tomcat-coyote-8.5.24.jar:8.5.24]
> at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
> [tomcat-coyote-8.5.24.jar:8.5.24]
> at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
> [tomcat-coyote-8.5.24.jar:8.5.24]
> at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
> [tomcat-coyote-8.5.24.jar:8.5.24]
> at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
> [tomcat-coyote-8.5.24.jar:8.5.24]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [?:1.8.0_66]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [?:1.8.0_66]
> at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> [tomcat-util-8.5.24.jar:8.5.24]
> at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66]
> 2018-04-16 16:23:03,489 |jsse-nio-8443-exec-8 |ControlServlet
> |E| Error in request handler:
> java.lang.IllegalArgumentException: Error running script at location
> [component://webtools/groovyScripts/service/Services.groovy]:
> java.lang.NullPointerException
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)