From e448a3e52055a47d4858310d59c5ada2844b05c7 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Sun, 26 Jan 2014 22:51:42 +0100 Subject: [PATCH] Wrapped WeakHashMaps into Collections.synchronizedMap Change-Id: Ib5dac831065b8d0efacbc2cca417cb8d14f02a56 Signed-off-by: Tony Tkacik --- .../impl/InstanceIdentifierCodecImpl.xtend | 3 ++- .../impl/LazyGeneratedCodecRegistry.java | 18 +++++++++--------- .../generator/util/JavassistUtils.xtend | 4 ++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/InstanceIdentifierCodecImpl.xtend b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/InstanceIdentifierCodecImpl.xtend index 7e95b44971..d563b29de1 100644 --- a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/InstanceIdentifierCodecImpl.xtend +++ b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/InstanceIdentifierCodecImpl.xtend @@ -34,13 +34,14 @@ import com.google.common.collect.ImmutableList import org.opendaylight.yangtools.yang.binding.Augmentation import java.util.concurrent.ConcurrentHashMap import org.opendaylight.yangtools.yang.binding.util.BindingReflections +import java.util.Collections class InstanceIdentifierCodecImpl implements InstanceIdentifierCodec { private static val LOG = LoggerFactory.getLogger(InstanceIdentifierCodecImpl); val CodecRegistry codecRegistry; - val Map, Map, Class>> classToPreviousAugment = new WeakHashMap; + val Map, Map, Class>> classToPreviousAugment = Collections.synchronizedMap(new WeakHashMap); public new(CodecRegistry registry) { codecRegistry = registry; diff --git a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/LazyGeneratedCodecRegistry.java b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/LazyGeneratedCodecRegistry.java index b9efd0eee1..a8488bd34a 100644 --- a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/LazyGeneratedCodecRegistry.java +++ b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/LazyGeneratedCodecRegistry.java @@ -53,13 +53,13 @@ public class LazyGeneratedCodecRegistry implements // private TransformerGenerator generator; // Concrete class to codecs - private static final Map, DataContainerCodec> containerCodecs = new WeakHashMap<>(); - private static final Map, IdentifierCodec> identifierCodecs = new WeakHashMap<>(); - private static final Map, ChoiceCodecImpl> choiceCodecs = new WeakHashMap<>(); - private static final Map, ChoiceCaseCodecImpl> caseCodecs = new WeakHashMap<>(); - private static final Map, AugmentableCompositeCodec> augmentableCodecs = new WeakHashMap<>(); - private static final Map, AugmentationCodec> augmentationCodecs = new WeakHashMap<>(); - private static final Map, QName> identityQNames = new WeakHashMap<>(); + private static final Map, DataContainerCodec> containerCodecs = Collections.synchronizedMap(new WeakHashMap, DataContainerCodec>()); + private static final Map, IdentifierCodec> identifierCodecs = Collections.synchronizedMap(new WeakHashMap, IdentifierCodec>()); + private static final Map, ChoiceCodecImpl> choiceCodecs = Collections.synchronizedMap(new WeakHashMap, ChoiceCodecImpl>()); + private static final Map, ChoiceCaseCodecImpl> caseCodecs = Collections.synchronizedMap(new WeakHashMap, ChoiceCaseCodecImpl>()); + private static final Map, AugmentableCompositeCodec> augmentableCodecs = Collections.synchronizedMap(new WeakHashMap, AugmentableCompositeCodec>()); + private static final Map, AugmentationCodec> augmentationCodecs = Collections.synchronizedMap(new WeakHashMap, AugmentationCodec>()); + private static final Map, QName> identityQNames = Collections.synchronizedMap(new WeakHashMap, QName>()); private static final Map qnamesToIdentityMap = new ConcurrentHashMap<>(); /** Binding type to encountered classes mapping **/ @SuppressWarnings("rawtypes") @@ -633,7 +633,7 @@ public class LazyGeneratedCodecRegistry implements // private final BindingCodec, Object> delegate; @SuppressWarnings("rawtypes") - private final Map> cases = new WeakHashMap<>(); + private final Map> cases = Collections.synchronizedMap(new WeakHashMap>()); private final CaseCompositeNodeMapFacade CompositeToCase; @@ -796,7 +796,7 @@ public class LazyGeneratedCodecRegistry implements // private final Class augmentableType; - Map> localAugmentationCodecs = new WeakHashMap<>(); + Map> localAugmentationCodecs = Collections.synchronizedMap(new WeakHashMap>()); public AugmentableCompositeCodec(Class type) { Preconditions.checkArgument(Augmentable.class.isAssignableFrom(type)); diff --git a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/util/JavassistUtils.xtend b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/util/JavassistUtils.xtend index 295bfb533e..35f5b2151a 100644 --- a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/util/JavassistUtils.xtend +++ b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/util/JavassistUtils.xtend @@ -20,14 +20,14 @@ import javassist.ClassClassPath import java.util.concurrent.locks.Lock import java.util.concurrent.locks.ReentrantLock import org.slf4j.LoggerFactory -import java.util.HashMap import java.util.WeakHashMap +import java.util.Collections class JavassistUtils { private static val LOG = LoggerFactory.getLogger(JavassistUtils); - private val loaderClassPaths = new WeakHashMap(); + private val loaderClassPaths = Collections.synchronizedMap(new WeakHashMap()); ClassPool classPool -- 2.36.6