commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruno P. Kinoshita" <brunodepau...@yahoo.com.br.INVALID>
Subject Re: [LANG] Fix date related test failures on IBM JDKs (Was: Re: [CANCEL][VOTE] Release Apache Commons Lang 3.6 based on RC2)
Date Tue, 06 Jun 2017 10:08:56 GMT
I am downloading the latest IBM JDK in order to test other components too, and might have some
spare time this week to fix it, as I'm switching jobs next week. But  happy if anyone beats
me to it and finds the bug first :)
CheersBruno

      From: Benedikt Ritter <britter@apache.org>
 To: Commons Developers List <dev@commons.apache.org> 
 Sent: Monday, 5 June 2017 10:54 PM
 Subject: [LANG] Fix date related test failures on IBM JDKs (Was: Re: [CANCEL][VOTE] Release
Apache Commons Lang 3.6 based on RC2)
   
Hi,

> Am 25.05.2017 um 13:16 schrieb sebb <sebbaz@gmail.com>:
> 
> On 25 May 2017 at 01:02, Gary Gregory <garydgregory@gmail.com <mailto:garydgregory@gmail.com>>
wrote:
>> On Wed, May 24, 2017 at 4:46 PM, Gary Gregory <garydgregory@gmail.com>
>> wrote:
>> 
>>> On Wed, May 24, 2017 at 2:12 PM, Rob Tompkins <chtompki@gmail.com> wrote:
>>> 
>>>> 
>>>>> On May 24, 2017, at 2:49 AM, Gary Gregory <garydgregory@gmail.com>
>>>> wrote:
>>>>> 
>>>>> When I build with the IBM JDK 8 that IBM includes with some Eclipse
>>>> version
>>>>> I have laying around, I indeed get:
>>>>> 
>>>>> java (2)
>>>>> org.apache.commons.lang3.time.FastDateParser_TimeZoneStrategyTest
>>>>> testLang1219(org.apache.commons.lang3.time.FastDateParser_Ti
>>>> meZoneStrategyTest)
>>>>> java.text.ParseException: Unparseable date: 26.10.2014 02:00:00 MESZ
>>>> 
>>> 
>>> As I mentioned, the above test passes with the current IBM SDK 8:
>>> 
>>> Java(TM) SE Runtime Environment (build pwi3280sr4fp5-20170421_01(SR4 FP5))
>>> IBM J9 VM (build 2.8, JRE 1.8.0 Windows 10 x86-32 20170419_344392 (JIT
>>> enabled, AOT enabled)
>>> J9VM - R28_20170419_1004_B344392
>>> JIT  - tr.r14.java_20170419_344392
>>> GC  - R28_20170419_1004_B344392
>>> J9CL - 20170419_344392)
>>> JCL - 20170420_01 based on Oracle jdk8u131-b11
>>> 
>>> So IMO the only test we should look at is:
>>> 
>>>> org.apache.commons.lang3.builder.ToStringBuilderTest
>>>> testReflectionHierarchyArrayList(org.apache.commons.lang3.bu
>>> ilder.ToStringBuilderTest)
>>>> org.junit.ComparisonFailure:
>>>> expected:<...700dfa[elementData={[<null>,<null>,<null>,<
>>> null>,<null>,<null>,<null>,<null>,<null>,<null>]},size=0,modCount=0]>
>>>> but was:<...700dfa[elementData={[]},size=0,modCount=0]>
>>> 
>> 
>> Looking at this a little more, I would say that IBM Java changed how it
>> implemented ArrayList between it's 1.6 and 1.8 releases. I only have the
>> current 1.8 IBM release. I cannot verify that this test makes sense on IBM
>> 1.6. I propose we update the test to reflect IBM Java 8 and document the
>> test as such.
> 
> If the test makes assumptions about how ArrayList is implemented, then
> I would say the test is wrong.
> 
> If possible it should be fixed so as to work regardless of the
> implementation details.
> Rather than changing the test to work with a different version of the
> implementation.

I don’t even have an IBM JDK and I don’t want to subscribe on their homepage just to get
one. Does somebody know where to get an IBM JDK that works on Mac OS?

Does anybody have an IBM JDK and has the time to fix this?

Thank you,
Benedikt

