2525import com .esotericsoftware .kryo .io .Input ;
2626import com .esotericsoftware .kryo .io .Output ;
2727import com .esotericsoftware .kryo .unsafe .UnsafeUtil ;
28- import com .esotericsoftware .kryo .util .Tuple2 ;
2928import com .esotericsoftware .minlog .Log ;
3029
3130import java .util .ArrayList ;
4948public class SynchronizedCollectionSerializers {
5049
5150 private static class Offset {
52- // Graalvm unsafe offset substitution support
5351 private static final long SOURCE_COLLECTION_FIELD_OFFSET ;
5452 private static final long SOURCE_MAP_FIELD_OFFSET ;
5553
@@ -72,7 +70,6 @@ private static class Offset {
7270 }
7371
7472 static final class SynchronizedCollectionSerializer extends CollectionSerializer <Collection > {
75-
7673 private final Function factory ;
7774 private final long offset ;
7875
@@ -134,37 +131,37 @@ public Map copy (Kryo kryo, Map original) {
134131 }
135132 }
136133
137- private static Serializer <?> createSerializer (Tuple2 <Class <?>, Function > factory ) {
138- if (Collection .class .isAssignableFrom (factory .f0 )) {
139- return new SynchronizedCollectionSerializer (factory .f1 , Offset .SOURCE_COLLECTION_FIELD_OFFSET );
134+ private static Serializer <?> createSerializer (Map . Entry <Class <?>, Function > factory ) {
135+ if (Collection .class .isAssignableFrom (factory .getKey () )) {
136+ return new SynchronizedCollectionSerializer (factory .getValue () , Offset .SOURCE_COLLECTION_FIELD_OFFSET );
140137 } else {
141- return new SynchronizedMapSerializer (factory .f1 , Offset .SOURCE_MAP_FIELD_OFFSET );
138+ return new SynchronizedMapSerializer (factory .getValue () , Offset .SOURCE_MAP_FIELD_OFFSET );
142139 }
143140 }
144141
145- static Tuple2 <Class <?>, Function >[] synchronizedFactories () {
146- return new Tuple2 [] {
147- Tuple2 .< Class <?>, Function > of (
142+ static Map . Entry <Class <?>, Function >[] synchronizedFactories () {
143+ return new Map . Entry [] {
144+ Map . entry (
148145 Collections .synchronizedCollection (Arrays .asList ("" )).getClass (),
149- o -> Collections .synchronizedCollection ((Collection )o )),
150- Tuple2 .< Class <?>, Function > of (
146+ ( Function ) o -> Collections .synchronizedCollection ((Collection )o )),
147+ Map . entry (
151148 Collections .synchronizedList (new ArrayList <Void >()).getClass (),
152- o1 -> Collections .synchronizedList ((List <?>)o1 )),
153- Tuple2 .< Class <?>, Function > of (
149+ ( Function ) o1 -> Collections .synchronizedList ((List <?>)o1 )),
150+ Map . entry (
154151 Collections .synchronizedList (new LinkedList <Void >()).getClass (),
155- o2 -> Collections .synchronizedList ((List <?>)o2 )),
156- Tuple2 .< Class <?>, Function > of (
152+ ( Function ) o2 -> Collections .synchronizedList ((List <?>)o2 )),
153+ Map . entry (
157154 Collections .synchronizedSet (new HashSet <Void >()).getClass (),
158- o3 -> Collections .synchronizedSet ((Set <?>)o3 )),
159- Tuple2 .< Class <?>, Function > of (
155+ ( Function ) o3 -> Collections .synchronizedSet ((Set <?>)o3 )),
156+ Map . entry (
160157 Collections .synchronizedSortedSet (new TreeSet <>()).getClass (),
161- o4 -> Collections .synchronizedSortedSet ((TreeSet <?>)o4 )),
162- Tuple2 .< Class <?>, Function > of (
158+ ( Function ) o4 -> Collections .synchronizedSortedSet ((TreeSet <?>)o4 )),
159+ Map . entry (
163160 Collections .synchronizedMap (new HashMap <Void , Void >()).getClass (),
164- o5 -> Collections .synchronizedMap ((Map )o5 )),
165- Tuple2 .< Class <?>, Function > of (
161+ ( Function ) o5 -> Collections .synchronizedMap ((Map )o5 )),
162+ Map . entry (
166163 Collections .synchronizedSortedMap (new TreeMap <>()).getClass (),
167- o6 -> Collections .synchronizedSortedMap ((SortedMap )o6 ))
164+ ( Function ) o6 -> Collections .synchronizedSortedMap ((SortedMap )o6 ))
168165 };
169166 }
170167
@@ -178,8 +175,8 @@ Tuple2.<Class<?>, Function> of(
178175 * @see Collections#synchronizedSortedMap(SortedMap) **/
179176 public static void registerSerializers (Kryo kryo ) {
180177 try {
181- for (Tuple2 <Class <?>, Function > factory : synchronizedFactories ()) {
182- kryo .register (factory .f0 , createSerializer (factory ));
178+ for (Map . Entry <Class <?>, Function > factory : synchronizedFactories ()) {
179+ kryo .register (factory .getKey () , createSerializer (factory ));
183180 }
184181 } catch (Throwable ignored ) {
185182 // ignored
@@ -196,8 +193,8 @@ public static void registerSerializers (Kryo kryo) {
196193 * @see Collections#synchronizedSortedMap(SortedMap) **/
197194 public static void addDefaultSerializers (Kryo kryo ) {
198195 try {
199- for (Tuple2 <Class <?>, Function > factory : synchronizedFactories ()) {
200- kryo .addDefaultSerializer (factory .f0 , createSerializer (factory ));
196+ for (Map . Entry <Class <?>, Function > factory : synchronizedFactories ()) {
197+ kryo .addDefaultSerializer (factory .getKey () , createSerializer (factory ));
201198 }
202199 } catch (Throwable ignored ) {
203200 // ignored
0 commit comments