This is an automated email from the ASF dual-hosted git repository.

thiagohp pushed a commit to branch better-page-invalidation
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git

commit 1bfe3ceecca4c7802be72fa9c4e41a861e01551e
Author: Thiago H. de Paula Figueiredo <thi...@arsmachina.com.br>
AuthorDate: Sat May 13 17:54:52 2023 -0300

    TAP5-2742: fixing possible NPE when PCLC depends on the root context
---
 .../PageClassloaderContextManagerImpl.java         | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassloaderContextManagerImpl.java
 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassloaderContextManagerImpl.java
index 553e668de..9c7cef88b 100644
--- 
a/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassloaderContextManagerImpl.java
+++ 
b/tapestry-core/src/main/java/org/apache/tapestry5/services/pageload/PageClassloaderContextManagerImpl.java
@@ -260,18 +260,17 @@ public class PageClassloaderContextManagerImpl implements 
PageClassloaderContext
                     Set<PageClassloaderContext> contextDependencies = new 
HashSet<>();
                     for (String dependency : dependencies) 
                     {
-                        // Circular dependency
-//                        if (!circularDependencies.contains(dependency))
-//                        {
-                            PageClassloaderContext dependencyContext = 
root.findByClassName(dependency);
-                            if (dependencyContext == null)
-                            {
-                                dependencyContext = 
processUsingDependencies(dependency, root, unknownContextProvider,
-                                        plasticProxyFactoryProvider, 
classesToInvalidate, alreadyProcessed);
+                        PageClassloaderContext dependencyContext = 
root.findByClassName(dependency);
+                        if (dependencyContext == null)
+                        {
+                            dependencyContext = 
processUsingDependencies(dependency, root, unknownContextProvider,
+                                    plasticProxyFactoryProvider, 
classesToInvalidate, alreadyProcessed);
 
-                            }
+                        }
+                        if (!dependencyContext.isRoot())
+                        {
                             contextDependencies.add(dependencyContext);
-//                        }
+                        }
                     }
                     
                     if (contextDependencies.size() == 0)
@@ -422,7 +421,8 @@ public class PageClassloaderContextManagerImpl implements 
PageClassloaderContext
             final PageClassloaderContext parent = context.getParent();
             // We don't want the merged context to have a further dependency 
on 
             // the root context (it's not mergeable) nor on itself.
-            if (!parent.isRoot() && 
!allContextsIncludingDescendents.contains(parent))
+            if (!parent.isRoot() && 
+                    !allContextsIncludingDescendents.contains(parent))
             {
                 furtherDependencies.add(parent);
             }

Reply via email to