@@ -0,0 +1,2011 @@
+package com.alibaba.ttl.reported_bugs;%0A%0Aimport com.alibaba.ttl.TransmittableThreadLocal;%0Aimport com.alibaba.ttl.TtlRunnable;%0Aimport org.junit.Test;%0A%0Aimport java.util.concurrent.Callable;%0Aimport java.util.concurrent.ExecutorService;%0Aimport java.util.concurrent.Executors;%0Aimport java.util.concurrent.FutureTask;%0Aimport java.util.concurrent.atomic.AtomicReference;%0A%0Aimport static org.junit.Assert.assertEquals;%0A%0A/**%0A * Bug URL: https://github.com/alibaba/transmittable-thread-local/issues/70%0A * Reporter: @aftersss%0A */%0Apublic class Bug70_Test %7B%0A    private static final String HELLO = %22hello%22;%0A%0A    @Test%0A    public void test_bug70() throws Exception %7B%0A        final ExecutorService executorService = Executors.newSingleThreadExecutor();%0A        final InheritableThreadLocal%3CString%3E threadLocal = new TransmittableThreadLocal%3CString%3E();%0A%0A        threadLocal.set(HELLO);%0A        assertEquals(HELLO, threadLocal.get());%0A%0A        final FutureTask%3CString%3E task1 = new FutureTask%3CString%3E(new Callable%3CString%3E() %7B%0A            @Override%0A            public String call() throws Exception %7B%0A                return threadLocal.get();%0A            %7D%0A        %7D);%0A        executorService.submit(TtlRunnable.get(task1))%0A                .get();%0A        assertEquals(HELLO, task1.get());%0A%0A%0A        final AtomicReference%3CFutureTask%3CString%3E%3E taskRef = new AtomicReference%3CFutureTask%3CString%3E%3E();%0A        Thread thread = new Thread() %7B%0A            public void run() %7B%0A                FutureTask%3CString%3E task2 = new FutureTask%3CString%3E(new Callable%3CString%3E() %7B%0A                    @Override%0A                    public String call() throws Exception %7B%0A                        return threadLocal.get();%0A                    %7D%0A                %7D);%0A                TtlRunnable runnable = TtlRunnable.get(task2, false, false);%0A                executorService.submit(runnable);%0A                taskRef.set(task2);%0A            %7D%0A        %7D;%0A        thread.start();%0A        thread.join();%0A        assertEquals(HELLO, taskRef.get().get());%0A    %7D%0A%7D%0A

add bug #70 reproduce test case, test should fail