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 bbfd4336f TAP5-2775: exception in production mode and array parameter bbfd4336f is described below commit bbfd4336f300772b07ccde98a98998cb5f9cca90 Author: Thiago H. de Paula Figueiredo <thi...@arsmachina.com.br> AuthorDate: Sat Apr 20 10:02:17 2024 -0300 TAP5-2775: exception in production mode and array parameter --- .../services/pageload/PageClassLoaderContextManagerImpl.java | 8 +++++++- .../tapestry5/integration/app1/components/SubclassWithImport.java | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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 f2a20ead5..afe8a6746 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 @@ -126,7 +126,7 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext { PageClassLoaderContext context; - final String enclosingClassName = PlasticUtils.getEnclosingClassName(className); + final String enclosingClassName = getAdjustedClassName(className); context = root.findByClassName(enclosingClassName); if (context == null) @@ -156,6 +156,12 @@ public class PageClassLoaderContextManagerImpl implements PageClassLoaderContext } + private String getAdjustedClassName(final String className) + { + return PlasticUtils.getEnclosingClassName(className) + .replaceAll("\\[\\]", ""); + } + private PageClassLoaderContext getUnknownContext(final PageClassLoaderContext root, final Function<ClassLoader, PlasticProxyFactory> plasticProxyFactoryProvider) { diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java index 9f3a743c4..9b865bef8 100644 --- a/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java +++ b/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/SubclassWithImport.java @@ -3,10 +3,16 @@ package org.apache.tapestry5.integration.app1.components; import org.apache.tapestry5.MarkupWriter; import org.apache.tapestry5.annotations.Cached; import org.apache.tapestry5.annotations.Import; +import org.apache.tapestry5.annotations.Parameter; +import org.apache.tapestry5.corelib.components.Zone; @Import(stylesheet = "context:css/ie-only.css") public class SubclassWithImport extends SuperclassWithImport { + // Just to test a bug happening when a parameter is an array type + @Parameter + private Zone[][][][][] zones; + @Cached public int getInt() {