gitextract_ll2vt13l/ ├── .editorconfig ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── ci.yaml │ └── strong_ci.yaml ├── .gitignore ├── .gitmodules ├── .mvn/ │ └── wrapper/ │ └── maven-wrapper.properties ├── CONTRIBUTING.md ├── LICENSE ├── README-EN.md ├── README.md ├── SECURITY.md ├── docs/ │ ├── TransmittableThreadLocal.asta │ ├── TransmittableThreadLocal.pptx │ ├── developer-guide-en.md │ ├── developer-guide.md │ ├── logo.md │ ├── performance-test.md │ ├── release-action-list.md │ └── requirement-scenario.md ├── mvnw ├── mvnw.cmd ├── pom.xml ├── scripts/ │ ├── bump-ttl-version.sh │ ├── check-japi-compliance.sh │ ├── codecov.sh │ ├── integration-test.sh │ ├── perf-test/ │ │ ├── memoryleak-ThreadLocal.sh │ │ ├── memoryleak-TransmittableThreadLocal.sh │ │ ├── tps-ThreadLocal.sh │ │ └── tps-TransmittableThreadLocal.sh │ ├── release.sh │ └── run-agent-demo.sh ├── src/ │ └── package-list/ │ ├── java/ │ │ └── package-list │ ├── jetbrains-annotations/ │ │ └── package-list │ ├── jsr305/ │ │ └── package-list │ └── spotbugs-annotations/ │ └── package-list ├── ttl-agent/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── alibaba/ │ └── ttl3/ │ └── agent/ │ ├── TtlAgent.java │ ├── TtlAgentHelper.java │ ├── TtlExtensionTransformletManager.java │ ├── TtlTransformer.java │ ├── logging/ │ │ ├── Logger.java │ │ └── package-info.java │ ├── package-info.java │ └── transformlet/ │ ├── ClassInfo.java │ ├── TtlTransformlet.java │ ├── helper/ │ │ ├── AbstractExecutorTtlTransformlet.java │ │ ├── TtlTransformletHelper.java │ │ └── package-info.java │ ├── internal/ │ │ ├── ForkJoinTtlTransformlet.java │ │ ├── JdkExecutorTtlTransformlet.java │ │ ├── PriorityBlockingQueueTtlTransformlet.java │ │ ├── TimerTaskTtlTransformlet.java │ │ └── package-info.java │ └── package-info.java ├── ttl-bom/ │ └── pom.xml ├── ttl-core/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ ├── crr/ │ │ │ │ ├── TransmitCallback.java │ │ │ │ ├── Transmittable.java │ │ │ │ ├── composite/ │ │ │ │ │ ├── Backup.java │ │ │ │ │ ├── Capture.java │ │ │ │ │ ├── CompositeTransmitCallback.java │ │ │ │ │ ├── CompositeTransmittable.java │ │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ └── ttl3/ │ │ │ ├── TransmittableThreadLocal.java │ │ │ ├── TtlCallable.java │ │ │ ├── TtlRecursiveAction.java │ │ │ ├── TtlRecursiveTask.java │ │ │ ├── TtlRunnable.java │ │ │ ├── TtlTimerTask.java │ │ │ ├── TtlWrappers.java │ │ │ ├── agent/ │ │ │ │ ├── EmptyTtlAgentStatus.java │ │ │ │ ├── TtlAgentStatus.java │ │ │ │ └── package-info.java │ │ │ ├── executor/ │ │ │ │ ├── ComparableComparator.java │ │ │ │ ├── DisableInheritableForkJoinWorkerThreadFactoryWrapper.java │ │ │ │ ├── DisableInheritableThreadFactoryWrapper.java │ │ │ │ ├── ExecutorServiceTtlWrapper.java │ │ │ │ ├── ExecutorTtlWrapper.java │ │ │ │ ├── ScheduledExecutorServiceTtlWrapper.java │ │ │ │ ├── TtlExecutors.java │ │ │ │ ├── TtlUnwrapComparator.java │ │ │ │ └── package-info.java │ │ │ ├── internal/ │ │ │ │ └── util/ │ │ │ │ ├── Assert.java │ │ │ │ ├── ConcurrentReferenceHashMap.java │ │ │ │ ├── ObjectUtils.java │ │ │ │ └── Utils.java │ │ │ ├── package-info.java │ │ │ ├── spi/ │ │ │ │ ├── TtlAttachments.java │ │ │ │ ├── TtlAttachmentsDelegate.java │ │ │ │ ├── TtlEnhanced.java │ │ │ │ ├── TtlWrapper.java │ │ │ │ └── package-info.java │ │ │ └── transmitter/ │ │ │ ├── ThreadLocalTransmitRegistry.java │ │ │ ├── Transmittee.java │ │ │ ├── TransmitteeRegistry.java │ │ │ ├── Transmitter.java │ │ │ └── package-info.java │ │ └── javadoc/ │ │ └── overview.html │ └── test/ │ └── java/ │ └── com/ │ └── alibaba/ │ ├── Utils.kt │ ├── demo/ │ │ ├── cow/ │ │ │ └── CowDemo.kt │ │ ├── forkjoinpool/ │ │ │ ├── ForkJoinPoolDemo.kt │ │ │ └── ParallelStreamDemo.kt │ │ ├── scheduled_thread_pool_executor/ │ │ │ └── ScheduledFutureTaskDemo.kt │ │ ├── session_cache/ │ │ │ └── SessionCacheDemo.kt │ │ ├── timer/ │ │ │ └── TimerTaskDemo.kt │ │ └── ttl3/ │ │ ├── CustomizedBlockingQueueWithTtlDemo.java │ │ ├── SimpleDemo.kt │ │ ├── TtlExecutorServiceWithPriorityBlockingQueueDemo.kt │ │ ├── TtlExecutorWrapperDemo.kt │ │ ├── TtlForkJoinTaskDemo.kt │ │ └── TtlWrapperDemo.kt │ ├── perf/ │ │ ├── Utils.kt │ │ ├── memoryleak/ │ │ │ ├── NoMemoryLeak_ThreadLocal_NoRemove.kt │ │ │ └── NoMemoryLeak_TransmittableThreadLocal_NoRemove.kt │ │ ├── package-info.java │ │ └── tps/ │ │ ├── CreateThreadLocalInstanceTps.kt │ │ ├── CreateTransmittableThreadLocalInstanceTps.kt │ │ └── TpsCounter.kt │ ├── third_part_lib_test/ │ │ ├── ExecutorsTest.kt │ │ └── ForkJoinPoolTest.kt │ ├── ttl3/ │ │ ├── TtlCallableTest.kt │ │ ├── TtlFlowTester.kt │ │ ├── TtlRunnableTest.kt │ │ └── TtlTimerTaskTest.kt │ └── user_api_test/ │ └── ttl3/ │ ├── DisableIgnoreNullValueSemanticsTest.kt │ ├── TransmittableThreadLocal_Transmitter_UserTest.kt │ ├── TransmittableThreadLocal_Transmitter_registerTransmittee_UserTest.kt │ ├── TransmittableThreadLocal_withInit_Null_Test.java │ └── TransmittableThreadLocal_withInit_Test.kt ├── ttl-integrations/ │ ├── sample-ttl-agent-extension-transformlet/ │ │ ├── README.md │ │ ├── pom.xml │ │ ├── scripts/ │ │ │ ├── integration-test.sh │ │ │ └── run.sh │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── ttl/ │ │ │ │ └── agent/ │ │ │ │ └── extension_transformlet/ │ │ │ │ └── sample/ │ │ │ │ ├── biz/ │ │ │ │ │ ├── SampleMain.java │ │ │ │ │ └── ToBeTransformedClass.java │ │ │ │ └── transformlet/ │ │ │ │ └── SampleExtensionTransformlet.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── ttl.agent.transformlets │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── ttl/ │ │ └── agent/ │ │ └── extension_transformlet/ │ │ └── sample/ │ │ └── biz/ │ │ └── ToBeTransformedClassTest.java │ ├── vertx3-ttl-integration/ │ │ ├── README-EN.md │ │ ├── README.md │ │ ├── pom.xml │ │ └── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── alibaba/ │ │ │ │ └── ttl/ │ │ │ │ └── integration/ │ │ │ │ └── vertx3/ │ │ │ │ ├── TtlVertxHandler.java │ │ │ │ └── agent/ │ │ │ │ └── transformlet/ │ │ │ │ ├── NettySingleThreadEventExecutorTtlTransformlet.java │ │ │ │ └── VertxFutureTtlTransformlet.java │ │ │ └── resources/ │ │ │ └── META-INF/ │ │ │ └── ttl.agent.transformlets │ │ └── test/ │ │ └── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── ttl/ │ │ └── integration/ │ │ └── vertx3/ │ │ └── VertxTransformletTest.java │ └── vertx4-ttl-integration/ │ ├── README-EN.md │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── alibaba/ │ │ │ └── ttl/ │ │ │ └── integration/ │ │ │ └── vertx4/ │ │ │ ├── TtlVertxHandler.java │ │ │ └── agent/ │ │ │ └── transformlet/ │ │ │ ├── NettySingleThreadEventExecutorTtlTransformlet.java │ │ │ └── VertxFutureTtlTransformlet.java │ │ └── resources/ │ │ └── META-INF/ │ │ └── ttl.agent.transformlets │ └── test/ │ └── java/ │ └── com/ │ └── alibaba/ │ └── ttl/ │ └── integration/ │ └── vertx4/ │ └── VertxTransformletTest.java ├── ttl-kotlin/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── kotlin/ │ │ └── com/ │ │ └── alibaba/ │ │ └── ttl3/ │ │ └── kotlin/ │ │ ├── Transmitter.kt │ │ └── TtlExtensions.kt │ └── test/ │ └── kotlin/ │ └── com/ │ └── alibaba/ │ ├── Utils.kt │ └── ttl3/ │ └── kotlin/ │ └── TtlExtensionsTests.kt └── ttl2-compatible/ ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── alibaba/ │ │ └── ttl/ │ │ ├── TransmittableThreadLocal.java │ │ ├── TtlCallable.java │ │ ├── TtlCopier.java │ │ ├── TtlEnhanced.java │ │ ├── TtlRecursiveAction.java │ │ ├── TtlRecursiveTask.java │ │ ├── TtlRunnable.java │ │ ├── TtlTimerTask.java │ │ ├── TtlUnwrap.java │ │ ├── TtlWrappers.java │ │ ├── package-info.java │ │ ├── spi/ │ │ │ ├── TtlAttachments.java │ │ │ ├── TtlAttachmentsDelegate.java │ │ │ ├── TtlEnhanced.java │ │ │ ├── TtlWrapper.java │ │ │ └── package-info.java │ │ └── threadpool/ │ │ ├── ComparableComparator.java │ │ ├── DisableInheritableForkJoinWorkerThreadFactory.java │ │ ├── DisableInheritableForkJoinWorkerThreadFactoryWrapper.java │ │ ├── DisableInheritableThreadFactory.java │ │ ├── DisableInheritableThreadFactoryWrapper.java │ │ ├── ExecutorServiceTtlWrapper.java │ │ ├── ExecutorTtlWrapper.java │ │ ├── ScheduledExecutorServiceTtlWrapper.java │ │ ├── TtlExecutors.java │ │ ├── TtlForkJoinPoolHelper.java │ │ ├── TtlUnwrapComparator.java │ │ ├── agent/ │ │ │ ├── TtlAgent.java │ │ │ ├── TtlAgentHelper.java │ │ │ ├── TtlExtensionTransformletManager.java │ │ │ ├── TtlTransformer.java │ │ │ ├── logging/ │ │ │ │ ├── Logger.java │ │ │ │ └── package-info.java │ │ │ ├── package-info.java │ │ │ └── transformlet/ │ │ │ ├── ClassInfo.java │ │ │ ├── TtlTransformlet.java │ │ │ ├── helper/ │ │ │ │ ├── AbstractExecutorTtlTransformlet.java │ │ │ │ ├── TtlTransformletHelper.java │ │ │ │ └── package-info.java │ │ │ ├── internal/ │ │ │ │ ├── ForkJoinTtlTransformlet.java │ │ │ │ ├── JdkExecutorTtlTransformlet.java │ │ │ │ ├── PriorityBlockingQueueTtlTransformlet.java │ │ │ │ ├── TimerTaskTtlTransformlet.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ └── package-info.java │ └── javadoc/ │ └── overview.html └── test/ ├── java/ │ └── com/ │ └── alibaba/ │ ├── Utils.kt │ ├── demo/ │ │ ├── coroutine/ │ │ │ ├── CoroutineDemo.kt │ │ │ ├── CoroutineThreadContextElementDemo.kt │ │ │ ├── CoroutineThreadContextElementTest.kt │ │ │ ├── CoroutineThreadLocalContextContinuationInterceptorDemo.kt │ │ │ └── ttl_intergration/ │ │ │ ├── TtlCoroutineContext.kt │ │ │ └── usage/ │ │ │ ├── TtlCoroutineContextDemo.kt │ │ │ └── TtlCoroutineContextTest.kt │ │ ├── cow/ │ │ │ └── CowDemo.kt │ │ ├── distributed_tracer/ │ │ │ ├── refcount/ │ │ │ │ └── DistributedTracerUseDemo.kt │ │ │ └── weakref/ │ │ │ └── DistributedTracerUseDemo_WeakReferenceInsteadOfRefCounter.kt │ │ ├── forkjoinpool/ │ │ │ ├── ForkJoinPoolDemo.kt │ │ │ └── ParallelStreamDemo.kt │ │ ├── scheduled_thread_pool_executor/ │ │ │ └── ScheduledFutureTaskDemo.kt │ │ ├── session_cache/ │ │ │ └── SessionCacheDemo.kt │ │ ├── timer/ │ │ │ └── TimerTaskDemo.kt │ │ └── ttl/ │ │ ├── CustomizedBlockingQueueWithTtlDemo.java │ │ ├── SimpleDemo.kt │ │ ├── TtlExecutorServiceWithPriorityBlockingQueueDemo.kt │ │ ├── TtlExecutorWrapperDemo.kt │ │ ├── TtlForkJoinTaskDemo.kt │ │ ├── TtlWrapperDemo.kt │ │ ├── TtlWrapperTypeInferenceProblemShowcase.java │ │ └── agent/ │ │ ├── AgentDemo.kt │ │ └── YourXxxAgent.java │ ├── it/ │ │ ├── README.md │ │ └── TimerAgentCheck.kt │ ├── perf/ │ │ ├── Utils.kt │ │ ├── memoryleak/ │ │ │ ├── NoMemoryLeak_ThreadLocal_NoRemove.kt │ │ │ └── NoMemoryLeak_TransmittableThreadLocal_NoRemove.kt │ │ └── tps/ │ │ ├── CreateThreadLocalInstanceTps.kt │ │ ├── CreateTransmittableThreadLocalInstanceTps.kt │ │ └── TpsCounter.kt │ ├── third_part_lib_test/ │ │ ├── ExecutorsTest.kt │ │ ├── ForkJoinPoolTest.kt │ │ └── JavassistTest.kt │ ├── ttl/ │ │ ├── InheritableTest.kt │ │ ├── README.md │ │ ├── TtlCallableTest.kt │ │ ├── TtlRunnableTest.kt │ │ ├── TtlTimerTaskTest.kt │ │ ├── TtlWrappersTest.kt │ │ ├── forkjoin/ │ │ │ ├── ForkJoinPool4RunnableCallableTest.kt │ │ │ ├── ForkJoinPool4StreamTest.kt │ │ │ ├── recursive_action/ │ │ │ │ └── TtlRecursiveActionTest.kt │ │ │ └── recursive_task/ │ │ │ └── TtlRecursiveTaskTest.kt │ │ ├── reported_bugs/ │ │ │ └── Bug70_Test.kt │ │ ├── testmodel/ │ │ │ ├── Call.kt │ │ │ ├── DeepCopyFooTransmittableThreadLocal.kt │ │ │ ├── FooPojo.kt │ │ │ ├── FooTask.kt │ │ │ └── Task.kt │ │ ├── threadlocal_integration/ │ │ │ └── ThreadLocalIntegrationTest.kt │ │ └── threadpool/ │ │ ├── BeforeAndAfterExecuteMethodOfExecutorSubclassTest.kt │ │ ├── ExecutorClassesTest.kt │ │ ├── ScheduledExecutorServiceTtlWrapperTest.kt │ │ ├── TtlExecutorsTest.kt │ │ ├── TtlForkJoinPoolHelperTest.kt │ │ └── agent/ │ │ ├── TtlAgentHelperTest.kt │ │ ├── TtlExtensionTransformletManagerTest.kt │ │ └── transformlet/ │ │ ├── helper/ │ │ │ └── TtlTransformletHelperTest.kt │ │ └── internal/ │ │ └── UtilsTest.java │ └── user_api_test/ │ ├── README.md │ └── ttl/ │ ├── DisableIgnoreNullValueSemanticsTest.kt │ ├── TransmittableThreadLocal_Transmitter_UserTest.kt │ ├── TransmittableThreadLocal_Transmitter_registerTransmittee_UserTest.kt │ ├── TransmittableThreadLocal_withInit_Null_Test.java │ └── TransmittableThreadLocal_withInit_Test.kt └── resources/ ├── io/ │ └── mockk/ │ └── settings.properties ├── log4j.xml └── test_extension/ └── foo.txt