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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-bcel.git


The following commit(s) were added to refs/heads/master by this push:
     new 952c64b5 Add support for permitted subclasses #493
952c64b5 is described below

commit 952c64b594d8bb03622383bc7340f2b2f9a84c2e
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Feb 1 15:56:34 2026 -0500

    Add support for permitted subclasses #493
    
    Sort members
---
 src/changes/changes.xml                              |  1 +
 .../org/apache/bcel/classfile/DescendingVisitor.java | 16 ++++++++--------
 .../java/org/apache/bcel/classfile/EmptyVisitor.java | 10 +++++-----
 src/main/java/org/apache/bcel/classfile/Visitor.java | 20 ++++++++++----------
 .../bcel/verifier/statics/StringRepresentation.java  | 14 +++++++-------
 5 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 30e42566..b6a69423 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -62,6 +62,7 @@ The <action> type attribute can be add,update,fix,remove.
     <release version="6.12.1" date="YYYY-MM-DD" description="This is a feature 
and maintenance release. Java 8 or later is required.">
       <!-- FIX -->
       <action                  type="update" dev="ggregory" 
due-to="nbauma109">Fix constant pool module access test on Java 26 and above 
#492.</action>
+      <action                  type="update" dev="ggregory" due-to="nbauma109, 
Gary Gregory">Add support for permitted subclasses #493.</action>
       <!-- ADD -->
       <!-- UPDATE -->
       <action                  type="update" dev="ggregory" due-to="Gary 
Gregory">Bump org.apache.commons:commons-parent from 95 to 96.</action>
diff --git a/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java 
b/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
index 37f72df7..816bf091 100644
--- a/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
+++ b/src/main/java/org/apache/bcel/classfile/DescendingVisitor.java
@@ -496,14 +496,6 @@ public class DescendingVisitor implements Visitor {
         stack.pop();
     }
 
-    /** @since 6.13.0 */
-    @Override
-    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
-        stack.push(obj);
-        obj.accept(visitor);
-        stack.pop();
-    }
-
     /**
      * @since 6.0
      */
@@ -522,6 +514,14 @@ public class DescendingVisitor implements Visitor {
         stack.pop();
     }
 
+    /** @since 6.13.0 */
+    @Override
+    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
+        stack.push(obj);
+        obj.accept(visitor);
+        stack.pop();
+    }
+
     @Override
     public void visitRecord(final Record record) {
         stack.push(record);
diff --git a/src/main/java/org/apache/bcel/classfile/EmptyVisitor.java 
b/src/main/java/org/apache/bcel/classfile/EmptyVisitor.java
index 7a5165bd..d8f315cf 100644
--- a/src/main/java/org/apache/bcel/classfile/EmptyVisitor.java
+++ b/src/main/java/org/apache/bcel/classfile/EmptyVisitor.java
@@ -284,11 +284,6 @@ public class EmptyVisitor implements Visitor {
     public void visitNestMembers(final NestMembers obj) {
     }
 
-    /** @since 6.13.0 */
-    @Override
-    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
-    }
-
     /**
      * @since 6.0
      */
@@ -303,6 +298,11 @@ public class EmptyVisitor implements Visitor {
     public void visitParameterAnnotationEntry(final ParameterAnnotationEntry 
parameterAnnotationEntry) {
     }
 
+    /** @since 6.13.0 */
+    @Override
+    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
+    }
+
     @Override
     public void visitSignature(final Signature obj) {
     }
diff --git a/src/main/java/org/apache/bcel/classfile/Visitor.java 
b/src/main/java/org/apache/bcel/classfile/Visitor.java
index 5df8e243..7ea0fa65 100644
--- a/src/main/java/org/apache/bcel/classfile/Visitor.java
+++ b/src/main/java/org/apache/bcel/classfile/Visitor.java
@@ -411,16 +411,6 @@ public interface Visitor {
         // empty
     }
 
-    /**
-     * Visits a PermittedSubclasses attribute.
-     *
-     * @param obj the attribute.
-     * @since 6.13.0
-     */
-    default void visitPermittedSubclasses(final PermittedSubclasses obj) {
-        // empty
-    }
-
     /**
      * Visits a ParameterAnnotations attribute.
      *
@@ -437,6 +427,16 @@ public interface Visitor {
      */
     void visitParameterAnnotationEntry(ParameterAnnotationEntry obj);
 
+    /**
+     * Visits a PermittedSubclasses attribute.
+     *
+     * @param obj the attribute.
+     * @since 6.13.0
+     */
+    default void visitPermittedSubclasses(final PermittedSubclasses obj) {
+        // empty
+    }
+
     /**
      * Visits a {@link Record} object.
      *
diff --git 
a/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java 
b/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
index e9329f90..0ba7801d 100644
--- a/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
+++ b/src/main/java/org/apache/bcel/verifier/statics/StringRepresentation.java
@@ -387,12 +387,10 @@ public class StringRepresentation extends 
org.apache.bcel.classfile.EmptyVisitor
     }
 
     /**
-     * Visits PermittedSubclasses attribute.
-     *
-     * @since 6.13.0
+     * @since 6.0
      */
     @Override
-    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
+    public void visitParameterAnnotation(final ParameterAnnotations obj) {
         tostring = toString(obj);
     }
 
@@ -400,15 +398,17 @@ public class StringRepresentation extends 
org.apache.bcel.classfile.EmptyVisitor
      * @since 6.0
      */
     @Override
-    public void visitParameterAnnotation(final ParameterAnnotations obj) {
+    public void visitParameterAnnotationEntry(final ParameterAnnotationEntry 
obj) {
         tostring = toString(obj);
     }
 
     /**
-     * @since 6.0
+     * Visits PermittedSubclasses attribute.
+     *
+     * @since 6.13.0
      */
     @Override
-    public void visitParameterAnnotationEntry(final ParameterAnnotationEntry 
obj) {
+    public void visitPermittedSubclasses(final PermittedSubclasses obj) {
         tostring = toString(obj);
     }
 

Reply via email to