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

rmaucher pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 9956636f60a40ec478442fb956335d74144c1639
Author: opencode <[email protected]>
AuthorDate: Tue Oct 20 12:58:25 2026 +0200

    Create the package directory when generating the reflection less code
    
    The code generator wrote XReflectionIntrospectionUtils.java into the
    package sub-directory derived from the package name without ever
    creating it, so standalone use against a fresh output directory died
    with an unhandled FileNotFoundException. Only the Ant
    embed-programmatic-jar target was unaffected because it pre-copies the
    whole java/ tree. Create the sub-directory with mkdirs() before
    generating and fail with a clear IOException when it cannot be
    created, and update the Javadoc accordingly.
---
 .../util/xreflection/ObjectReflectionPropertyInspector.java       | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/java/org/apache/tomcat/util/xreflection/ObjectReflectionPropertyInspector.java
 
b/java/org/apache/tomcat/util/xreflection/ObjectReflectionPropertyInspector.java
index 1ab83537df..43a0416d5d 100644
--- 
a/java/org/apache/tomcat/util/xreflection/ObjectReflectionPropertyInspector.java
+++ 
b/java/org/apache/tomcat/util/xreflection/ObjectReflectionPropertyInspector.java
@@ -18,6 +18,7 @@ package org.apache.tomcat.util.xreflection;
 
 
 import java.io.File;
+import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
@@ -119,8 +120,8 @@ public final class ObjectReflectionPropertyInspector {
      *
      * @param baseClasses The classes to process
      * @param packageName The package name for generated code
-     * @param location The output directory (the package sub-directory derived 
from <code>packageName</code> must
-     *                    already exist)
+     * @param location The output directory (the package sub-directory derived 
from <code>packageName</code> is
+     *                    created if it does not exist)
      * @param className The class name for generated code
      * @throws Exception if an error occurs
      */
@@ -128,6 +129,9 @@ public final class ObjectReflectionPropertyInspector {
             String className) throws Exception {
         String packageDirectory = packageName.replace('.', '/');
         File sourceFileLocation = new File(location, packageDirectory);
+        if (!sourceFileLocation.exists() && !sourceFileLocation.mkdirs()) {
+            throw new IOException("Unable to create directory [" + 
sourceFileLocation.getAbsolutePath() + "]");
+        }
         ReflectionLessCodeGenerator.generateCode(sourceFileLocation, 
className, packageName, baseClasses);
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to