You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by Mikael Ståldal <mi...@magine.com> on 2017/05/15 15:10:49 UTC

Failing unit tests in log4j-core

In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core fail. I
guess that's because I have added this test dependency (which has a lot of
transitive dependencies):

<dependency>
  <groupId>com.github.tomakehurst</groupId>
  <artifactId>wiremock</artifactId>
  <scope>test</scope>
  <version>2.6.0</version>
</dependency>


Any ideas what may cause these failures?


[ERROR]
AsyncLoggerConfigThreadContextDefaultTest>AbstractAsyncThreadContextTestBase.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTestBase.checkResult:184
AsyncLoggerTest.log: line 1 expected:<...value [stackvalue] {[KEY=mapvalue,
configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
DefaultThre...> but was:<...value [stackvalue] {[count=1,
configProp2=configValue2, configProp=configValue, KEY=mapvalue]} WEBAPP
DefaultThre...>
[ERROR]
AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadContextTestBase.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTestBase.checkResult:184
AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
{KEY=mapvalue, configProp=configValue, configProp2=configValue2, count=1]}
COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
COPY_ON_WRITE Copy...>
[ERROR]
AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTestBase.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTestBase.checkResult:184
AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
{KEY=mapvalue, configProp=configValue, configProp2=configValue2, count=1]}
WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
DefaultThre...>
[ERROR]
AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadContextTestBase.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTestBase.checkResult:184
AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue [stackvalue]
{KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
GARBAGE_FREE Garba...>
[ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
expected:<[DEBUG
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$ParameterizedLoggingThing
getX: values x=3 y=4 z=5]> but was:<[INFO
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
[ObjectLoggingThing1 y=999]]>
[ERROR]
NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
expected:<[DEBUG
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$ParameterizedLoggingThing
getX: values x=3 y=4 z=5]> but was:<[INFO
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest next:
it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
[ERROR]   NestedLoggingFromToStringTest.testNestedLoggingInLastArgument:101
expected:<[DEBUG
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$ParameterizedLoggingThing
getX: values x=3 y=4 z=5]> but was:<[INFO
org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest main:
argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>


-- 
[image: MagineTV]

*Mikael Ståldal*
Senior software developer

*Magine TV*
mikael.staldal@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.

Re: Failing unit tests in log4j-core

Posted by Mikael Ståldal <mi...@magine.com>.
I was able to fix this by adding


@BeforeClass

public static void beforeClass() {

  System.setProperty("log4j2.is.webapp", "false");

}


to the failing tests.


However, does this mean that the fix for LOG4J2-1583 does not work when
Servlet API is present? See NestedLoggingFromToStringTest. Remko?

On May 18, 2017 6:21 PM, "Mikael Ståldal" <mi...@magine.com> wrote:

> I have narrowed down the problem to the presence of Servlet API on
> classpath. Probably due to that our code check for this and change
> behaviour. See the Constants class.
>
> On May 18, 2017 6:15 PM, "Mikael Ståldal" <mi...@magine.com>
> wrote:
>
>> I have narrowed down the problem to the presence of Server
>>
>> On May 15, 2017 6:34 PM, "Ralph Goers" <ra...@dslextreme.com>
>> wrote:
>>
>>> Transitive dependencies are always subordinate to dependencies specified
>>> in the pom so changing the order would never matter.
>>>
>>> What makes you think this has anything to do with dependency versions?
>>>
>>> Ralph
>>>
>>> > On May 15, 2017, at 9:25 AM, Gary Gregory <ga...@gmail.com>
>>> wrote:
>>> >
>>> > I _was_ worth a try :-(
>>> >
>>> > On Mon, May 15, 2017 at 8:30 AM, Mikael Ståldal <
>>> mikael.staldal@magine.com>
>>> > wrote:
>>> >
>>> >> I tried to move it to the very end, it did not help.
>>> >>
>>> >> On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <garydgregory@gmail.com
>>> >
>>> >> wrote:
>>> >>
>>> >>> What if you move that dep to the end? Maybe its transitive deps
>>> overrides
>>> >>> over jars.
>>> >>>
>>> >>> Gary
>>> >>>
>>> >>> On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <
>>> >> mikael.staldal@magine.com
>>> >>>>
>>> >>> wrote:
>>> >>>
>>> >>>> In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
>>> >>> fail. I
>>> >>>> guess that's because I have added this test dependency (which has a
>>> lot
>>> >>> of
>>> >>>> transitive dependencies):
>>> >>>>
>>> >>>> <dependency>
>>> >>>>  <groupId>com.github.tomakehurst</groupId>
>>> >>>>  <artifactId>wiremock</artifactId>
>>> >>>>  <scope>test</scope>
>>> >>>>  <version>2.6.0</version>
>>> >>>> </dependency>
>>> >>>>
>>> >>>>
>>> >>>> Any ideas what may cause these failures?
>>> >>>>
>>> >>>>
>>> >>>> [ERROR]
>>> >>>> AsyncLoggerConfigThreadContextDefaultTest>
>>> >> AbstractAsyncThreadContextTest
>>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>> >>>> Base.checkResult:184
>>> >>>> AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
>>> >>> {[KEY=mapvalue,
>>> >>>> configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
>>> >>>> DefaultThre...> but was:<...value [stackvalue] {[count=1,
>>> >>>> configProp2=configValue2, configProp=configValue, KEY=mapvalue]}
>>> WEBAPP
>>> >>>> DefaultThre...>
>>> >>>> [ERROR]
>>> >>>> AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadC
>>> ontextTest
>>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>> >>>> Base.checkResult:184
>>> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>>> >> [stackvalue]
>>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>>> >>> count=1]}
>>> >>>> COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>>> >>>> COPY_ON_WRITE Copy...>
>>> >>>> [ERROR]
>>> >>>> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
>>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>> >>>> Base.checkResult:184
>>> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>>> >> [stackvalue]
>>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>>> >>> count=1]}
>>> >>>> WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>>> WEBAPP
>>> >>>> DefaultThre...>
>>> >>>> [ERROR]
>>> >>>> AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadC
>>> ontextTest
>>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>> >>>> Base.checkResult:184
>>> >>>> AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
>>> >>> [stackvalue]
>>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
>>> >>>> GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>>> >>>> GARBAGE_FREE Garba...>
>>> >>>> [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
>>> >>>> expected:<[DEBUG
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>> >>>> ParameterizedLoggingThing
>>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>>> >>>> [ObjectLoggingThing1 y=999]]>
>>> >>>> [ERROR]
>>> >>>> NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
>>> >>>> expected:<[DEBUG
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>> >>>> ParameterizedLoggingThing
>>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>>> next:
>>> >>>> it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
>>> >>>> [ERROR]   NestedLoggingFromToStringTest
>>> .testNestedLoggingInLastArgumen
>>> >>>> t:101
>>> >>>> expected:<[DEBUG
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>> >>>> ParameterizedLoggingThing
>>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>>> main:
>>> >>>> argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
>>> >>>>
>>> >>>>
>>> >>>> --
>>> >>>> [image: MagineTV]
>>> >>>>
>>> >>>> *Mikael Ståldal*
>>> >>>> Senior software developer
>>> >>>>
>>> >>>> *Magine TV*
>>> >>>> mikael.staldal@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.
>>> >>>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> >>> Java Persistence with Hibernate, Second Edition
>>> >>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
>>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
>>> >>> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b
>>> 1af9fe6a2b8>
>>> >>>
>>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=
>>> >>> 1617290459>
>>> >>> JUnit in Action, Second Edition
>>> >>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
>>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
>>> >>> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac
>>> 902a24de4
>>> >> 18%22
>>> >>>>
>>> >>>
>>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=
>>> >>> 1935182021>
>>> >>> Spring Batch in Action
>>> >>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
>>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
>>> >>> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
>>> >>> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=
>>> >>> 1935182951>
>>> >>> 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.staldal@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.
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> > Java Persistence with Hibernate, Second Edition
>>> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?i
>>> e=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkC
>>> ode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>>> >
>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=1617290459>
>>> > JUnit in Action, Second Edition
>>> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?i
>>> e=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkC
>>> ode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
>>> >
>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=1935182021>
>>> > Spring Batch in Action
>>> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?i
>>> e=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkC
>>> ode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blin
>>> k_id%7D%7D%22%3ESpring+Batch+in+Action>
>>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>>> am2&o=1&a=1935182951>
>>> > Blog: http://garygregory.wordpress.com
>>> > Home: http://garygregory.com/
>>> > Tweet! http://twitter.com/GaryGregory
>>>
>>>
>>>

Re: Failing unit tests in log4j-core

Posted by Mikael Ståldal <mi...@magine.com>.
I have narrowed down the problem to the presence of Servlet API on
classpath. Probably due to that our code check for this and change
behaviour. See the Constants class.

On May 18, 2017 6:15 PM, "Mikael Ståldal" <mi...@magine.com> wrote:

> I have narrowed down the problem to the presence of Server
>
> On May 15, 2017 6:34 PM, "Ralph Goers" <ra...@dslextreme.com> wrote:
>
>> Transitive dependencies are always subordinate to dependencies specified
>> in the pom so changing the order would never matter.
>>
>> What makes you think this has anything to do with dependency versions?
>>
>> Ralph
>>
>> > On May 15, 2017, at 9:25 AM, Gary Gregory <ga...@gmail.com>
>> wrote:
>> >
>> > I _was_ worth a try :-(
>> >
>> > On Mon, May 15, 2017 at 8:30 AM, Mikael Ståldal <
>> mikael.staldal@magine.com>
>> > wrote:
>> >
>> >> I tried to move it to the very end, it did not help.
>> >>
>> >> On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <ga...@gmail.com>
>> >> wrote:
>> >>
>> >>> What if you move that dep to the end? Maybe its transitive deps
>> overrides
>> >>> over jars.
>> >>>
>> >>> Gary
>> >>>
>> >>> On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <
>> >> mikael.staldal@magine.com
>> >>>>
>> >>> wrote:
>> >>>
>> >>>> In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
>> >>> fail. I
>> >>>> guess that's because I have added this test dependency (which has a
>> lot
>> >>> of
>> >>>> transitive dependencies):
>> >>>>
>> >>>> <dependency>
>> >>>>  <groupId>com.github.tomakehurst</groupId>
>> >>>>  <artifactId>wiremock</artifactId>
>> >>>>  <scope>test</scope>
>> >>>>  <version>2.6.0</version>
>> >>>> </dependency>
>> >>>>
>> >>>>
>> >>>> Any ideas what may cause these failures?
>> >>>>
>> >>>>
>> >>>> [ERROR]
>> >>>> AsyncLoggerConfigThreadContextDefaultTest>
>> >> AbstractAsyncThreadContextTest
>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>> >>>> Base.checkResult:184
>> >>>> AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
>> >>> {[KEY=mapvalue,
>> >>>> configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
>> >>>> DefaultThre...> but was:<...value [stackvalue] {[count=1,
>> >>>> configProp2=configValue2, configProp=configValue, KEY=mapvalue]}
>> WEBAPP
>> >>>> DefaultThre...>
>> >>>> [ERROR]
>> >>>> AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadC
>> ontextTest
>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>> >>>> Base.checkResult:184
>> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>> >> [stackvalue]
>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>> >>> count=1]}
>> >>>> COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>> >>>> COPY_ON_WRITE Copy...>
>> >>>> [ERROR]
>> >>>> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>> >>>> Base.checkResult:184
>> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>> >> [stackvalue]
>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>> >>> count=1]}
>> >>>> WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>> WEBAPP
>> >>>> DefaultThre...>
>> >>>> [ERROR]
>> >>>> AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadC
>> ontextTest
>> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>> >>>> Base.checkResult:184
>> >>>> AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
>> >>> [stackvalue]
>> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
>> >>>> GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>> >>>> GARBAGE_FREE Garba...>
>> >>>> [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
>> >>>> expected:<[DEBUG
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>> >>>> ParameterizedLoggingThing
>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>> >>>> [ObjectLoggingThing1 y=999]]>
>> >>>> [ERROR]
>> >>>> NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
>> >>>> expected:<[DEBUG
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>> >>>> ParameterizedLoggingThing
>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>> next:
>> >>>> it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
>> >>>> [ERROR]   NestedLoggingFromToStringTest.
>> testNestedLoggingInLastArgumen
>> >>>> t:101
>> >>>> expected:<[DEBUG
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>> >>>> ParameterizedLoggingThing
>> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>> main:
>> >>>> argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> [image: MagineTV]
>> >>>>
>> >>>> *Mikael Ståldal*
>> >>>> Senior software developer
>> >>>>
>> >>>> *Magine TV*
>> >>>> mikael.staldal@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.
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>> >>> Java Persistence with Hibernate, Second Edition
>> >>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
>> >>> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b
>> 1af9fe6a2b8>
>> >>>
>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=
>> >>> 1617290459>
>> >>> JUnit in Action, Second Edition
>> >>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
>> >>> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4
>> >> 18%22
>> >>>>
>> >>>
>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=
>> >>> 1935182021>
>> >>> Spring Batch in Action
>> >>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
>> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
>> >>> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
>> >>> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=
>> >>> 1935182951>
>> >>> 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.staldal@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.
>> >>
>> >
>> >
>> >
>> > --
>> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
>> > Java Persistence with Hibernate, Second Edition
>> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?
>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&link
>> Code=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>> >
>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=1617290459>
>> > JUnit in Action, Second Edition
>> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?
>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&link
>> Code=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
>> >
>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=1935182021>
>> > Spring Batch in Action
>> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?
>> ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&link
>> Code=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Bli
>> nk_id%7D%7D%22%3ESpring+Batch+in+Action>
>> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=
>> am2&o=1&a=1935182951>
>> > Blog: http://garygregory.wordpress.com
>> > Home: http://garygregory.com/
>> > Tweet! http://twitter.com/GaryGregory
>>
>>
>>

Re: Failing unit tests in log4j-core

Posted by Mikael Ståldal <mi...@magine.com>.
I have narrowed down the problem to the presence of Server

On May 15, 2017 6:34 PM, "Ralph Goers" <ra...@dslextreme.com> wrote:

> Transitive dependencies are always subordinate to dependencies specified
> in the pom so changing the order would never matter.
>
> What makes you think this has anything to do with dependency versions?
>
> Ralph
>
> > On May 15, 2017, at 9:25 AM, Gary Gregory <ga...@gmail.com>
> wrote:
> >
> > I _was_ worth a try :-(
> >
> > On Mon, May 15, 2017 at 8:30 AM, Mikael Ståldal <
> mikael.staldal@magine.com>
> > wrote:
> >
> >> I tried to move it to the very end, it did not help.
> >>
> >> On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <ga...@gmail.com>
> >> wrote:
> >>
> >>> What if you move that dep to the end? Maybe its transitive deps
> overrides
> >>> over jars.
> >>>
> >>> Gary
> >>>
> >>> On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <
> >> mikael.staldal@magine.com
> >>>>
> >>> wrote:
> >>>
> >>>> In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
> >>> fail. I
> >>>> guess that's because I have added this test dependency (which has a
> lot
> >>> of
> >>>> transitive dependencies):
> >>>>
> >>>> <dependency>
> >>>>  <groupId>com.github.tomakehurst</groupId>
> >>>>  <artifactId>wiremock</artifactId>
> >>>>  <scope>test</scope>
> >>>>  <version>2.6.0</version>
> >>>> </dependency>
> >>>>
> >>>>
> >>>> Any ideas what may cause these failures?
> >>>>
> >>>>
> >>>> [ERROR]
> >>>> AsyncLoggerConfigThreadContextDefaultTest>
> >> AbstractAsyncThreadContextTest
> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> >>>> Base.checkResult:184
> >>>> AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
> >>> {[KEY=mapvalue,
> >>>> configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
> >>>> DefaultThre...> but was:<...value [stackvalue] {[count=1,
> >>>> configProp2=configValue2, configProp=configValue, KEY=mapvalue]}
> WEBAPP
> >>>> DefaultThre...>
> >>>> [ERROR]
> >>>> AsyncLoggerThreadContextCopyOnWriteTest>
> AbstractAsyncThreadContextTest
> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> >>>> Base.checkResult:184
> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
> >> [stackvalue]
> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> >>> count=1]}
> >>>> COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> >>>> COPY_ON_WRITE Copy...>
> >>>> [ERROR]
> >>>> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> >>>> Base.checkResult:184
> >>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
> >> [stackvalue]
> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> >>> count=1]}
> >>>> WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
> >>>> DefaultThre...>
> >>>> [ERROR]
> >>>> AsyncLoggerThreadContextGarbageFreeTest>
> AbstractAsyncThreadContextTest
> >>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> >>>> Base.checkResult:184
> >>>> AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
> >>> [stackvalue]
> >>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
> >>>> GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> >>>> GARBAGE_FREE Garba...>
> >>>> [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
> >>>> expected:<[DEBUG
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> >>>> ParameterizedLoggingThing
> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> >>>> [ObjectLoggingThing1 y=999]]>
> >>>> [ERROR]
> >>>> NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
> >>>> expected:<[DEBUG
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> >>>> ParameterizedLoggingThing
> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> next:
> >>>> it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
> >>>> [ERROR]   NestedLoggingFromToStringTest.
> testNestedLoggingInLastArgumen
> >>>> t:101
> >>>> expected:<[DEBUG
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> >>>> ParameterizedLoggingThing
> >>>> getX: values x=3 y=4 z=5]> but was:<[INFO
> >>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> main:
> >>>> argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
> >>>>
> >>>>
> >>>> --
> >>>> [image: MagineTV]
> >>>>
> >>>> *Mikael Ståldal*
> >>>> Senior software developer
> >>>>
> >>>> *Magine TV*
> >>>> mikael.staldal@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.
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
> >>> Java Persistence with Hibernate, Second Edition
> >>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> >>> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2
> b8>
> >>>
> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> >>> 1617290459>
> >>> JUnit in Action, Second Edition
> >>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> >>> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4
> >> 18%22
> >>>>
> >>>
> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> >>> 1935182021>
> >>> Spring Batch in Action
> >>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> >>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> >>> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> >>> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> >>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> >>> 1935182951>
> >>> 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.staldal@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.
> >>
> >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> > Java Persistence with Hibernate, Second Edition
> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1617290459>
> > JUnit in Action, Second Edition
> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22
> >
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182021>
> > Spring Batch in Action
> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182951>
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
>
>
>

Re: Failing unit tests in log4j-core

Posted by Ralph Goers <ra...@dslextreme.com>.
Transitive dependencies are always subordinate to dependencies specified in the pom so changing the order would never matter.

What makes you think this has anything to do with dependency versions?

Ralph

> On May 15, 2017, at 9:25 AM, Gary Gregory <ga...@gmail.com> wrote:
> 
> I _was_ worth a try :-(
> 
> On Mon, May 15, 2017 at 8:30 AM, Mikael Ståldal <mi...@magine.com>
> wrote:
> 
>> I tried to move it to the very end, it did not help.
>> 
>> On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <ga...@gmail.com>
>> wrote:
>> 
>>> What if you move that dep to the end? Maybe its transitive deps overrides
>>> over jars.
>>> 
>>> Gary
>>> 
>>> On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <
>> mikael.staldal@magine.com
>>>> 
>>> wrote:
>>> 
>>>> In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
>>> fail. I
>>>> guess that's because I have added this test dependency (which has a lot
>>> of
>>>> transitive dependencies):
>>>> 
>>>> <dependency>
>>>>  <groupId>com.github.tomakehurst</groupId>
>>>>  <artifactId>wiremock</artifactId>
>>>>  <scope>test</scope>
>>>>  <version>2.6.0</version>
>>>> </dependency>
>>>> 
>>>> 
>>>> Any ideas what may cause these failures?
>>>> 
>>>> 
>>>> [ERROR]
>>>> AsyncLoggerConfigThreadContextDefaultTest>
>> AbstractAsyncThreadContextTest
>>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>>> Base.checkResult:184
>>>> AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
>>> {[KEY=mapvalue,
>>>> configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
>>>> DefaultThre...> but was:<...value [stackvalue] {[count=1,
>>>> configProp2=configValue2, configProp=configValue, KEY=mapvalue]} WEBAPP
>>>> DefaultThre...>
>>>> [ERROR]
>>>> AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadContextTest
>>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>>> Base.checkResult:184
>>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>> [stackvalue]
>>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>>> count=1]}
>>>> COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>>>> COPY_ON_WRITE Copy...>
>>>> [ERROR]
>>>> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
>>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>>> Base.checkResult:184
>>>> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
>> [stackvalue]
>>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
>>> count=1]}
>>>> WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
>>>> DefaultThre...>
>>>> [ERROR]
>>>> AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadContextTest
>>>> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
>>>> Base.checkResult:184
>>>> AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
>>> [stackvalue]
>>>> {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
>>>> GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
>>>> GARBAGE_FREE Garba...>
>>>> [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
>>>> expected:<[DEBUG
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>>> ParameterizedLoggingThing
>>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
>>>> [ObjectLoggingThing1 y=999]]>
>>>> [ERROR]
>>>> NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
>>>> expected:<[DEBUG
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>>> ParameterizedLoggingThing
>>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest next:
>>>> it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
>>>> [ERROR]   NestedLoggingFromToStringTest.testNestedLoggingInLastArgumen
>>>> t:101
>>>> expected:<[DEBUG
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
>>>> ParameterizedLoggingThing
>>>> getX: values x=3 y=4 z=5]> but was:<[INFO
>>>> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest main:
>>>> argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
>>>> 
>>>> 
>>>> --
>>>> [image: MagineTV]
>>>> 
>>>> *Mikael Ståldal*
>>>> Senior software developer
>>>> 
>>>> *Magine TV*
>>>> mikael.staldal@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.
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> E-Mail: garydgregory@gmail.com | ggregory@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
>>> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>>> 
>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
>>> 1617290459>
>>> JUnit in Action, Second Edition
>>> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
>>> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4
>> 18%22
>>>> 
>>> 
>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
>>> 1935182021>
>>> Spring Batch in Action
>>> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
>>> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
>>> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
>>> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
>>> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
>>> 1935182951>
>>> 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.staldal@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.
>> 
> 
> 
> 
> -- 
> E-Mail: garydgregory@gmail.com | ggregory@apache.org
> Java Persistence with Hibernate, Second Edition
> <https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
> 
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
> JUnit in Action, Second Edition
> <https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>
> 
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
> Spring Batch in Action
> <https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
> Blog: http://garygregory.wordpress.com
> Home: http://garygregory.com/
> Tweet! http://twitter.com/GaryGregory



Re: Failing unit tests in log4j-core

Posted by Gary Gregory <ga...@gmail.com>.
I _was_ worth a try :-(

On Mon, May 15, 2017 at 8:30 AM, Mikael Ståldal <mi...@magine.com>
wrote:

> I tried to move it to the very end, it did not help.
>
> On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <ga...@gmail.com>
> wrote:
>
> > What if you move that dep to the end? Maybe its transitive deps overrides
> > over jars.
> >
> > Gary
> >
> > On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <
> mikael.staldal@magine.com
> > >
> > wrote:
> >
> > > In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
> > fail. I
> > > guess that's because I have added this test dependency (which has a lot
> > of
> > > transitive dependencies):
> > >
> > > <dependency>
> > >   <groupId>com.github.tomakehurst</groupId>
> > >   <artifactId>wiremock</artifactId>
> > >   <scope>test</scope>
> > >   <version>2.6.0</version>
> > > </dependency>
> > >
> > >
> > > Any ideas what may cause these failures?
> > >
> > >
> > > [ERROR]
> > > AsyncLoggerConfigThreadContextDefaultTest>
> AbstractAsyncThreadContextTest
> > > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > > Base.checkResult:184
> > > AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
> > {[KEY=mapvalue,
> > > configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
> > > DefaultThre...> but was:<...value [stackvalue] {[count=1,
> > > configProp2=configValue2, configProp=configValue, KEY=mapvalue]} WEBAPP
> > > DefaultThre...>
> > > [ERROR]
> > > AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadContextTest
> > > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > > Base.checkResult:184
> > > AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
> [stackvalue]
> > > {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> > count=1]}
> > > COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> > > COPY_ON_WRITE Copy...>
> > > [ERROR]
> > > AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
> > > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > > Base.checkResult:184
> > > AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue
> [stackvalue]
> > > {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> > count=1]}
> > > WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
> > > DefaultThre...>
> > > [ERROR]
> > > AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadContextTest
> > > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > > Base.checkResult:184
> > > AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
> > [stackvalue]
> > > {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
> > > GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> > > GARBAGE_FREE Garba...>
> > > [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
> > > expected:<[DEBUG
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > > ParameterizedLoggingThing
> > > getX: values x=3 y=4 z=5]> but was:<[INFO
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> > > [ObjectLoggingThing1 y=999]]>
> > > [ERROR]
> > > NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
> > > expected:<[DEBUG
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > > ParameterizedLoggingThing
> > > getX: values x=3 y=4 z=5]> but was:<[INFO
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest next:
> > > it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
> > > [ERROR]   NestedLoggingFromToStringTest.testNestedLoggingInLastArgumen
> > > t:101
> > > expected:<[DEBUG
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > > ParameterizedLoggingThing
> > > getX: values x=3 y=4 z=5]> but was:<[INFO
> > > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest main:
> > > argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
> > >
> > >
> > > --
> > > [image: MagineTV]
> > >
> > > *Mikael Ståldal*
> > > Senior software developer
> > >
> > > *Magine TV*
> > > mikael.staldal@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.
> > >
> >
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> > Java Persistence with Hibernate, Second Edition
> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> > 1617290459>
> > JUnit in Action, Second Edition
> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4
> 18%22
> > >
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> > 1935182021>
> > Spring Batch in Action
> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> > 1935182951>
> > 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.staldal@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.
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Re: Failing unit tests in log4j-core

Posted by Mikael Ståldal <mi...@magine.com>.
I tried to move it to the very end, it did not help.

On Mon, May 15, 2017 at 5:12 PM, Gary Gregory <ga...@gmail.com>
wrote:

> What if you move that dep to the end? Maybe its transitive deps overrides
> over jars.
>
> Gary
>
> On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <mikael.staldal@magine.com
> >
> wrote:
>
> > In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core
> fail. I
> > guess that's because I have added this test dependency (which has a lot
> of
> > transitive dependencies):
> >
> > <dependency>
> >   <groupId>com.github.tomakehurst</groupId>
> >   <artifactId>wiremock</artifactId>
> >   <scope>test</scope>
> >   <version>2.6.0</version>
> > </dependency>
> >
> >
> > Any ideas what may cause these failures?
> >
> >
> > [ERROR]
> > AsyncLoggerConfigThreadContextDefaultTest>AbstractAsyncThreadContextTest
> > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > Base.checkResult:184
> > AsyncLoggerTest.log: line 1 expected:<...value [stackvalue]
> {[KEY=mapvalue,
> > configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
> > DefaultThre...> but was:<...value [stackvalue] {[count=1,
> > configProp2=configValue2, configProp=configValue, KEY=mapvalue]} WEBAPP
> > DefaultThre...>
> > [ERROR]
> > AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadContextTest
> > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > Base.checkResult:184
> > AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
> > {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> count=1]}
> > COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> > COPY_ON_WRITE Copy...>
> > [ERROR]
> > AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
> > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > Base.checkResult:184
> > AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
> > {KEY=mapvalue, configProp=configValue, configProp2=configValue2,
> count=1]}
> > WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
> > DefaultThre...>
> > [ERROR]
> > AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadContextTest
> > Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> > Base.checkResult:184
> > AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue
> [stackvalue]
> > {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
> > GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> > GARBAGE_FREE Garba...>
> > [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
> > expected:<[DEBUG
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > ParameterizedLoggingThing
> > getX: values x=3 y=4 z=5]> but was:<[INFO
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> > [ObjectLoggingThing1 y=999]]>
> > [ERROR]
> > NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
> > expected:<[DEBUG
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > ParameterizedLoggingThing
> > getX: values x=3 y=4 z=5]> but was:<[INFO
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest next:
> > it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
> > [ERROR]   NestedLoggingFromToStringTest.testNestedLoggingInLastArgumen
> > t:101
> > expected:<[DEBUG
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> > ParameterizedLoggingThing
> > getX: values x=3 y=4 z=5]> but was:<[INFO
> > org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest main:
> > argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
> >
> >
> > --
> > [image: MagineTV]
> >
> > *Mikael Ståldal*
> > Senior software developer
> >
> > *Magine TV*
> > mikael.staldal@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.
> >
>
>
>
> --
> E-Mail: garydgregory@gmail.com | ggregory@apache.org
> Java Persistence with Hibernate, Second Edition
> <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
>
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1617290459>
> JUnit in Action, Second Edition
> <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22
> >
>
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182021>
> Spring Batch in Action
> <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182951>
> 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.staldal@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.

Re: Failing unit tests in log4j-core

Posted by Gary Gregory <ga...@gmail.com>.
What if you move that dep to the end? Maybe its transitive deps overrides
over jars.

Gary

On Mon, May 15, 2017 at 8:10 AM, Mikael Ståldal <mi...@magine.com>
wrote:

> In branch LOG4J2-1442 (HttpAppender), some unit tests in log4j-core fail. I
> guess that's because I have added this test dependency (which has a lot of
> transitive dependencies):
>
> <dependency>
>   <groupId>com.github.tomakehurst</groupId>
>   <artifactId>wiremock</artifactId>
>   <scope>test</scope>
>   <version>2.6.0</version>
> </dependency>
>
>
> Any ideas what may cause these failures?
>
>
> [ERROR]
> AsyncLoggerConfigThreadContextDefaultTest>AbstractAsyncThreadContextTest
> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> Base.checkResult:184
> AsyncLoggerTest.log: line 1 expected:<...value [stackvalue] {[KEY=mapvalue,
> configProp=configValue, configProp2=configValue2, count=1]} WEBAPP
> DefaultThre...> but was:<...value [stackvalue] {[count=1,
> configProp2=configValue2, configProp=configValue, KEY=mapvalue]} WEBAPP
> DefaultThre...>
> [ERROR]
> AsyncLoggerThreadContextCopyOnWriteTest>AbstractAsyncThreadContextTest
> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> Base.checkResult:184
> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
> {KEY=mapvalue, configProp=configValue, configProp2=configValue2, count=1]}
> COPY_ON_WRITE Copy...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> COPY_ON_WRITE Copy...>
> [ERROR]
> AsyncLoggerThreadContextDefaultTest>AbstractAsyncThreadContextTest
> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> Base.checkResult:184
> AsyncLoggerTest.log: line 1 expected:<INFO c.f.Bar [mapvalue [stackvalue]
> {KEY=mapvalue, configProp=configValue, configProp2=configValue2, count=1]}
> WEBAPP DefaultThre...> but was:<INFO c.f.Bar [ [stackvalue] {]} WEBAPP
> DefaultThre...>
> [ERROR]
> AsyncLoggerThreadContextGarbageFreeTest>AbstractAsyncThreadContextTest
> Base.testAsyncLogWritesToLog:158->AbstractAsyncThreadContextTest
> Base.checkResult:184
> AsyncLoggerTest.log: line 38 expected:<INFO c.f.Bar [mapvalue [stackvalue]
> {KEY=mapvalue, configProp=configValue, configProp2=configValue2]}
> GARBAGE_FREE Garba...> but was:<INFO c.f.Bar [ [stackvalue] {]}
> GARBAGE_FREE Garba...>
> [ERROR]   NestedLoggingFromToStringTest.testDoublyNestedLogging:126
> expected:<[DEBUG
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> ParameterizedLoggingThing
> getX: values x=3 y=4 z=5]> but was:<[INFO
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest
> [ObjectLoggingThing1 y=999]]>
> [ERROR]
> NestedLoggingFromToStringTest.testNestedLoggingInFirstArgument:113
> expected:<[DEBUG
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> ParameterizedLoggingThing
> getX: values x=3 y=4 z=5]> but was:<[INFO
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest next:
> it=[ParameterizedLoggingThing x=3 y=4 z=5] someAA otherBB]>
> [ERROR]   NestedLoggingFromToStringTest.testNestedLoggingInLastArgumen
> t:101
> expected:<[DEBUG
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest$
> ParameterizedLoggingThing
> getX: values x=3 y=4 z=5]> but was:<[INFO
> org.apache.logging.log4j.core.impl.NestedLoggingFromToStringTest main:
> argCount=2 it=[ParameterizedLoggingThing x=3 y=4 z=5]]>
>
>
> --
> [image: MagineTV]
>
> *Mikael Ståldal*
> Senior software developer
>
> *Magine TV*
> mikael.staldal@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.
>



-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory