You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2016/03/18 12:17:05 UTC

svn commit: r1735574 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java

Author: fschumacher
Date: Fri Mar 18 11:17:05 2016
New Revision: 1735574

URL: http://svn.apache.org/viewvc?rev=1735574&view=rev
Log:
Followup to r1733983

Ensure, that only one instance of a LinkExtractorParser gets cached, even if two
threads are creating one at the same time.

Bugzilla Id: 59033

Modified:
    jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java

Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java?rev=1735574&r1=1735573&r2=1735574&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/parser/BaseParser.java Fri Mar 18 11:17:05 2016
@@ -75,7 +75,12 @@ public abstract class BaseParser impleme
         }
         LOG.info("Created " + parserClassName);
         if (parser.isReusable()) {
-            PARSERS.put(parserClassName, parser);// cache the parser
+            LinkExtractorParser currentParser = PARSERS.putIfAbsent(
+                    parserClassName, parser);// cache the parser if not alread
+                                             // done by another thread
+            if (currentParser != null) {
+                return currentParser;
+            }
         }
 
         return parser;