@Override protected Map<Schema,Map<Schema,ResolvingDecoder>> initialValue() { return new WeakIdentityHashMap<>(); } };
public int size() { reap(); return backingStore.size(); } public Collection<V> values() {
public boolean isEmpty() { reap(); return backingStore.isEmpty(); } public void putAll(Map t) {
protected Map<Schema,Map<Schema,ResolvingDecoder>> initialValue() { return new WeakIdentityHashMap<Schema,Map<Schema,ResolvingDecoder>>(); } };
public int hashCode() { reap(); return backingStore.hashCode(); } public boolean isEmpty() {
/** Gets a resolving decoder for use by this GenericDatumReader. * Unstable API. * Currently uses a thread local cache to prevent constructing the * resolvers too often, because that is very expensive. */ protected final ResolvingDecoder getResolver(Schema actual, Schema expected) throws IOException { Thread currThread = Thread.currentThread(); ResolvingDecoder resolver; if (currThread == creator && creatorResolver != null) { return creatorResolver; } Map<Schema,ResolvingDecoder> cache = RESOLVER_CACHE.get().get(actual); if (cache == null) { cache = new WeakIdentityHashMap<>(); RESOLVER_CACHE.get().put(actual, cache); } resolver = cache.get(expected); if (resolver == null) { resolver = DecoderFactory.get().resolvingDecoder( Schema.applyAliases(actual, expected), expected, null); cache.put(expected, resolver); } if (currThread == creator){ creatorResolver = resolver; } return resolver; }
public boolean isEmpty() { reap(); return backingStore.isEmpty(); } public void putAll(Map t) {
/** Gets a resolving decoder for use by this GenericDatumReader. * Unstable API. * Currently uses a thread local cache to prevent constructing the * resolvers too often, because that is very expensive. */ protected final ResolvingDecoder getResolver(Schema actual, Schema expected) throws IOException { Thread currThread = Thread.currentThread(); ResolvingDecoder resolver; if (currThread == creator && creatorResolver != null) { return creatorResolver; } Map<Schema,ResolvingDecoder> cache = RESOLVER_CACHE.get().get(actual); if (cache == null) { cache = new WeakIdentityHashMap<Schema,ResolvingDecoder>(); RESOLVER_CACHE.get().put(actual, cache); } resolver = cache.get(expected); if (resolver == null) { resolver = DecoderFactory.get().resolvingDecoder( Schema.applyAliases(actual, expected), expected, null); cache.put(expected, resolver); } if (currThread == creator){ creatorResolver = resolver; } return resolver; }
public int hashCode() { reap(); return backingStore.hashCode(); } public boolean isEmpty() {
protected Map<Schema,Map<Schema,ResolvingDecoder>> initialValue() { return new WeakIdentityHashMap<Schema,Map<Schema,ResolvingDecoder>>(); } };
public int size() { reap(); return backingStore.size(); } public Collection<V> values() {
protected Map<Schema,Map<Schema,ResolvingDecoder>> initialValue() { return new WeakIdentityHashMap<Schema,Map<Schema,ResolvingDecoder>>(); } };
public boolean containsValue(Object value) { reap(); return backingStore.containsValue(value); }
protected Map<Schema,Map<Schema,ResolvingDecoder>> initialValue() { return new WeakIdentityHashMap<Schema,Map<Schema,ResolvingDecoder>>(); } };
public Collection<V> values() { reap(); return backingStore.values(); }
private ResolvingDecoder getResolver(Schema actual, Schema expected) throws IOException { ResolvingDecoder resolver = threadResolver.get(); if (resolver != null) return resolver; Map<Schema,ResolvingDecoder> cache = RESOLVER_CACHE.get().get(actual); if (cache == null) { cache = new WeakIdentityHashMap<Schema,ResolvingDecoder>(); RESOLVER_CACHE.get().put(actual, cache); } resolver = cache.get(expected); if (resolver == null) { resolver = new ResolvingDecoder(Schema.applyAliases(actual, expected), expected, null); cache.put(expected, resolver); } threadResolver.set(resolver); return resolver; }
public Collection<V> values() { reap(); return backingStore.values(); }
/** Gets a resolving decoder for use by this GenericDatumReader. * Unstable API. * Currently uses a thread local cache to prevent constructing the * resolvers too often, because that is very expensive. */ protected final ResolvingDecoder getResolver(Schema actual, Schema expected) throws IOException { Thread currThread = Thread.currentThread(); ResolvingDecoder resolver; if (currThread == creator && creatorResolver != null) { return creatorResolver; } Map<Schema,ResolvingDecoder> cache = RESOLVER_CACHE.get().get(actual); if (cache == null) { cache = new WeakIdentityHashMap<Schema,ResolvingDecoder>(); RESOLVER_CACHE.get().put(actual, cache); } resolver = cache.get(expected); if (resolver == null) { resolver = DecoderFactory.get().resolvingDecoder( Schema.applyAliases(actual, expected), expected, null); cache.put(expected, resolver); } if (currThread == creator){ creatorResolver = resolver; } return resolver; }
public void clear() { backingStore.clear(); reap(); }
/** Gets a resolving decoder for use by this GenericDatumReader. * Unstable API. * Currently uses a thread local cache to prevent constructing the * resolvers too often, because that is very expensive. */ protected final ResolvingDecoder getResolver(Schema actual, Schema expected) throws IOException { Thread currThread = Thread.currentThread(); ResolvingDecoder resolver; if (currThread == creator && creatorResolver != null) { return creatorResolver; } Map<Schema,ResolvingDecoder> cache = RESOLVER_CACHE.get().get(actual); if (cache == null) { cache = new WeakIdentityHashMap<Schema,ResolvingDecoder>(); RESOLVER_CACHE.get().put(actual, cache); } resolver = cache.get(expected); if (resolver == null) { resolver = DecoderFactory.get().resolvingDecoder( Schema.applyAliases(actual, expected), expected, null); cache.put(expected, resolver); } if (currThread == creator){ creatorResolver = resolver; } return resolver; }