[
https://issues.apache.org/jira/browse/JDO-494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthew T. Adams updated JDO-494:
---------------------------------
Attachment: jdo-494.patch
When running the JDOHelperConfigTest via the Maven-1 command line, the
ClassLoader is of subtype AntClassLoader, not URLClassLoader.
This introduces a test-time dependency on Ant; the only version of Ant that I
could find via a Maven repository is 1.7.0 at http://repo1.maven.org/maven
(specifically, http://repo1.maven.org/maven/org.apache.ant/jars/ant-1.7.0.jar);
I think 1.6.5 would be preferable, but I can't find one that's properly
publicly hosted. If the ClassLoader is not of subtype URLClassLoader or
AntClassLoader, an exception is thrown -- I could see no better way of doing
this.
I tested from scratch (meaning that I deleted ~/.maven and trunk/api20/target
before testing) on JDKs 1.4 & 1.5 using Maven versions 1.0.2 & 1.1-RC1 and all
four combinations passed.
Please review patch.
> ERROR org.apache.tools.ant.AntClassLoader running maven build on api2
> ---------------------------------------------------------------------
>
> Key: JDO-494
> URL: https://issues.apache.org/jira/browse/JDO-494
> Project: JDO
> Issue Type: Bug
> Components: api2
> Affects Versions: JDO 2 maintenance release 1
> Reporter: Craig Russell
> Assignee: Matthew T. Adams
> Priority: Blocker
> Fix For: JDO 2 maintenance release 1
>
> Attachments: jdo-494.patch
>
>
> I get this error when running the api20 maven build from the tip of
> the trunk:
> Testsuite: javax.jdo.JDOHelperConfigTest
> Tests run: 19, Failures: 0, Errors: 18, Time elapsed: 0.124 sec
> Testcase: testPositive00_PMF0_GetNamedPMFProperties
> (javax.jdo.JDOHelperConfigTest): Caused an ERROR
> org.apache.tools.ant.AntClassLoader
> at
> javax.jdo.JDOHelperConfigTest.testPositive00_PMF0_GetNamedPMFProperti
> es(JDOHelperConfigTest.java:57)
> The error occurs at the line that constructs a new class loader:
> URLClassLoader loader = new JDOConfigTestClassLoader(
> JDOCONFIG_CLASSPATH_PREFIX,
> (URLClassLoader) getClass().getClassLoader());
> I don't recognize the error. The stack trace doesn't show where in
> the constructor the error is.
> Any clues?
> Craig
> public class JDOConfigTestClassLoader extends URLClassLoader {
> public JDOConfigTestClassLoader(String partialPathToIgnore,
> URLClassLoader unparent) {
> this(new String[]{partialPathToIgnore}, unparent);
> }
> public JDOConfigTestClassLoader(String[] partialPathsToIgnore,
> URLClassLoader unparent) {
> super(new URL[]{}, null);
> addNonTestURLs(partialPathsToIgnore == null ? new String[]
> {} : partialPathsToIgnore, unparent);
> }
> // HACK: need to identify a better way of controlling test classpath
> protected void addNonTestURLs(String[] partialPathsToIgnore,
> URLClassLoader unparent) {
> URL[] urls = unparent.getURLs();
> for (int i = 0; i < urls.length; i++) {
> URL url = urls[i];
> String urlString = url.toString();
> for (int j = 0; j < partialPathsToIgnore.length; j++) {
> if (urlString.indexOf(partialPathsToIgnore[j]) == -1) {
> addURL(url);
> }
> }
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.