You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2022/02/23 03:26:01 UTC

[dubbo] branch 3.0 updated: [3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)

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

liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new c44200b  [3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)
c44200b is described below

commit c44200b3e0c8379d9614d6804d74f92c101fdae6
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Wed Feb 23 11:25:45 2022 +0800

    [3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)
---
 .../org/apache/dubbo/common/threadlocal/InternalThreadLocal.java  | 8 ++++++--
 .../apache/dubbo/common/threadlocal/InternalThreadLocalTest.java  | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java b/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
index 13c7463..d0783c8 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
@@ -31,7 +31,7 @@ import java.util.Set;
  * <p></p>
  * This design is learning from {@see io.netty.util.concurrent.FastThreadLocal} which is in Netty.
  */
-public class InternalThreadLocal<V> {
+public class InternalThreadLocal<V> extends ThreadLocal<V> {
 
     private static final int VARIABLES_TO_REMOVE_INDEX = InternalThreadLocalMap.nextVariableIndex();
 
@@ -115,6 +115,7 @@ public class InternalThreadLocal<V> {
      * Returns the current value for the current thread
      */
     @SuppressWarnings("unchecked")
+    @Override
     public final V get() {
         InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();
         Object v = threadLocalMap.indexedVariable(index);
@@ -141,6 +142,7 @@ public class InternalThreadLocal<V> {
     /**
      * Sets the value for the current thread.
      */
+    @Override
     public final void set(V value) {
         if (value == null || value == InternalThreadLocalMap.UNSET) {
             remove();
@@ -156,6 +158,7 @@ public class InternalThreadLocal<V> {
      * Sets the value to uninitialized; a proceeding call to get() will trigger a call to initialValue().
      */
     @SuppressWarnings("unchecked")
+    @Override
     public final void remove() {
         remove(InternalThreadLocalMap.getIfSet());
     }
@@ -186,7 +189,8 @@ public class InternalThreadLocal<V> {
     /**
      * Returns the initial value for this thread-local variable.
      */
-    protected V initialValue() throws Exception {
+    @Override
+    protected V initialValue() {
         return null;
     }
 
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
index 4f243c4..002354a 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
@@ -54,7 +54,7 @@ public class InternalThreadLocalTest {
         final InternalThreadLocal<Integer> internalThreadLocal = new InternalThreadLocal<Integer>() {
 
             @Override
-            protected Integer initialValue() throws Exception {
+            protected Integer initialValue() {
                 Integer v = index.getAndIncrement();
                 System.out.println("thread : " + Thread.currentThread().getName() + " init value : " + v);
                 return v;