You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "kwin (via GitHub)" <gi...@apache.org> on 2023/05/26 16:31:21 UTC

[GitHub] [sling-org-apache-sling-engine] kwin opened a new pull request, #35: Explicitly call request listeners on synthetic resources

kwin opened a new pull request, #35:
URL: https://github.com/apache/sling-org-apache-sling-engine/pull/35

   (no comment)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@sling.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [sling-org-apache-sling-engine] kwin commented on a diff in pull request #35: Explicitly call request listeners on synthetic resources

Posted by "kwin (via GitHub)" <gi...@apache.org>.
kwin commented on code in PR #35:
URL: https://github.com/apache/sling-org-apache-sling-engine/pull/35#discussion_r1207046502


##########
src/main/java/org/apache/sling/engine/impl/SlingRequestProcessorImpl.java:
##########
@@ -308,9 +330,37 @@ public void processRequest(final HttpServletRequest servletRequest,
             } else {
                 servletRequest.removeAttribute(ParameterSupport.MARKER_IS_SERVICE_PROCESSING);
             }
+            requestListenersForSyntheticRequest.forEach(l -> l.requestDestroyed(event));
+            requestListenerServiceReferencesForSyntheticRequest.forEach(bundleContext::ungetService);
+        }
+    }
+
+    private Collection<ServiceReference<ServletRequestListener>> getRequestListenersForSyntheticRequest(HttpServletRequest servletRequest) {
+        if (!isSyntheticRequest(servletRequest)) {
+            return Collections.emptyList();
+        } else {
+            return Stream.of(getSlingServletContextDTO().listenerDTOs)
+                .filter(l -> Arrays.stream(l.types).anyMatch(ServletRequestListener.class.getName()::equals))
+                .map(l -> {
+                    try {
+                        return bundleContext.getServiceReferences(ServletRequestListener.class, "(service.id=" + l.serviceId + ")").iterator().next();
+                    } catch (InvalidSyntaxException e) {
+                        // should not happen
+                        throw new IllegalStateException(e);
+                    }
+                })
+                .collect(Collectors.toSet());
         }
     }
 
+    private boolean isSyntheticRequest(HttpServletRequest servletRequest) {
+        return servletRequest.getServletContext().getClass().getName().equals(ServletContextImpl.class.getName());

Review Comment:
   This needs some tweaking probably



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@sling.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [sling-org-apache-sling-engine] sonarcloud[bot] commented on pull request #35: Explicitly call request listeners on synthetic resources

Posted by "sonarcloud[bot] (via GitHub)" <gi...@apache.org>.
sonarcloud[bot] commented on PR #35:
URL: https://github.com/apache/sling-org-apache-sling-engine/pull/35#issuecomment-1584507920

   SonarCloud Quality Gate failed.&nbsp; &nbsp; [![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-engine&pullRequest=35)
   
   [![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=BUG) [![C](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/C-16px.png 'C')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=BUG) [1 Bug](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=BUG)  
   [![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=VULNERABILITY)  
   [![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=SECURITY_HOTSPOT)  
   [![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=apache_sling-org-apache-sling-engine&pullRequest=35&resolved=false&types=CODE_SMELL)
   
   [![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=apache_sling-org-apache-sling-engine&pullRequest=35&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=apache_sling-org-apache-sling-engine&pullRequest=35&metric=new_coverage&view=list)  
   [![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=apache_sling-org-apache-sling-engine&pullRequest=35&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=apache_sling-org-apache-sling-engine&pullRequest=35&metric=new_duplicated_lines_density&view=list)
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscribe@sling.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org