jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Schumacher <felix.schumac...@internetallee.de>
Subject Re: svn commit: r1854637 - /jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
Date Sat, 02 Mar 2019 11:44:07 GMT


Am 2. März 2019 11:57:29 MEZ schrieb pmouawad@apache.org:
>Author: pmouawad
>Date: Sat Mar  2 10:57:29 2019
>New Revision: 1854637
>
>URL: http://svn.apache.org/viewvc?rev=1854637&view=rev
>Log:
>Replace synchronization by ConcurrentHashMap
>
>Modified:
>    jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
>
>Modified:
>jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
>URL:
>http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=1854637&r1=1854636&r2=1854637&view=diff
>==============================================================================
>--- jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
>(original)
>+++ jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
>Sat Mar  2 10:57:29 2019
>@@ -25,9 +25,9 @@ import java.net.URL;
> import java.nio.charset.Charset;
> import java.nio.charset.StandardCharsets;
> import java.util.ArrayList;
>-import java.util.HashSet;
> import java.util.List;
>-import java.util.Set;
>+import java.util.Map;
>+import java.util.concurrent.ConcurrentHashMap;
> import java.util.concurrent.TimeUnit;
> 
> import org.apache.jmeter.assertions.AssertionResult;
>@@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory;
>  *
>  */
>public class SampleResult implements Serializable, Cloneable,
>Searchable {
>-
>+    private static final Byte BYTE = Byte.valueOf((byte)0);

I wondered quite a long time, why you introduced a new constant name BYTE. I think I would
have got the meaning a bit faster, if it would have been named DUMMY, MARKER or SOME_VALUE.


Do you have any special reason for using Byte instead of a naked Object? 

Felix 

>     private static final long serialVersionUID = 241L;
> 
>     // Needs to be accessible from Test code
>@@ -213,9 +213,9 @@ public class SampleResult implements Ser
>     /**
>      * Files that this sample has been saved in.
>  * In Non GUI mode and when best config is used, size never exceeds 1,
>-     * but as a compromise set it to 3
>+     * but as a compromise set it to 2
>      */
>-    private final Set<String> files = new HashSet<>(3);
>+    private final Map<String, Byte> files = new
>ConcurrentHashMap<>(2);
> 
>// TODO do contentType and/or dataEncoding belong in HTTPSampleResult
>instead?
>private String dataEncoding;// (is this really the character set?) e.g.
>@@ -499,8 +499,9 @@ public class SampleResult implements Ser
>      * @param filename the name of the file
>      * @return <code>true</code> if the result was previously marked
>      */
>-    public synchronized boolean markFile(String filename) {
>-        return !files.add(filename);
>+    public boolean markFile(String filename) {
>+        Byte result = files.putIfAbsent(filename, BYTE);
>+        return result != null;
>     }
> 
>     public String getResponseCode() {

Mime
View raw message