> 
>> Gary
>> 
>>> 
>>> 
>>> Gary
>>> 
>>> 
>>> 
>>>> Wondering if this change (https://github.com/apache/com
>>>> mons-lang/commit/eb2b89efbe15ab0b70fd94f0ecd0aa03866fb4d2#
>>>> diff-27e0ef6d1e59c634d3ba4d9cb05629a4R362 <https://github.com/apache/com
>>>> mons-lang/commit/eb2b89efbe15ab0b70fd94f0ecd0aa03866fb4d2#
>>>> diff-27e0ef6d1e59c634d3ba4d9cb05629a4R362>) caused this one. It doesn’t
>>>> make sense to me that it would, but it’s the only change to the code in
>>>> that area. Does the released version have the same issue?
>>>> 
>>>> Still investigating the second test failure. I’ll keep you guys posted
>>>> with anything I can come up with.
>>>> 
>>>> -Rob
>>>> 
>>>>> 
>>>>> at
>>>>> org.apache.commons.lang3.time.FastDateParser.parse(FastDateP
>>>> arser.java:369)
>>>>> 
>>>>> at
>>>>> org.apache.commons.lang3.time.FastDateParser_TimeZoneStrateg
>>>> yTest.testLang1219(FastDateParser_TimeZoneStrategyTest.java:62)
>>>>> 
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> 
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>>> ssorImpl.java:95)
>>>>> 
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>>> thodAccessorImpl.java:55)
>>>>> 
>>>>> at java.lang.reflect.Method.invoke(Method.java:508)
>>>>> 
>>>>> at
>>>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
>>>> FrameworkMethod.java:50)
>>>>> 
>>>>> at
>>>>> org.junit.internal.runners.model.ReflectiveCallable.run(Refl
>>>> ectiveCallable.java:12)
>>>>> 
>>>>> at
>>>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr
>>>> ameworkMethod.java:47)
>>>>> 
>>>>> at
>>>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(
>>>> InvokeMethod.java:17)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>>>>> 
>>>>> at
>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>>>> 4ClassRunner.java:78)
>>>>> 
>>>>> at
>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>>>> 4ClassRunner.java:57)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.
>>>> run(JUnit4TestReference.java:86)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(
>>>> TestExecution.java:38)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>>>> sts(RemoteTestRunner.java:459)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>>>> sts(RemoteTestRunner.java:678)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
>>>> RemoteTestRunner.java:382)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
>>>> RemoteTestRunner.java:192)
>>>>> 
>>>>> 
>>>>> 
>>>>> org.apache.commons.lang3.builder.ToStringBuilderTest
>>>>> testReflectionHierarchyArrayList(org.apache.commons.lang3.bu
>>>> ilder.ToStringBuilderTest)
>>>>> org.junit.ComparisonFailure:
>>>>> expected:<...700dfa[elementData={[<null>,<null>,<null>,<
>>>> null>,<null>,<null>,<null>,<null>,<null>,<null>]},size=0,modCount=0]>
>>>>> but was:<...700dfa[elementData={[]},size=0,modCount=0]>
>>>>> 
>>>>> at org.junit.Assert.assertEquals(Assert.java:115)
>>>>> 
>>>>> at org.junit.Assert.assertEquals(Assert.java:144)
>>>>> 
>>>>> at
>>>>> org.apache.commons.lang3.builder.ToStringBuilderTest.testRef
>>>> lectionHierarchyArrayList(ToStringBuilderTest.java:324)
>>>>> 
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> 
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>>> ssorImpl.java:95)
>>>>> 
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>>> thodAccessorImpl.java:55)
>>>>> 
>>>>> at java.lang.reflect.Method.invoke(Method.java:508)
>>>>> 
>>>>> at
>>>>> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
>>>> FrameworkMethod.java:50)
>>>>> 
>>>>> at
>>>>> org.junit.internal.runners.model.ReflectiveCallable.run(Refl
>>>> ectiveCallable.java:12)
>>>>> 
>>>>> at
>>>>> org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr
>>>> ameworkMethod.java:47)
>>>>> 
>>>>> at
>>>>> org.junit.internal.runners.statements.InvokeMethod.evaluate(
>>>> InvokeMethod.java:17)
>>>>> 
>>>>> at
>>>>> org.junit.internal.runners.statements.RunAfters.evaluate(Run
>>>> Afters.java:27)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>>>>> 
>>>>> at
>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>>>> 4ClassRunner.java:78)
>>>>> 
>>>>> at
>>>>> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>>>> 4ClassRunner.java:57)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>>>> 
>>>>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>>>> 
>>>>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.
>>>> run(JUnit4TestReference.java:86)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(
>>>> TestExecution.java:38)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>>>> sts(RemoteTestRunner.java:459)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTe
>>>> sts(RemoteTestRunner.java:678)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
>>>> RemoteTestRunner.java:382)
>>>>> 
>>>>> at
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
>>>> RemoteTestRunner.java:192)
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> On Tue, May 23, 2017 at 4:25 PM, Benedikt Ritter <britter@apache.org>
>>>> wrote:
>>>>> 
>>>>>> Hello,
>>>>>> 
>>>>>> I’m canceling this vote because:
>>>>>> 
>>>>>> - mvn site does not work from the src distribution
>>>>>> - test failures on IBM JDK (where else…)
>>>>>> 
>>>>>> I don’t know when I have the time to work an this. Any help is
highly
>>>>>> appreciated.
>>>>>> 
>>>>>> Regards,
>>>>>> Benedikt
>>>>>> 
>>>>>>> Am 19.05.2017 um 16:52 schrieb Benedikt Ritter <britter@apache.org>:
>>>>>>> 
>>>>>>> Hello,
>>>>>>> 
>>>>>>>> Am 17.05.2017 um 12:02 schrieb Benedikt Ritter <britter@apache.org>:
>>>>>>>> 
>>>>>>>> Hello,
>>>>>>>> 
>>>>>>>> we have fixed quite a few bugs and added some nice new features
since
>>>>>> Commons Lang 3.5 was released, so I would like to release Commons
Lang
>>>> 3.6
>>>>>> based on RC2.
>>>>>>>> The reason we had to cut a second release is, that there
were some
>>>>>> discussions around the annotations for documenting concurrency
>>>> properties
>>>>>> in the o.a.c.l.concurrent.annotation package. I’ve removed those
>>>>>> annotations, so that we can fix them after the release.
>>>>>>>> 
>>>>>>>> Commons Lang 3.6 R2 is available for review here:
>>>>>>>> https://dist.apache.org/repos/dist/dev/commons/lang (svn
revision
>>>>>> 19714)
>>>>>>>> 
>>>>>>>> The tag is here:
>>>>>>>> https://git-wip-us.apache.org/repos/asf?p=commons-lang.git;a=tag;h=
>>>>>> 75c28fc4678774c1d2c21b839b048db6b563b9ae
>>>>>>>> 
>>>>>>>> Commit ID the tag points at:
>>>>>>>> 3a64cf6aff408a9cbdcb4d7456360a97d1a880f0
>>>>>>>> 
>>>>>>>> Maven Artifacts:
>>>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247
>>>>>>>> 
>>>>>>>> These are the Maven artifacts and their hashes:
>>>>>>>> 
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-javadoc.jar
>>>> <
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-javadoc.jar>
>>>>>>>> (SHA1: eb05c235b85ffb6f70ea72082eb904a9fe1969d7)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-sour
>>>> ces.jar.asc
>>>>>> <https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-sources.jar.asc>
>>>>>>>> (SHA1: 7b98c8ab56e16e974c85963b2497840405a3375e)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.pom.asc
<
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6.pom.asc>
>>>>>>>> (SHA1: 7524211600afb0deb3a5cab8ad9236299e3434a4)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.pom
<
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6.pom>
>>>>>>>> (SHA1: b38df078df7623b708cd439b1cb750619bd659cc)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar.asc
<
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6.jar.asc>
>>>>>>>> (SHA1: 4bf4d61116adcf699f1d7a866bcabcb50fc7b47f)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-java
>>>> doc.jar.asc
>>>>>> <https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-javadoc.jar.asc>
>>>>>>>> (SHA1: d547ce41d41f38b143f5e5377d6bc990f0abbff6)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-sources.jar
>>>> <
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-sources.jar>
>>>>>>>> (SHA1: d9c5bbfb0b97c1f87e3f75cedd7eedbc5ec81182)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6.jar
<
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6.jar>
>>>>>>>> (SHA1: e6e1ca5e4574da2af0f8d2891410857e36ce5969)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-tests.jar.asc
>>>> <
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-tests.jar.asc>
>>>>>>>> (SHA1: b8d25f4a01a5f50ab450044dd2a7688e37554bed)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-test
>>>> -sources.jar.asc
>>>>>> <https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-test-sources.jar.asc>
>>>>>>>> (SHA1: ccca81cd4539437f3def2644119a6f187168963c)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-test
>>>> -sources.jar
>>>>>> <https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-test-sources.jar>
>>>>>>>> (SHA1: 8daf4979fb38811bd4a5bf39e38bc7a3a6582104)
>>>>>>>> /org/apache/commons/commons-lang3/3.6/commons-lang3-3.6-tests.jar
<
>>>>>> https://repository.apache.org/content/repositories/
>>>>>> orgapachecommons-1247/org/apache/commons/commons-lang3/
>>>>>> 3.6/commons-lang3-3.6-tests.jar>
>>>>>>>> (SHA1: 1f158e950250efab7cbca635e8393ab2ef666bca)
>>>>>>>> 
>>>>>>>> I have tested this with JDK 7, JDK 8 and JDK 9 EA b165 using
Maven
>>>>>> 3.5.0.
>>>>>>>> 
>>>>>>>> Details of changes since 3.5 are in the release notes:
>>>>>>>> https://dist.apache.org/repos/dist/dev/commons/lang/RELEASE-
>>>> NOTES.txt
>>>>>>>> http://home.apache.org/~britter/commons/lang/LANG_3_6_
>>>>>> RC2/changes-report.html
>>>>>>>> 
>>>>>>>> Site:
>>>>>>>>  http://home.apache.org/~britter/commons/lang/LANG_3_6_RC2/
>>>>>>>> (note some *relative* links are broken and the 3.6 directories
are
>>>>>>>> not yet created - these will be OK once the site is deployed)
>>>>>>>> 
>>>>>>>> Clirr Report (compared to 3.5):
>>>>>>>> http://home.apache.org/~britter/commons/lang/LANG_3_6_
>>>>>> RC2/clirr-report.html
>>>>>>>> 
>>>>>>>> RAT Report:
>>>>>>>>    http://home.apache.org/~britter/commons/lang/LANG_3_6_
>>>>>> RC2/rat-report.html
>>>>>>>> 
>>>>>>>> KEYS:
>>>>>>>> https://www.apache.org/dist/commons/KEYS
>>>>>>>> 
>>>>>>>> Please review the release candidate and vote.
>>>>>>>> This vote will close no sooner that 72 hours from now,
>>>>>>>> i.e. sometime after 12:00 EDT (UTC-4) 20-May 2017
>>>>>>>> 
>>>>>>>> [ ] +1 Release these artifacts
>>>>>>>> [ ] +0 OK, but...
>>>>>>>> [ ] -0 OK, but really should fix...
>>>>>>>> [ ] -1 I oppose this release because…
>>>>>>> 
>>>>>>> This vote is still pending. Please review the RC and cast your
vote.
>>>> The
>>>>>> following issues have been found:
>>>>>>> 
>>>>>>> - mvn site does not work from the source archive
>>>>>>> - Jigsaw meta data is missing
>>>>>>> 
>>>>>>> I consider neither as a blocker for releasing 3.6 and would rather
>>>> like
>>>>>> to fix those in 3.6.1 (which I can prepare after my vacation). So
>>>> unless
>>>>>> nobody finds something else, I’d like to release this code.
>>>>>>> 
>>>>>>> Thank you,
>>>>>>> Benedikt
>>>>>>> 
>>>>>>>> 
>>>>>>>> Thanks!
>>>>>>>> Benedikt
>>>>>>> 
>>>>>>> 
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>>>>>>> For additional commands, e-mail: dev-help@commons.apache.org
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
>>>>>> For additional commands, e-mail: dev-help@commons.apache.org
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> 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
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> 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
>>> 
>> 
>> 
>> 
>> --
>> 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
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org <mailto:dev-unsubscribe@commons.apache.org>
> For additional commands, e-mail: dev-help@commons.apache.org <mailto:dev-help@commons.apache.org>

   
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message