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() 
     { 

Reply via email to