You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/19 17:11:03 UTC

[isis] 01/04: ISIS-2223: simplify FieldType, not yet mitigating thread-local issue

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 5ea7164ef5d147387c9f022b6b197ad707a0eb4b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 19 17:40:12 2020 +0100

    ISIS-2223: simplify FieldType, not yet mitigating thread-local issue
---
 .../core/commons/internal/encoding/FieldType.java  | 22 +++++-----------------
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/encoding/FieldType.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/encoding/FieldType.java
index 9b4ef04..4690fde 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/encoding/FieldType.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/encoding/FieldType.java
@@ -1294,7 +1294,7 @@ public abstract class FieldType<T> {
     // debugging
     // ///////////////////////////////////////////////////////
 
-    private static ThreadLocal<int[]> debugIndent = new ThreadLocal<int[]>();
+    private static ThreadLocal<int[]> debugIndent = ThreadLocal.<int[]>withInitial(()->new int[1]);
 
     private static void log(final FieldType<?> fieldType, final StringBuilder buf) {
         buf.insert(0, ": ");
@@ -1308,10 +1308,7 @@ public abstract class FieldType<T> {
     }
 
     private static void unlog(final FieldType<?> fieldType) {
-        unlog(fieldType, new StringBuilder());
-    }
-
-    private static void unlog(final FieldType<?> fieldType, final StringBuilder buf) {
+        final StringBuilder buf = new StringBuilder();
         if (fieldType.isIndentingAndOutdenting()) {
             buf.insert(0, "< ");
         }
@@ -1327,28 +1324,19 @@ public abstract class FieldType<T> {
     }
 
     private static int currentDebugLevel() {
-        return debugIndent()[0];
+        return debugIndent.get()[0];
     }
 
     private static void incrementDebugLevel() {
-        final int[] indentLevel = debugIndent();
+        final int[] indentLevel = debugIndent.get();
         indentLevel[0] += 2;
     }
 
     private static void decrementDebugLevel() {
-        final int[] indentLevel = debugIndent();
+        final int[] indentLevel = debugIndent.get();
         indentLevel[0] -= 2;
     }
 
-    private static int[] debugIndent() {
-        int[] indentLevel = debugIndent.get();
-        if (indentLevel == null) {
-            indentLevel = new int[1];
-            debugIndent.set(indentLevel);
-        }
-        return indentLevel;
-    }
-
     // ///////////////////////////////////////////////////////
     // toString
     // ///////////////////////////////////////////////////////