diff --git a/appveyor.yml b/appveyor.yml
index 7bb074c5812f20d6cdc2716f77e6972fcf4faecc..d63d053ff5487992c91605531f3f4544abea38a3 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -27,7 +27,7 @@ install:
test_script:
- ./mvnw.cmd clean install --batch-mode
- ./mvnw.cmd dependency:copy-dependencies -DincludeScope=test
- - rm target/dependency/javassist*
+ - rm target/dependency/javassist* target/dependency/jsr305-*
- echo "Run Agent test"
- ps: |
$ttl_jar=Get-ChildItem target\transmittable-thread-local-*.jar -Exclude *-sources.jar | Select-Object -ExpandProperty FullName
diff --git a/pom.xml b/pom.xml
index adcba97fe8dc276c119990ff94db14068cfb667a..0bb53abf46ea3cae26ac76a370a8ffa5fe3bd387 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,6 +95,12 @@
3.23.1-GA
true
+
+ com.google.code.findbugs
+ jsr305
+ 3.0.2
+ true
+
junit
diff --git a/pom4ide.xml b/pom4ide.xml
index fd84125ab7715505c9acbbd232aebd1c22f857bd..b48bb166e8e48d94d52d2d65beb9884bfc3c6846 100644
--- a/pom4ide.xml
+++ b/pom4ide.xml
@@ -95,6 +95,12 @@
3.23.1-GA
true
+
+ com.google.code.findbugs
+ jsr305
+ 3.0.2
+ true
+
junit
diff --git a/scripts/common.sh b/scripts/common.sh
index 9bd42507a7a32d4cdc81f0211ef6b99bc319ba43..dc15992add2f10f80e0661db8d9a6b8e7d078d31 100644
--- a/scripts/common.sh
+++ b/scripts/common.sh
@@ -117,13 +117,13 @@ mvnCopyDependencies() {
runCmd "${MVN_CMD[@]}" dependency:copy-dependencies -DincludeScope=test || die "fail to mvn copy-dependencies!"
# remove repackaged and shaded javassist lib
- rm $dependencies_dir/javassist-*
+ rm "$dependencies_dir"/javassist-* "$dependencies_dir"/jsr305-*
}
getClasspathOfDependencies() {
[ -e "$dependencies_dir" ] || mvnCopyDependencies 1>&2
- echo $dependencies_dir/*.jar | tr ' ' :
+ echo "$dependencies_dir"/*.jar | tr ' ' :
}
getClasspathWithoutTtlJar() {
diff --git a/src/main/java/com/alibaba/ttl/TransmittableThreadLocal.java b/src/main/java/com/alibaba/ttl/TransmittableThreadLocal.java
index 8fe745fdc34d0b7cd37932e5fd7a3b1c0f824b58..3a30f52216b88c95cf05b1cfea4131725e15f310 100644
--- a/src/main/java/com/alibaba/ttl/TransmittableThreadLocal.java
+++ b/src/main/java/com/alibaba/ttl/TransmittableThreadLocal.java
@@ -1,5 +1,7 @@
package com.alibaba.ttl;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -145,7 +147,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal {
/**
* Debug only method!
*/
- static void dump(String title) {
+ static void dump(@Nullable String title) {
if (title != null && title.length() > 0) {
System.out.printf("Start TransmittableThreadLocal[%s] Dump...\n", title);
} else {
@@ -248,6 +250,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal {
* @return the captured {@link TransmittableThreadLocal} values
* @since 2.3.0
*/
+ @Nonnull
public static Object capture() {
Map, Object> captured = new HashMap, Object>();
for (TransmittableThreadLocal> threadLocal : holder.get().keySet()) {
@@ -265,7 +268,8 @@ public class TransmittableThreadLocal extends InheritableThreadLocal {
* @see #capture()
* @since 2.3.0
*/
- public static Object replay(Object captured) {
+ @Nonnull
+ public static Object replay(@Nonnull Object captured) {
@SuppressWarnings("unchecked")
Map, Object> capturedMap = (Map, Object>) captured;
Map, Object> backup = new HashMap, Object>();
@@ -301,7 +305,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal {
* @param backup the backup {@link TransmittableThreadLocal} values from {@link Transmitter#replay(Object)}
* @since 2.3.0
*/
- public static void restore(Object backup) {
+ public static void restore(@Nonnull Object backup) {
@SuppressWarnings("unchecked")
Map, Object> backupMap = (Map, Object>) backup;
// call afterExecute callback
@@ -324,7 +328,7 @@ public class TransmittableThreadLocal extends InheritableThreadLocal {
setTtlValuesTo(backupMap);
}
- private static void setTtlValuesTo(Map, Object> ttlValues) {
+ private static void setTtlValuesTo(@Nonnull Map, Object> ttlValues) {
for (Map.Entry, Object> entry : ttlValues.entrySet()) {
@SuppressWarnings("unchecked")
TransmittableThreadLocal