From 889ddf81826a50a70cb5ab0413ca0ba7aebe2e58 Mon Sep 17 00:00:00 2001 From: George Kankava Date: Tue, 9 Feb 2016 13:03:31 +0400 Subject: [PATCH] squid:S1860 - Synchronization should not be based on Strings or boxed primitives --- .../addthis/hydra/data/filter/value/ValueFilterRandom.java | 3 ++- .../com/addthis/hydra/task/source/FactoryInputStream.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/hydra-filters/src/main/java/com/addthis/hydra/data/filter/value/ValueFilterRandom.java b/hydra-filters/src/main/java/com/addthis/hydra/data/filter/value/ValueFilterRandom.java index e1dba4350..58944def1 100644 --- a/hydra-filters/src/main/java/com/addthis/hydra/data/filter/value/ValueFilterRandom.java +++ b/hydra-filters/src/main/java/com/addthis/hydra/data/filter/value/ValueFilterRandom.java @@ -39,6 +39,7 @@ */ public class ValueFilterRandom extends AbstractValueFilter { + private static final Object lock = new Object(); private final Random random = new Random(); /** @@ -91,7 +92,7 @@ public class ValueFilterRandom extends AbstractValueFilter { @Override public ValueObject filterValue(ValueObject value) { if (gaussian) { - synchronized (nextGaussian) { + synchronized (lock) { return ValueFactory.create(nextGaussian(mu, sigma)); } } diff --git a/hydra-task/src/main/java/com/addthis/hydra/task/source/FactoryInputStream.java b/hydra-task/src/main/java/com/addthis/hydra/task/source/FactoryInputStream.java index 2d83d99eb..b0faa6a81 100644 --- a/hydra-task/src/main/java/com/addthis/hydra/task/source/FactoryInputStream.java +++ b/hydra-task/src/main/java/com/addthis/hydra/task/source/FactoryInputStream.java @@ -84,12 +84,13 @@ public InputStream createInputStream() throws IOException { */ public static final class InjectorStreamSource extends FactoryInputStream { + private static final Object lock = new Object(); public static final String DefautlInjectorKey = "secretDefaultInjectorKey"; private static final IdentityHashMap> park = new IdentityHashMap<>(); public static final void inject(String key, InputStream in) { key = key.intern(); - synchronized (key) { + synchronized (lock) { try { LinkedBlockingQueue queue = null; synchronized (park) { @@ -120,7 +121,7 @@ public InputStream createInputStream() throws IOException { try { while (queue == null) { key = key.intern(); - synchronized (key) { + synchronized (lock) { synchronized (park) { queue = park.get(key); }