diff --git a/src/main/java/net/openhft/chronicle/map/ChronicleMapBuilder.java b/src/main/java/net/openhft/chronicle/map/ChronicleMapBuilder.java index 0f68572fa..523de2a4d 100644 --- a/src/main/java/net/openhft/chronicle/map/ChronicleMapBuilder.java +++ b/src/main/java/net/openhft/chronicle/map/ChronicleMapBuilder.java @@ -53,11 +53,11 @@ public final class ChronicleMapBuilder implements ChronicleMapBuilderI(OnHeapUpdatableChronicleMapBuilder.of(keyClass, valueClass)); - if (keyClass.isInterface() && keyClass != CharSequence.class) { + if (keyClass.isInterface() && !builtInType(keyClass)) { keyClass = DataValueClasses.directClassFor(keyClass); } - if ((valueClass.isInterface() && valueClass != CharSequence.class)) { + if ((valueClass.isInterface() && !builtInType(valueClass))) { valueClass = DataValueClasses.directClassFor(valueClass); } else if (!offHeapReference(valueClass)) { return new ChronicleMapBuilder(OnHeapUpdatableChronicleMapBuilder.of(keyClass, valueClass)); @@ -67,6 +67,10 @@ public final class ChronicleMapBuilder implements ChronicleMapBuilderI(kvOffHeapUpdatableChronicleMapBuilder); } + static boolean builtInType(Class clazz) { + return clazz.getClassLoader() == Class.class.getClassLoader(); + } + ChronicleMapBuilder(ChronicleMapBuilderI delegate) { this.delegate = delegate; }