Hi,

If a function like assertThrows was included in TestNG, it would make sense to use it. The TestNG expectedException mechanism is adequate and creating a one-off extension to TestNG
would raise the maintenance costs without adding much value.

Roger


On 8/6/2014 10:13 AM, Martin Buchholz wrote:
I have more comments, but this is good to go.

   69     @Test(expectedExceptions = {NullPointerException.class})


Controversial - many people, including myself, think this is too magical
without adding much value.  My own preference is assertThrows e.g. in
http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/src/test/tck/JSR166TestCase.java?revision=1.121&view=markup

Microbenchmarks undermeasure the impact of allocation, which increases with
heap size.  Real world java applications struggle with allocation/gc, not
cpu.  So don't measure allocation against cpu directly in microbenchmarks.





On Wed, Aug 6, 2014 at 2:47 AM, Ivan Gerasimov <[email protected]>
wrote:

On 06.08.2014 10:14, Martin Buchholz wrote:

    39     private final static String PREFIXES[] = {"", "{", "@#$%"};

This C style syntax is not good Java style - use String[] instead.

   Thanks! fixed


    177         if (addLen == 0) { 178             compactElts(); 179             return 
size == 0 ? "" : elts[0]; 180         }

I'm concerned about the extra String[8] created by compactElts.  We assume
that StringJoiners are all temporary objects, so don't bother creating that
shorter String[8] to hold the one sole element on compaction - just reuse
the original array (but should we null out the entries? probably)


The benchmark showed that allocating a new array is faster than nullifying
the existing one.
But if we set the entries to null in the loop that is already there, it
will probably be no slower than allocation.


Here's the updated webrev:
http://cr.openjdk.java.net/~igerasim/8054221/2/webrev/

Sincerely yours,
Ivan



On Tue, Aug 5, 2014 at 12:19 PM, Ivan Gerasimov <[email protected]
wrote:
  But if we do that, I think we should optimize size == 0 as well, thus:
if (addLen == 0 && size <= 1)
  return (size == 0) ? "" : elts[0];

Yes, done.

  Or we can just call compactElts() if addLenn == 0, so it will work for
any size.

Updated the webrev at the same location:
http://cr.openjdk.java.net/~igerasim/8054221/1/webrev/

Sincerely yours,
Ivan




Reply via email to