This is an automated email from the ASF dual-hosted git repository.
thiagohp pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
The following commit(s) were added to refs/heads/master by this push:
new 9af6eb9eb TAP5-2773: avoiding an infinite recursion loop
9af6eb9eb is described below
commit 9af6eb9eb5c889768162112ddae7d86fa7b51963
Author: Thiago H. de Paula Figueiredo <[email protected]>
AuthorDate: Mon Apr 8 23:24:13 2024 -0300
TAP5-2773: avoiding an infinite recursion loop
---
.../PageClassLoaderContextManagerImpl.java | 23 ++++++++++++----------
1 file changed, 13 insertions(+), 10 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 1fbf97867..f2a20ead5 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
@@ -248,8 +248,7 @@ public class PageClassLoaderContextManagerImpl implements
PageClassLoaderContext
for (String dependency : dependencies)
{
// Avoid infinite recursion loops
- if (!alreadyProcessed.contains(dependency)/* &&
- !circularDependencies.contains(dependency)*/)
+ if (!alreadyProcessed.contains(dependency))
{
processUsingDependencies(dependency, root,
unknownContextProvider,
plasticProxyFactoryProvider,
classesToInvalidate, alreadyProcessed, false);
@@ -261,15 +260,19 @@ public class PageClassLoaderContextManagerImpl implements
PageClassLoaderContext
for (String dependency : dependencies)
{
PageClassLoaderContext dependencyContext =
root.findByClassName(dependency);
- if (dependencyContext == null)
- {
- dependencyContext =
processUsingDependencies(dependency, root, unknownContextProvider,
- plasticProxyFactoryProvider,
classesToInvalidate, alreadyProcessed);
-
- }
- if (!dependencyContext.isRoot())
+ // Avoid infinite recursion loops
+ if (!alreadyProcessed.contains(dependency))
{
- contextDependencies.add(dependencyContext);
+ if (dependencyContext == null)
+ {
+ dependencyContext =
processUsingDependencies(dependency, root, unknownContextProvider,
+ plasticProxyFactoryProvider,
classesToInvalidate, alreadyProcessed);
+
+ }
+ if (!dependencyContext.isRoot())
+ {
+ contextDependencies.add(dependencyContext);
+ }
}
}