Uploaded image for project: 'OFBiz'
  1. OFBiz
  2. OFBIZ-11198

FindArInvoices request needs performance improvement regarding use of EntityListIterator::hasNext method

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Implemented
    • Affects Version/s: Trunk
    • Fix Version/s: 17.12.01, 16.11.07, 18.12.01
    • Component/s: accounting
    • Labels:
      None

      Description

      FindAPInvoices request does not suffer from this issue nor findInvoice request.

      Here the complete stack trace I got

      2019-09-12 11:03:27,299 |jsse-nio-8443-exec-5 |ControlServlet                |T| [[[ar::FindArInvoices (Domain:https://localhost)] Request Begun, encoding=[UTF-8]- total:0.0,since last(Begin):0.0]]
      2019-09-12 11:03:27,314 |jsse-nio-8443-exec-5 |ConfigXMLReader               |I| controller loaded: 0.0s, 16 requests, 10 views in file:/C:/projectsASF/ofbiz/applications/accounting/webapp/ar/WEB-INF/controller.xml
      2019-09-12 11:03:27,329 |jsse-nio-8443-exec-5 |ConfigXMLReader               |I| controller loaded: 0.001s, 49 requests, 21 views in file:/C:/projectsASF/ofbiz/framework/common/webcommon/WEB-INF/common-controller.xml
      2019-09-12 11:03:27,342 |jsse-nio-8443-exec-5 |ConfigXMLReader               |I| controller loaded: 0.0s, 0 requests, 0 views in file:/C:/projectsASF/ofbiz/framework/common/webcommon/WEB-INF/handlers-controller.xml
      2019-09-12 11:03:27,364 |jsse-nio-8443-exec-5 |ConfigXMLReader               |I| controller loaded: 0.004s, 511 requests, 240 views in file:/C:/projectsASF/ofbiz/applications/accounting/webapp/accounting/WEB-INF/controller.xml
      2019-09-12 11:03:27,377 |jsse-nio-8443-exec-5 |ConfigXMLReader               |I| controller loaded: 0.0s, 4 requests, 0 views in file:/C:/projectsASF/ofbiz/applications/commonext/webapp/WEB-INF/controller.xml
      2019-09-12 11:03:27,381 |jsse-nio-8443-exec-5 |RequestHandler                |I| Rendering View [FindArInvoices].  Hidden sessionId by default.
      2019-09-12 11:03:27,388 |jsse-nio-8443-exec-5 |ScreenFactory                 |I| Got 3 screens in 0.005s from: file:/C:/projectsASF/ofbiz/applications/accounting/widget/ar/InvoiceScreens.xml
      2019-09-12 11:03:27,389 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/prepareFind] finished in [1] milliseconds
      2019-09-12 11:03:27,390 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/executeFind] finished in [1] milliseconds
      2019-09-12 11:03:27,390 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/performFind] finished in [2] milliseconds
      2019-09-12 11:03:27,395 |jsse-nio-8443-exec-5 |ScreenFactory                 |I| Got 8 screens in 0.005s from: file:/C:/projectsASF/ofbiz/applications/accounting/widget/ar/CommonScreens.xml
      2019-09-12 11:03:27,399 |jsse-nio-8443-exec-5 |ScreenFactory                 |I| Got 1 screens in 0.004s from: file:/C:/projectsASF/ofbiz/applications/commonext/widget/CommonScreens.xml
      2019-09-12 11:03:27,432 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getLastSystemInfoNote] finished in [9] milliseconds
      2019-09-12 11:03:27,440 |jsse-nio-8443-exec-5 |ScreenFactory                 |I| Got 26 screens in 0.006s from: file:/C:/projectsASF/ofbiz/framework/common/widget/CommonScreens.xml
      2019-09-12 11:03:27,528 |jsse-nio-8443-exec-5 |ScreenFactory                 |I| Got 25 screens in 0.029s from: file:/C:/projectsASF/ofbiz/themes/common-theme/widget/CommonScreens.xml
      2019-09-12 11:03:27,583 |jsse-nio-8443-exec-5 |EntityListIterator            |W| For performance reasons do not use the EntityListIterator.hasNext() method, just call next() until it returns null; see JavaDoc comments in the EntityListIt
      erator class for details and an example
      java.lang.Exception: null
              at org.apache.ofbiz.entity.util.EntityListIterator.hasNext(EntityListIterator.java:288) [main/:?]
              at freemarker.ext.beans.BeanModel.isEmpty(BeanModel.java:297) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.Expression.isEmpty(Expression.java:226) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.BuiltInsForExistenceHandling$has_contentBI._eval(BuiltInsForExistenceHandling.java:112) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.BuiltInsForExistenceHandling$has_contentBI.evalToBoolean(BuiltInsForExistenceHandling.java:119) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.Environment.visit(Environment.java:331) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.Environment.visit(Environment.java:337) [freemarker-2.3.29.jar:2.3.29]
              at freemarker.core.Environment.process(Environment.java:310) [freemarker-2.3.29.jar:2.3.29]
              at org.apache.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:216) [main/:?]
              at org.apache.ofbiz.widget.model.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:163) [main/:?]
              at org.apache.ofbiz.widget.model.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:200) [main/:?]
              at org.apache.ofbiz.widget.model.HtmlWidget.renderWidgetString(HtmlWidget.java:139) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:1332) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:923) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:132) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:960) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:465) [main/:?]
              at org.apache.ofbiz.widget.renderer.macro.MacroScreenRenderer.renderScreenletSubWidget(MacroScreenRenderer.java:707) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Screenlet.renderWidgetString(ModelScreenWidget.java:614) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:798) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:877) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:923) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:132) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:960) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSection.renderWidgetString(ModelScreenWidget.java:923) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$SectionsRenderer.render(ModelScreenWidget.java:132) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorSectionInclude.renderWidgetString(ModelScreenWidget.java:960) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:465) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:465) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:465) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:798) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:798) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:798) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:877) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.model.ScreenFactory.renderReferencedScreen(ScreenFactory.java:204) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:877) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:285) [main/:?]
              at org.apache.ofbiz.widget.model.ModelScreen.renderScreenString(ModelScreen.java:164) [main/:?]
              at org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:140) [main/:?]
              at org.apache.ofbiz.widget.renderer.ScreenRenderer.render(ScreenRenderer.java:102) [main/:?]
              at org.apache.ofbiz.widget.renderer.macro.MacroScreenViewHandler.render(MacroScreenViewHandler.java:115) [main/:?]
              at org.apache.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:1015) [main/:?]
              at org.apache.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:700) [main/:?]
              at org.apache.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:212) [main/:?]
              at org.apache.ofbiz.webapp.control.ControlServlet.doPost(ControlServlet.java:85) [main/:?]
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:665) [javax.servlet-api-4.0.1.jar:4.0.1]
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) [javax.servlet-api-4.0.1.jar:4.0.1]
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:187) [main/:?]
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.ofbiz.webapp.control.ControlFilter.doFilter(ControlFilter.java:156) [main/:?]
              at javax.servlet.http.HttpFilter.doFilter(HttpFilter.java:127) [javax.servlet-api-4.0.1.jar:4.0.1]
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71) [log4j-web-2.11.2.jar:2.11.2]
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-catalina-9.0.22.jar:9.0.22]
              at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [tomcat-coyote-9.0.22.jar:9.0.22]
              at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote-9.0.22.jar:9.0.22]
              at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) [tomcat-coyote-9.0.22.jar:9.0.22]
              at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587) [tomcat-coyote-9.0.22.jar:9.0.22]
              at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote-9.0.22.jar:9.0.22]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_202]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_202]
              at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util-9.0.22.jar:9.0.22]
              at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
      2019-09-12 11:03:27,598 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [14] milliseconds
      2019-09-12 11:03:27,601 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,602 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,606 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,608 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,612 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [2] milliseconds
      2019-09-12 11:03:27,615 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,618 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [2] milliseconds
      2019-09-12 11:03:27,622 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [2] milliseconds
      2019-09-12 11:03:27,624 |jsse-nio-8443-exec-5 |ServiceDispatcher             |T| Sync service [ar/getInvoicePaymentInfoList] finished in [1] milliseconds
      2019-09-12 11:03:27,629 |jsse-nio-8443-exec-5 |ServerHitBin                  |I| Visit delegatorName=default, ServerHitBin delegatorName=default
      2019-09-12 11:03:27,629 |jsse-nio-8443-exec-5 |ControlServlet                |T| [[[ar::FindArInvoices (Domain:https://localhost)] Request Done- total:0.33,since last([ar::FindArInvoic...):0.33]]
      

        Attachments

          Activity

            People

            • Assignee:
              jleroux Jacques Le Roux
              Reporter:
              jleroux Jacques Le Roux
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: