diff --git a/src/dorkbox/network/pipeline/LocalRmiEncoder.java b/src/dorkbox/network/pipeline/LocalRmiEncoder.java index 2a94caac..fced8915 100644 --- a/src/dorkbox/network/pipeline/LocalRmiEncoder.java +++ b/src/dorkbox/network/pipeline/LocalRmiEncoder.java @@ -18,6 +18,7 @@ package dorkbox.network.pipeline; import dorkbox.network.connection.ConnectionImpl; import dorkbox.network.connection.EndPoint; import dorkbox.network.rmi.RMI; +import dorkbox.util.FastThreadLocal; import io.netty.channel.ChannelHandler.Sharable; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageEncoder; @@ -35,9 +36,9 @@ class LocalRmiEncoder extends MessageToMessageEncoder { private static final Map, Boolean> transformObjectCache = new ConcurrentHashMap, Boolean>(EndPoint.DEFAULT_THREAD_POOL_SIZE); private static final RmiFieldCache fieldCache = RmiFieldCache.INSTANCE(); - private final ThreadLocal> threadLocal = new ThreadLocal>() { + private final FastThreadLocal> objectThreadLocals = new FastThreadLocal>() { @Override - protected + public Map initialValue() { return new WeakHashMap(8); } @@ -109,7 +110,7 @@ class LocalRmiEncoder extends MessageToMessageEncoder { rmiFieldIds[i] = 0; // 0 means it was null } - final Map localWeakCache = threadLocal.get(); + final Map localWeakCache = objectThreadLocals.get(); Integer id = localWeakCache.get(rmiObject); if (id == null) {