Adobe-Consulting-Services / acs-aem-commons

http://adobe-consulting-services.github.io/acs-aem-commons/
Apache License 2.0
453 stars 598 forks source link

Workflow Remover Fails with NPE #2036

Closed eberggren343 closed 4 years ago

eberggren343 commented 5 years ago

Required Information

Expected Behavior

When using Workflow Remover, depending on selections chosen (as described here: https://adobe-consulting-services.github.io/acs-aem-commons/features/workflow-remover/index.html), workflows will be removed/deleted. Works with 3.19.0.

Actual Behavior

Running Workflow Remover with 4.1.0+ (including latest), fails with this error:

Workflow removal failed due to: <h1>Error during include of component '/apps/acs-commons/components/utilities/workflow-remover'</h1><h3>Error Message:</h3> <pre>java.lang.NullPointerException</pre><h3>Processing Info:</h3> <table style='font-family: monospace'> <tr><td>Page</td><td>=</td><td>/apps/acs-commons/content/workflow-remover<td></tr><tr><td>Resource Path</td><td>=</td><td>/apps/acs-commons/content/workflow-remover/jcr:content<td></tr><tr><td>Cell</td><td>=</td><td>workflow-remover<td></tr><tr><td>Cell Search Path</td><td>=</td><td>workflow-remover|app-page|page<td></tr><tr><td>Component Path</td><td>=</td><td>/apps/acs-commons/components/utilities/workflow-remover<td></tr></table> <h3>Sling Request Progress:</h3> <pre> 0 TIMER_START{Request Processing} 2 COMMENT timer_end format is {&lt;elapsed microseconds&gt;,&lt;timer name&gt;} &lt;optional message&gt; 7 LOG Method=POST, PathInfo=null 8 TIMER_START{handleSecurity} 983 TIMER_END{973,handleSecurity} authenticator org.apache.sling.auth.core.impl.SlingAuthenticator@5399ba35 returns true 1203 TIMER_START{ResourceResolution} 1306 TIMER_END{101,ResourceResolution} URI=/apps/acs-commons/content/workflow-remover/_jcr_content.remove.json resolves to Resource=JcrNodeResource, type=acs-commons/components/utilities/workflow-remover, superType=null, path=/apps/acs-commons/content/workflow-remover/jcr:content 1314 LOG Resource Path Info: SlingRequestPathInfo: path=&#39;/apps/acs-commons/content/workflow-remover/jcr:content&#39;, selectorString=&#39;remove&#39;, extension=&#39;json&#39;, suffix=&#39;null&#39; 1315 TIMER_START{ServletResolution} 1318 TIMER_START{resolveServlet(/apps/acs-commons/content/workflow-remover/jcr:content)} 2309 TIMER_END{989,resolveServlet(/apps/acs-commons/content/workflow-remover/jcr:content)} Using servlet com.adobe.acs.commons.workflow.bulk.removal.impl.servlets.RemoveServlet 2312 TIMER_END{996,ServletResolution} URI=/apps/acs-commons/content/workflow-remover/_jcr_content.remove.json handled by Servlet=com.adobe.acs.commons.workflow.bulk.removal.impl.servlets.RemoveServlet 2315 LOG Applying Requestfilters 2317 LOG Calling filter: com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl 2320 LOG Calling filter: org.apache.sling.security.impl.ContentDispositionFilter 2322 LOG Calling filter: org.apache.sling.i18n.impl.I18NFilter 2324 LOG Calling filter: com.adobe.granite.httpcache.impl.InnerCacheFilter 2466 LOG Calling filter: org.apache.sling.rewriter.impl.RewriterFilter 2468 LOG Calling filter: com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker 2470 LOG Calling filter: com.adobe.cq.history.impl.HistoryRequestFilter 2474 LOG Calling filter: com.day.cq.wcm.core.impl.WCMRequestFilter 2480 LOG Calling filter: com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet 2529 LOG Calling filter: com.adobe.granite.optout.impl.OptOutFilter 2533 LOG Calling filter: com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet 2535 LOG Calling filter: com.adobe.cq.social.commons.cors.CORSAuthenticationFilter 2537 LOG Calling filter: org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter 2539 LOG Calling filter: com.community.asset.core.filters.LoggingFilter 2543 LOG Calling filter: com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter 2546 LOG Calling filter: com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl 2605 LOG Calling filter: com.adobe.granite.csrf.impl.CSRFFilter 3204 LOG Calling filter: com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter 3209 LOG Calling filter: com.adobe.granite.requests.logging.impl.RequestLoggerImpl 3213 LOG Calling filter: com.adobe.granite.rest.impl.servlet.ApiResourceFilter 3217 LOG Calling filter: com.adobe.cq.dam.cfm.impl.servlets.CompatFilter 3220 LOG Calling filter: com.day.cq.dam.core.impl.servlet.ActivityRecordHandler 3227 LOG Calling filter: com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler 3229 LOG Calling filter: com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet 3337 LOG Calling filter: com.day.cq.wcm.core.impl.warp.TimeWarpFilter 3343 LOG Applying Componentfilters 3345 LOG Calling filter: com.day.cq.personalization.impl.TargetComponentFilter 3347 LOG Calling filter: com.day.cq.wcm.core.impl.PageLockFilter 3541 LOG Calling filter: com.day.cq.wcm.core.impl.WCMComponentFilter 3619 LOG Calling filter: com.day.cq.wcm.core.impl.WCMDebugFilter 3627 TIMER_START{com.adobe.acs.commons.workflow.bulk.removal.impl.servlets.RemoveServlet#0} 12135 TIMER_END{8506,com.adobe.acs.commons.workflow.bulk.removal.impl.servlets.RemoveServlet#0} 14375 TIMER_END{14373,Request Processing} Dumping SlingRequestProgressTracker Entries </pre> <h3>Full Exception:</h3> <pre> java.lang.NullPointerException at java.io.PrintWriter.write(PrintWriter.java:473) at org.apache.sling.engine.impl.SlingHttpServletResponseImpl$1.write(SlingHttpServletResponseImpl.java:345) at com.adobe.acs.commons.workflow.bulk.removal.impl.servlets.RemoveServlet.doPost(RemoveServlet.java:150) at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:374) at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552) at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77) at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilterWithErrorHandling(WCMDebugFilter.java:192) at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:159) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:375) at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.PageLockFilter.doFilter(PageLockFilter.java:91) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:71) at com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:109) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:126) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler.doFilter(AdhocAssetShareAuthHandler.java:437) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.dam.core.impl.servlet.ActivityRecordHandler.doFilter(ActivityRecordHandler.java:154) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:73) at com.adobe.cq.dam.cfm.impl.servlets.CompatFilter.doFilter(CompatFilter.java:81) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.rest.impl.servlet.ApiResourceFilter.doFilter(ApiResourceFilter.java:70) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:121) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter.doFilter(AssetContentDispositionFilter.java:96) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:367) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:248) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.community.asset.core.filters.LoggingFilter.doFilter(LoggingFilter.java:56) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:107) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:221) at com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:138) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:76) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:221) at com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet.doFilter(CoreFormHandlingServlet.java:126) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:122) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker.doFilter(CampaignCopyTracker.java:100) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:83) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:81) at com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:60) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.security.impl.ContentDispositionFilter.doFilter(ContentDispositionFilter.java:152) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:73) at com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:83) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151) at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:234) at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:120) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:86) at com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:96) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:328) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:72) at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135) at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) at org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:146) at org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.invokePreprocessors(WhiteboardManager.java:1000) at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:91) at org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:503) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:411) at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:305) at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:159) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) at java.lang.Thread.run(Thread.java:748) </pre> <hr> <address>Day Communique 5 WCM Core Implementation / 5.10.300 ( (c) Adobe Systems Incorporated ) running on ApacheSling/2.6 (jetty/9.4.12.v20180830, OpenJDK 64-Bit Server VM 1.8.0_212, Linux 3.10.0-957.21.3.el7.x86_64 amd64)</address>

Steps to Reproduce

Attempt to remove all workflows with tool

http://localhost:4502/etc/acs-commons/workflow-remover.html

badvision commented 4 years ago

This will be rewritten by #2067