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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4303a36de Reflection builders' cycle registry unregisters per-visit: 
cycle-SAFE but DAG-exponential, a 40-level reference diamond drives ~2^40 
traversals and unbounded output (f032).
4303a36de is described below

commit 4303a36de3a8b29d19b88e7ca5901f78a536de72
Author: Gary Gregory <[email protected]>
AuthorDate: Sun Sep 6 16:55:27 2026 -0400

    Reflection builders' cycle registry unregisters per-visit: cycle-SAFE
    but DAG-exponential, a 40-level reference diamond drives ~2^40
    traversals and unbounded output (f032).
    
    ToStringStyle.appendEnd(StringBuffer, Object) now always calls
    unregister() in a finally clause.
---
 .../java/org/apache/commons/lang3/builder/ToStringStyle.java  | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java 
b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
index cef7745d4..38769b9f8 100644
--- a/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
+++ b/src/main/java/org/apache/commons/lang3/builder/ToStringStyle.java
@@ -1469,11 +1469,14 @@ protected void appendDetail(final StringBuffer buffer, 
final String fieldName, f
      * @param object The {@link Object} to build a {@code toString} for.
      */
     public void appendEnd(final StringBuffer buffer, final Object object) {
-        if (!isFieldSeparatorAtEnd()) {
-            removeLastFieldSeparator(buffer);
+        try {
+            if (!isFieldSeparatorAtEnd()) {
+                removeLastFieldSeparator(buffer);
+            }
+            appendContentEnd(buffer);
+        } finally {
+            unregister(object);
         }
-        appendContentEnd(buffer);
-        unregister(object);
     }
 
     /**

Reply via email to