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); }