I know it's Java 1.8+, but does ThreadLocal.withInitial(Supplier<S>)
prevent that memory leak? They use their own JDK class to subclass
ThreadLocal, so that shouldn't leak.

On 8 March 2016 at 22:43, Remko Popma <remko.po...@gmail.com> wrote:

> ThreadLocals containing JDK classes (StringBuilder, etc) are not a
> problem. Their classloader is the system classloader, not the web app
> classloader, so these ThreadLocals do not have a reference to the web app
> classes and do not prevent web app classes from being garbage collected.
>
> This idiom is safe:
>
> class SafeClass {
>     // The type of this field is java.lang.ThreadLocal, and
>     // both the key (ThreadLocal) and the value (StringBuilder) are JDK 
> classes.    // This idiom is safe and will not cause memory leaks in web apps.
>     static ThreadLocal<StringBuilder> safe = new ThreadLocal<StringBuilder>();
>
>     private StringBuilder getThreadLocalStringBuilder() {
>         StringBuilder value = safe.get();
>         if (value == null) {
>             value = new StringBuilder(1024);
>             safe.set(value);
>         }
>         return value;
>     }
> }
>
> However, as soon as we create an anonymous subclass like below we cause
> memory leaks again:
>
> class MemoryLeakingClass {
>     // The type of this field is MemoryLeakingClass$1, an anonymous subclass 
> of java.lang.ThreadLocal!
>     // In a web app, the classloader of this class is the web app class 
> loader: may cause memory leak...
>     static ThreadLocal<StringBuilder> anonymousSubclass = new 
> ThreadLocal<StringBuilder>() {
>
>         @Override
>         protected StringBuilder initialValue() {
>             return new StringBuilder(1024);
>         }
>     };
> }
>
>
>
> On Wed, Mar 9, 2016 at 11:32 AM, Ralph Goers <ralph.go...@dslextreme.com>
> wrote:
>
>> I still am unclear as to why you are thinking GC-free mode won’t work in
>> web apps.  What is the issue with ThreadLocals that causes the problem?  We
>> are using ThreadLocals for other things that seem to be working.
>>
>> Ralph
>>
>> On Mar 8, 2016, at 3:05 PM, Remko Popma <remko.po...@gmail.com> wrote:
>>
>> Some of the recent changes were to fix issues introduced by the reusable
>> message idea. It is good that we are not rushing this release, and thanks
>> everyone for your patience.
>>
>> I originally wanted to make GC-free mode the default to begin with, but
>> it may be smart to initially require that users switch GC-free mode on
>> explicitly, and only make it the default after it has gained a track
>> record. (Even so, it would only be switched on automatically for non-web
>> apps.)
>>
>> The async logger performance investigation is still ongoing. I hope to be
>> able to resolve it and do the GC-free write-up including performance test
>> results in the next few weeks. I am currently on a business trip, working
>> with people creating low latency trading systems, and they have good ideas
>> on how to investigate the performance regression, so that is helpful.
>>
>> On Wed, Mar 9, 2016 at 4:01 AM, Gary Gregory <garydgreg...@gmail.com>
>> wrote:
>>
>>> I'm even more concerned now that more of the no-GC changes are coming
>>> in, still, fast and furious.
>>>
>>> I see what smells like a lot of non-OO code fly by here and there: lots
>>> if-else-if-else-if-else, as opposed to subclassing or delegation if
>>> appropriate.
>>>
>>> Are we rushing toward this no-GC goal without considering speed
>>> performance?
>>>
>>> Where are we on the async logger slow down investigation?
>>>
>>> Concerned and glad to see to much activity all at the same time,
>>> Gary
>>>
>>> On Thu, Mar 3, 2016 at 1:23 PM, Matt Sicker <boa...@gmail.com> wrote:
>>>
>>>> Remko (and anyone else who wants to try and solve this regression):
>>>>
>>>> https://www.jclarity.com/product/censum-free-trial/
>>>>
>>>> Go ahead and get the trial and the guys at JClarity will give us
>>>> licenses. I'd use your apache.org email to be safe.
>>>>
>>>> On 3 March 2016 at 11:27, Matt Sicker <boa...@gmail.com> wrote:
>>>>
>>>>> So far, Remko's proposal is language-neutral since he defined
>>>>> endianness (big endian like java, but we could use either since ByteBuffer
>>>>> supports both) and field widths..
>>>>>
>>>>> On 3 March 2016 at 03:15, Mikael Ståldal <mikael.stal...@magine.com>
>>>>> wrote:
>>>>>
>>>>>> If we are to design a new binary log event format, then I think that
>>>>>> we should make sure that it is not Java / JVM specific, and that it will 
>>>>>> be
>>>>>> reasonably easy to implement reading and writing of it on other 
>>>>>> platforms.
>>>>>>
>>>>>> On Thu, Mar 3, 2016 at 5:14 AM, Remko Popma <remko.po...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> I created https://issues.apache.org/jira/browse/LOG4J2-1305 as a
>>>>>>> write up of my current thinking on the topic and a place to discuss 
>>>>>>> ideas.
>>>>>>> Still need to add some things we discussed here (tools, endianness,
>>>>>>> versioning etc).
>>>>>>>
>>>>>>> It's a fascinating topic but I still have a lot of work to do on the
>>>>>>> GC-free epic before I can start working on this one.
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, 3 March 2016, Remko Popma <remko.po...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Not Java Serialization, I was thinking simple ByteBuffer.putLong,
>>>>>>>> putInt, putBytes. This is much more performant (
>>>>>>>> http://mechanical-sympathy.blogspot.jp/2012/07/native-cc-like-performance-for-java.html).
>>>>>>>> SBE (Simple Binary Encoding) seems overkill, but open to other 
>>>>>>>> opinions.
>>>>>>>>
>>>>>>>> The less conditional logic in there the better, so I'm not that
>>>>>>>> interested in configurability. All log event fields,
>>>>>>>> ok. ThreadContextMap/Stack keys and values: similarly to other 
>>>>>>>> repeating
>>>>>>>> strings like logger names: write to separate mapping file & only write 
>>>>>>>> int
>>>>>>>> values (for count as well as key/value indices) to the "main" log file.
>>>>>>>>
>>>>>>>> Two things we would need to decide is how to handle versioning, and
>>>>>>>> what Endianness to use.
>>>>>>>>
>>>>>>>> Version information (possibly with schema info) could be written to
>>>>>>>> the log file header.
>>>>>>>>
>>>>>>>> Endianness could also be written to the header, or we could simply
>>>>>>>> say we use network byte order (big endian). Intel chips use little 
>>>>>>>> endian,
>>>>>>>> but apparently swapping is implemented with an intrinsic and is very 
>>>>>>>> fast.
>>>>>>>>
>>>>>>>> On Thursday, 3 March 2016, Matt Sicker <boa...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>> At that point, it would be nice if it were extensible. There are
>>>>>>>>> some neat binary formats we could use that would allow for that.
>>>>>>>>>
>>>>>>>>> On 2 March 2016 at 12:09, Gary Gregory <garydgreg...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I think we'd need to provide all LogEvent fields.
>>>>>>>>>>
>>>>>>>>>> Gary
>>>>>>>>>>
>>>>>>>>>> On Wed, Mar 2, 2016 at 9:13 AM, Remko Popma <
>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> That's what I meant, I didn't make myself clear. For example, we
>>>>>>>>>>> could offer a simple binary layout:
>>>>>>>>>>> time stamp (8 bytes)
>>>>>>>>>>> level int (4 bytes)
>>>>>>>>>>> thread ID (4 bytes) - Thread names in separate file
>>>>>>>>>>> Logger ID (4 bytes) - Logger names in separate file.
>>>>>>>>>>> message length (4 bytes)
>>>>>>>>>>> message type (2 bytes)
>>>>>>>>>>> message data (variable length)
>>>>>>>>>>> throwable length (4 bytes)
>>>>>>>>>>> throwable data (variable length)
>>>>>>>>>>>
>>>>>>>>>>> It's a very different approach to logging. On the plus side,
>>>>>>>>>>> this would be extremely compact and very fast to write.
>>>>>>>>>>>
>>>>>>>>>>> On the other hand it would require a separate tool to
>>>>>>>>>>> decode/display the data in human readable form. Such a tool should 
>>>>>>>>>>> handle
>>>>>>>>>>> text messages out of the box, but for custom messages I image there 
>>>>>>>>>>> could
>>>>>>>>>>> be some plugin mechanism for custom decoders.
>>>>>>>>>>>
>>>>>>>>>>> All very interesting...
>>>>>>>>>>> :-)
>>>>>>>>>>>
>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>
>>>>>>>>>>> On 2016/03/03, at 0:01, Matt Sicker <boa...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> That's what I thought at first, but he means non-human readable
>>>>>>>>>>> formats since we all use tools to parse logs as it is (Splunk and 
>>>>>>>>>>> ELK are
>>>>>>>>>>> the big two I know of).
>>>>>>>>>>>
>>>>>>>>>>> On 2 March 2016 at 02:15, Remko Popma <remko.po...@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Re: binary logging, I think he's talking about providing an API
>>>>>>>>>>>> to log objects directly into byte buffers without turning them 
>>>>>>>>>>>> into Strings
>>>>>>>>>>>> first.
>>>>>>>>>>>>
>>>>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1274 and
>>>>>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-506
>>>>>>>>>>>>
>>>>>>>>>>>> were created with that in mind and should be a good step in
>>>>>>>>>>>> that direction.
>>>>>>>>>>>>
>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>
>>>>>>>>>>>> On 2016/03/02, at 15:11, Gary Gregory <garydgreg...@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Well, I've often wondered about creating a binary format but it
>>>>>>>>>>>> seems that you could use JSON+ZIP or BSON and get most of the 
>>>>>>>>>>>> advantages.
>>>>>>>>>>>>
>>>>>>>>>>>> Gary
>>>>>>>>>>>>
>>>>>>>>>>>> On Tue, Mar 1, 2016 at 9:12 PM, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> One other interesting thing I learned is that improper use of
>>>>>>>>>>>>> logging is a huge source of performance problems. The GC-free 
>>>>>>>>>>>>> parameterized
>>>>>>>>>>>>> message factory will help with one aspect of that (I suggested
>>>>>>>>>>>>> parameterized messages, but he countered with the Object[] that is
>>>>>>>>>>>>> created), and encouraging users to use a Supplier<String> instead 
>>>>>>>>>>>>> of
>>>>>>>>>>>>> passing parameters should help as well (especially when those 
>>>>>>>>>>>>> parameters
>>>>>>>>>>>>> have to be computed). He had some strong criticisms of logging 
>>>>>>>>>>>>> APIs
>>>>>>>>>>>>> promoting bad practices which stems all the way back to log4j1 
>>>>>>>>>>>>> and affects
>>>>>>>>>>>>> pretty much every logging API in Java (some criticisms were 
>>>>>>>>>>>>> actually
>>>>>>>>>>>>> outdated or didn't consider newer features of the API like 
>>>>>>>>>>>>> markers and the
>>>>>>>>>>>>> huge amount of filters available).
>>>>>>>>>>>>>
>>>>>>>>>>>>> His other big idea was promoting the use of binary logging
>>>>>>>>>>>>> formats because humans rarely read the raw log files as it is, 
>>>>>>>>>>>>> but it's not
>>>>>>>>>>>>> like there's a standard way to do that.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Now I kinda wonder if he'll find this thread one day and tell
>>>>>>>>>>>>> me how I misinterpreted him or something. ;)
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 1 March 2016 at 22:28, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Alright, I learned some interesting things. I'm going to get
>>>>>>>>>>>>>> us some tools we can use to try and profile this. Otherwise, he 
>>>>>>>>>>>>>> did suggest
>>>>>>>>>>>>>> trying out this project:
>>>>>>>>>>>>>> https://github.com/RichardWarburton/honest-profiler
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 1 March 2016 at 19:31, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> So far he's said something about using lambdas for lazy
>>>>>>>>>>>>>>> evaluation (though I don't think that would actually help us at 
>>>>>>>>>>>>>>> all). I'll
>>>>>>>>>>>>>>> try to talk to him one-on-one afterward to delve more into this.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 1 March 2016 at 18:13, Ralph Goers <
>>>>>>>>>>>>>>> ralph.go...@dslextreme.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Actually, most of the tests have the commands in the
>>>>>>>>>>>>>>>> comments right in the class. Just cut and past.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Ralph
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Mar 1, 2016, at 1:43 PM, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I can't even figure out how to execute the simple perf test
>>>>>>>>>>>>>>>> class. IntelliJ gives me some annotation processing error, and 
>>>>>>>>>>>>>>>> doing it
>>>>>>>>>>>>>>>> from the command line is turning into a classpath nightmare to 
>>>>>>>>>>>>>>>> figure out
>>>>>>>>>>>>>>>> what jars are needed to execute the test manually.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 1 March 2016 at 11:34, Gary Gregory <
>>>>>>>>>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Before the talk: Hi, I'm Remko, I help on Apache Log4j,
>>>>>>>>>>>>>>>>> are you available after the preso to talk about some issue we 
>>>>>>>>>>>>>>>>> are seeing?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Gary
>>>>>>>>>>>>>>>>> On Mar 1, 2016 8:29 AM, "Matt Sicker" <boa...@gmail.com>
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I'm attending a JUG meetup tonight with Kirk Pepperdine
>>>>>>>>>>>>>>>>>> presenting. It's supposed to be a Java performance workshop 
>>>>>>>>>>>>>>>>>> type of thing,
>>>>>>>>>>>>>>>>>> so if you've got a decent way to ask about it, I could see 
>>>>>>>>>>>>>>>>>> if he can help
>>>>>>>>>>>>>>>>>> figure out this regression. I can at least show off the 
>>>>>>>>>>>>>>>>>> SimplePerfTest and
>>>>>>>>>>>>>>>>>> any microbenchmarks we have.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 28 February 2016 at 11:54, Matt Sicker <
>>>>>>>>>>>>>>>>>> boa...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Take a look at the git bisect command. Might help you
>>>>>>>>>>>>>>>>>>> find which changes caused the problem.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Sunday, 28 February 2016, Gary Gregory <
>>>>>>>>>>>>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Thank you for digging in Remko. This is will be a nice
>>>>>>>>>>>>>>>>>>>> theme to publicize when you get it figured out.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Gary
>>>>>>>>>>>>>>>>>>>> On Feb 28, 2016 4:08 AM, "Remko Popma" <
>>>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> After removing the potential impact of appenders and
>>>>>>>>>>>>>>>>>>>>> layouts by testing with
>>>>>>>>>>>>>>>>>>>>> log4j-core\src\test\resources\perf-CountingNoOpAppender.xml
>>>>>>>>>>>>>>>>>>>>>  and
>>>>>>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.async.perftest.SimplePerfTest,
>>>>>>>>>>>>>>>>>>>>>  I've confirmed
>>>>>>>>>>>>>>>>>>>>> my initial numbers:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> 2.0: 7.5M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.1: 6M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.2: 6M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.3: 6M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.4: 4.5M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.5: 4M ops/sec
>>>>>>>>>>>>>>>>>>>>> 2.6: 2M ops/sec
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I tried reverting various changes made to AsyncLogger
>>>>>>>>>>>>>>>>>>>>> since 2.0, performance improves a little up to 4M ops/sec.
>>>>>>>>>>>>>>>>>>>>> However, when completely reverting AsyncLogger source
>>>>>>>>>>>>>>>>>>>>> to the 2.0 version, performance is back to 7.5M ops/sec.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> I'll try starting from the 2.0 source and getting back
>>>>>>>>>>>>>>>>>>>>> to 2.6 functionality without losing performance...
>>>>>>>>>>>>>>>>>>>>> (Lengthy process...)
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Sat, Feb 27, 2016 at 12:18 PM, Remko Popma <
>>>>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> This is the PerfTestDriver test class (in
>>>>>>>>>>>>>>>>>>>>>> log4j-core/test, package ...async.perf).
>>>>>>>>>>>>>>>>>>>>>> Mainly perf3PlainNoLocation.xml:
>>>>>>>>>>>>>>>>>>>>>> RollingRandomAccessFileAppender, PatternLayout, all
>>>>>>>>>>>>>>>>>>>>>> loggers are AsyncLoggers, logging a simple string 
>>>>>>>>>>>>>>>>>>>>>> without parameters.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Profiling with YourKit did not tell me anything
>>>>>>>>>>>>>>>>>>>>>> useful.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I'm now eliminating the effect of Layouts/Appenders,
>>>>>>>>>>>>>>>>>>>>>> using CountingNoOpAppender, and seeing similar numbers. 
>>>>>>>>>>>>>>>>>>>>>> So this seems to be
>>>>>>>>>>>>>>>>>>>>>> mostly an issue in AsyncLogger.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I'll let you know when I find out more.
>>>>>>>>>>>>>>>>>>>>>> There's a lot of trial and error here, so this may
>>>>>>>>>>>>>>>>>>>>>> take a while...
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Remko
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 2016/02/26, at 21:02, Mikael Ståldal <
>>>>>>>>>>>>>>>>>>>>>> mikael.stal...@magine.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Which components (appenders, layouts) are involved in
>>>>>>>>>>>>>>>>>>>>>> the tests? Would it be possible to do some profiling to 
>>>>>>>>>>>>>>>>>>>>>> see if there is any
>>>>>>>>>>>>>>>>>>>>>> particular component which is to blame?
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On Fri, Feb 26, 2016 at 12:51 PM, Remko Popma <
>>>>>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> To give you some rough impression on concrete
>>>>>>>>>>>>>>>>>>>>>>> numbers for this trend:
>>>>>>>>>>>>>>>>>>>>>>> 2.0: ~6M ops/sec
>>>>>>>>>>>>>>>>>>>>>>> 2.1-2.2: ~5M ops/sec
>>>>>>>>>>>>>>>>>>>>>>> 2.3-2.4: ~3-4M ops/sec
>>>>>>>>>>>>>>>>>>>>>>> 2.5: ~3M ops/sec
>>>>>>>>>>>>>>>>>>>>>>> 2.6: ~2M ops/sec
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Friday, 26 February 2016, Remko Popma <
>>>>>>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> You're absolutely right. I still have quite a few
>>>>>>>>>>>>>>>>>>>>>>>> unit tests to add.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Initial perf testing shows a downward trend in
>>>>>>>>>>>>>>>>>>>>>>>> Async Logger performance with every release. (Logging 
>>>>>>>>>>>>>>>>>>>>>>>> simple
>>>>>>>>>>>>>>>>>>>>>>>> string messages without params.) This is worrisome and 
>>>>>>>>>>>>>>>>>>>>>>>> I'm focusing on
>>>>>>>>>>>>>>>>>>>>>>>> figuring that out first: this will likely involve 
>>>>>>>>>>>>>>>>>>>>>>>> additional code changes
>>>>>>>>>>>>>>>>>>>>>>>> and I'll add more tests after that.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On 2016/02/26, at 10:38, Gary Gregory <
>>>>>>>>>>>>>>>>>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Wow, I love the activity we are seeing toward 2.6!
>>>>>>>>>>>>>>>>>>>>>>>> All the perf work on top of an existing sizable change 
>>>>>>>>>>>>>>>>>>>>>>>> set. Very exciting
>>>>>>>>>>>>>>>>>>>>>>>> indeed.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> There sure are a lot of changes coming in. I hope
>>>>>>>>>>>>>>>>>>>>>>>> that we all can pitch in to make sure most if not all 
>>>>>>>>>>>>>>>>>>>>>>>> of these changes get
>>>>>>>>>>>>>>>>>>>>>>>> code coverage from unit tests. I've not checked 
>>>>>>>>>>>>>>>>>>>>>>>> closely, but it seems like
>>>>>>>>>>>>>>>>>>>>>>>> we may not have good coverage _yet_, or do I have the 
>>>>>>>>>>>>>>>>>>>>>>>> wrong impression?
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I want to make sure we keep our stability in tip
>>>>>>>>>>>>>>>>>>>>>>>> top shape :-) and that we have no regression from 
>>>>>>>>>>>>>>>>>>>>>>>> previous releases.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Gary
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>>>>>>>>>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/tahchiev/>
>>>>>>>>>>>>>>>>>>>>>>>> Spring Batch in Action
>>>>>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/templier/>
>>>>>>>>>>>>>>>>>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>>>>>>>>>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>>>>>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>> [image: MagineTV]
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> *Mikael Ståldal*
>>>>>>>>>>>>>>>>>>>>>> Senior software developer
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> *Magine TV*
>>>>>>>>>>>>>>>>>>>>>> mikael.stal...@magine.com
>>>>>>>>>>>>>>>>>>>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |
>>>>>>>>>>>>>>>>>>>>>> www.magine.com
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Privileged and/or Confidential Information may be
>>>>>>>>>>>>>>>>>>>>>> contained in this message. If you are not the addressee 
>>>>>>>>>>>>>>>>>>>>>> indicated in this
>>>>>>>>>>>>>>>>>>>>>> message
>>>>>>>>>>>>>>>>>>>>>> (or responsible for delivery of the message to such a
>>>>>>>>>>>>>>>>>>>>>> person), you may not copy or deliver this message to 
>>>>>>>>>>>>>>>>>>>>>> anyone. In such case,
>>>>>>>>>>>>>>>>>>>>>> you should destroy this message and kindly notify the
>>>>>>>>>>>>>>>>>>>>>> sender by reply email.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>>>> <http://www.manning.com/tahchiev/>
>>>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>> <http://www.manning.com/tahchiev/>
>>>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> [image: MagineTV]
>>>>>>
>>>>>> *Mikael Ståldal*
>>>>>> Senior software developer
>>>>>>
>>>>>> *Magine TV*
>>>>>> mikael.stal...@magine.com
>>>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>>>>>>
>>>>>> Privileged and/or Confidential Information may be contained in this
>>>>>> message. If you are not the addressee indicated in this message
>>>>>> (or responsible for delivery of the message to such a person), you
>>>>>> may not copy or deliver this message to anyone. In such case,
>>>>>> you should destroy this message and kindly notify the sender by reply
>>>>>> email.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matt Sicker <boa...@gmail.com>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Matt Sicker <boa...@gmail.com>
>>>>
>>>
>>>
>>>
>>> --
>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>
>>
>>
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to