From c32db3b2f8d94727655b09884bbbf289b3788d58 Mon Sep 17 00:00:00 2001 From: Armin Date: Sun, 9 Jul 2017 19:34:10 +0200 Subject: [PATCH] MINOR: Remove needless singleton use in pathcache Fixes #7624 --- .../src/main/java/org/logstash/PathCache.java | 23 ++++++------------- .../logstash/ext/JrubyEventExtLibrary.java | 2 +- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/PathCache.java b/logstash-core/src/main/java/org/logstash/PathCache.java index d6aca4f96..68414cf3a 100644 --- a/logstash-core/src/main/java/org/logstash/PathCache.java +++ b/logstash-core/src/main/java/org/logstash/PathCache.java @@ -2,30 +2,21 @@ package org.logstash; import java.util.concurrent.ConcurrentHashMap; -public class PathCache { +public final class PathCache { - private static PathCache instance = null; - private static ConcurrentHashMap cache = new ConcurrentHashMap<>(); + private static final ConcurrentHashMap cache = new ConcurrentHashMap<>(); - private FieldReference timestamp; + private static final FieldReference timestamp = cache(Event.TIMESTAMP); private static final String BRACKETS_TIMESTAMP = "[" + Event.TIMESTAMP + "]"; - protected PathCache() { + static { // inject @timestamp - this.timestamp = cache(Event.TIMESTAMP); - cache(BRACKETS_TIMESTAMP, this.timestamp); + cache(BRACKETS_TIMESTAMP, timestamp); } - public static PathCache getInstance() { - if (instance == null) { - instance = new PathCache(); - } - return instance; - } - - public boolean isTimestamp(String reference) { - return (cache(reference) == this.timestamp); + public static boolean isTimestamp(String reference) { + return cache(reference) == timestamp; } public static FieldReference cache(String reference) { diff --git a/logstash-core/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java b/logstash-core/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java index 7ccddc61a..4e7cf4bb2 100644 --- a/logstash-core/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java +++ b/logstash-core/src/main/java/org/logstash/ext/JrubyEventExtLibrary.java @@ -120,7 +120,7 @@ public class JrubyEventExtLibrary implements Library { { String r = reference.asJavaString(); - if (PathCache.getInstance().isTimestamp(r)) { + if (PathCache.isTimestamp(r)) { if (!(value instanceof JrubyTimestampExtLibrary.RubyTimestamp)) { throw context.runtime.newTypeError("wrong argument type " + value.getMetaClass() + " (expected LogStash::Timestamp)"); }