[ https://issues.apache.org/jira/browse/JCI-45?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Niall Pemberton updated JCI-45: ------------------------------- Attachment: JCI-45-ReloadingClassLoader-remove.patch ReloadingClassLoaderRemoveTestCase.java Attaching two files: 1) ReloadingClassLoaderRemoveTestCase - new test case to demonstrate the problems with the removeResourceStore method 2) Patch for ReloadingClassLoader which fixes the issues > ReloadingClassLoader's removeResourceStore() method doesn't work > ---------------------------------------------------------------- > > Key: JCI-45 > URL: https://issues.apache.org/jira/browse/JCI-45 > Project: Commons JCI > Issue Type: Bug > Components: core > Affects Versions: 1.0RC2 > Reporter: Niall Pemberton > Attachments: JCI-45-ReloadingClassLoader-remove.patch, > ReloadingClassLoaderRemoveTestCase.java > > > There are a number of bugs in ReloadingClassLoader's removeResourceStore() > method: > 1) While Loop > The While loop that searches for the ResourceStore to remove throws an > ArrayOutOfBoundsException if the ResourceStore is not found > 2) Removing the last ResourceStore fails to update the delegate ClassLoader > If the ResourceStore being removed is the last one an empty array is created, > but the delegate ResourceStoreClassLoader is not updated - which means > calling loadClass() for a class in that store still returns the Class rather > than throwing a ClassNotFoundException > 3) Removing a ResourceStore when there is more than one in the array doesn't > work at all > The two System.arraycopy() statements used to create a new array without the > ResourceStore being removed doesn't work. The position and length parameters > are wrong and result in either a ArrayOutOfBoundsException being thrown or > the wrong ResourceStore(s) being removed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]