Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
Version 2 Beta 1
-
None
-
Windows XP, JDK 1.4.2_06, but I suspect this is not relevant
Description
When I execute the XMLBean Ant task from within a Maven goal, it always fails with the following stack trace:
java.lang.ExceptionInInitializerError
at org.apache.xmlbeans.impl.tool.XMLBean.execute(XMLBean.java:294)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79)
at org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110)
at com.werken.werkz.Goal.fire(Goal.java:639)
at com.werken.werkz.Goal.attain(Goal.java:575)
at com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
at org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
at com.werken.werkz.jelly.PostGoalTag$1.firePostGoal(PostGoalTag.java:87)
at com.werken.werkz.Goal.firePostGoalCallbacks(Goal.java:710)
at com.werken.werkz.Goal.fire(Goal.java:654)
at com.werken.werkz.Goal.attain(Goal.java:575)
at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
at com.werken.werkz.Goal.attain(Goal.java:573)
at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
at com.werken.werkz.Goal.attain(Goal.java:573)
at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
at com.werken.werkz.Goal.attain(Goal.java:573)
at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
at com.werken.werkz.Goal.attain(Goal.java:573)
at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671)
at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263)
at org.apache.maven.cli.App.doMain(App.java:488)
at org.apache.maven.cli.App.main(App.java:1239)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.werken.forehead.Forehead.run(Forehead.java:551)
at com.werken.forehead.Forehead.main(Forehead.java:581)
Caused by: java.lang.ExceptionInInitializerError
at org.apache.xmlbeans.impl.tool.SchemaCompiler.compile(SchemaCompiler.java:1063)
at org.apache.xmlbeans.impl.tool.XMLBean.execute(XMLBean.java:238)
... 35 more
Caused by: java.lang.NullPointerException
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.<clinit>(SchemaTypeSystemImpl.java:150)
... 37 more
I attached to the JVM and found that the following line is causing the NPE:
("org." + "apache." + "xmlbeans").equals(SchemaTypeSystem.class.getPackage().getName()) ?
Specifically, SchemaTypeSystem.class.getPackage() is returning null. The JavaDocs for java.lang.Class#getPackage() say that it "[returns] null if no package information is available from the archive or codebase." I think it's returning null in this case because of how the classloaders are set up by Maven. To verify that it has something to do with running inside Maven, I ran the Ant task with the same exact arguments from within vanilla Ant, and it worked fine.
Note, I tried setting the fork attribute on the task to both "true" and "false", but I get the NPE either way.
Note, the XMLBean Ant task with the same parameters works fine when using XMLBeans v1.0.4.