On Tue, Aug 26, 2008 at 1:29 PM, Jörg Schaible <[EMAIL PROTECTED]> wrote:
> Hi Niall,
>
> Niall Pemberton wrote:
>
>> BeanUtils 1.8.0 RC2 is available for review here:
>> http://people.apache.org/~niallp/beanutils-1.8.0-rc2/
>>
>> I have tested this with JDK 1.3, 1.4, 1.5 and 1.6. This RC is built with
>> JDK 1.5 (Ibuilding with JDK 1.4, has the following problem:
>>  http://commons.markmail.org/message/wqqs67eyi6hq3mcq )
>>
>> The tag is here:
>>
> http://svn.apache.org/viewvc/commons/proper/beanutils/tags/BEANUTILS_1_8_0_RC2/
>>
>> Release Notes:
>> http://people.apache.org/~niallp/beanutils-1.8.0-rc2/RELEASE-NOTES.txt
>>
>> Site:
>> http://people.apache.org/~niallp/beanutils-1.8.0-rc2/site/
>> (note some links are broken since the 1.8.0 directories are not yet
>> created)
>>
>> Clirr Report (compared to 1.8.0 Beta)
>>
> http://people.apache.org/~niallp/beanutils-1.8.0-rc2/site/clirr-report.html
>> (note breaking compatibility with 1.8.0 Beta was discussed here:
>>  http://commons.markmail.org/message/xpeify7dioksg7xg )
>>
>> I'm going to be away (and offline) from Thursday for a week - so
>> there'll be a delay in me responding to any feedback.
>
> I've run Maven using the source distribution with several JDKs on Gentoo
> Linux. As usual Maven 2 fails itself if run with an IBM JDK. Packaging
> works well with Sun JDKs and Blackdown JDK However, the MemoryLeakTestCase
> fails with the JRockit JDKs (1.4.2 and 5):

Thanks for testing this Jörg, comments inline below.

> ============= %< ==============
> -------------------------------------------------------------------------------
> Test set: org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase
> -------------------------------------------------------------------------------
> Tests run: 7, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 11.187 sec
> <<< FAILURE!
> testMappedPropertyDescriptor_MappedMethodReference(org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase)
> Time elapsed: 1.535 sec  <<< ERROR!
> java.lang.RuntimeException: Method getMappedProperty for
> org.apache.commons.beanutils.memoryleaktests.pojotests.SomeMappedPojo could
> not be reconstructed - class reference has gone
>        at
> org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.get(MappedPropertyDescriptor.java:455)
>        at
> org.apache.commons.beanutils.MappedPropertyDescriptor$MappedMethodReference.access$00
> (MappedPropertyDescriptor.java:429)
>        at
> org.apache.commons.beanutils.MappedPropertyDescriptor.getMappedReadMethod(MappedPropertyDescriptor.java:242)
>        at
> org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase.testMappedPropertyDescriptor_MappedMethodReference(MemoryLeakTestCase.java:189)
> ============= %< ==============

It appears that with the JRockit JDK the (weak) reference to the class
is being lost, even though in that test there is still a strong
reference to the class (and class loader). I couldn't find a valid
link to download the JRockit JDK, but I can re-create the same
exception by adding a test that removes all strong references to the
class. I didn't really expect this exception to ever get thrown, but
since this has occured I've added code to try and re-create the class
reference (and a test for it):

http://svn.apache.org/viewvc?view=rev&revision=689831

> Using Maven 1 the build fails also at the same test (all JDKs incl. the ones
> of IBM):
>
> ============= %< ==============
> Testsuite: org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase
> Tests run: 3, Failures: 0, Errors: 1, Time elapsed: 0.131 sec
>
> Testcase:
> testMappedPropertyDescriptor_MappedMethodReference(org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase):
> Caused an ERROR
> org.apache.commons.beanutils.memoryleaktests.pojotests.SomeMappedPojo
> java.lang.ClassNotFoundException:
> org.apache.commons.beanutils.memoryleaktests.pojotests.SomeMappedPojo
>        at java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled 
> Code))
>        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
>        at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:889)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
>        at
> org.apache.commons.beanutils.memoryleaktests.MemoryLeakTestCase.testMappedPropertyDescriptor_MappedMethodReference(MemoryLeakTestCase.java:165)
>        at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:195)
>        at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:250)
>        at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
>        at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:186)
>        at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:42)
>        at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:250)
>        at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
>        at
> org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:83)
>        at
> org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:116)
>        at org.apache.maven.werkz.Goal.fire(Goal.java:691)
>        at org.apache.maven.werkz.Goal.attain(Goal.java:623)
>        at org.apache.maven.werkz.Goal.attainPrecursors(Goal.java:526)
>        at org.apache.maven.werkz.Goal.attain(Goal.java:621)
>        at
> org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:712)
>        at org.apache.maven.MavenSession.attainGoals(MavenSession.java:265)
>        at org.apache.maven.cli.App.doMain(App.java:307)
>        at org.apache.maven.cli.App.main(App.java:217)
>        at com.werken.forehead.Forehead.run(Forehead.java:551)
>        at com.werken.forehead.Forehead.main(Forehead.java:581)
> ============= %< ==============

This is a strange exception since the other tests run also create a
new class loader and load a class and they haven't failed. Since it
seems strange, its m1 and it works OK for me I'm going to ignore this.

Thanks to everyone for the feedback/reviews - I'm going to create a
RC3 with the changes to fix the issue that Jörg found (and fix the
site gen/clirr problem Luc hit)

Niall

> - Jörg

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to