Hi all

I'm part of the Fedora documentation team, and along the way I've picked up Fedora maintainership of a few packages, FOP amongst them.

Unfortunately, I'm having some trouble with FOP on Fedora 15, and I wondered if I could get some more eyes on it please? As you might know, we don't bundle libraries in Fedora, so must compile and run FOP with the versions of its dependencies already shipped in Fedora.

Using these, I can build FOP 1.0, but it doesn't actually work! Instead, it errors out because it can't find the event-model.xml files that it needs. There's a bug open that shows the error message -- https://bugzilla.redhat.com/show_bug.cgi?id=689930

Further investigation shows me that the various event-model.xml files are simply not getting created during the resourcegen stage at build time.

The problem is in our EventProducerCollector, which is patched[1] to use a different version of qdox (1.12). Specifically, clazz.getParentClass() is always null and would result in a null pointer exception:

/home/rlandmann/rpmbuild/BUILD/fop-1.0/build.xml:374: java.lang.NullPointerException at com.thoughtworks.qdox.model.JavaMethod.getReturnType(JavaMethod.java:464) at com.thoughtworks.qdox.model.JavaMethodDelegate.getReturnType(JavaMethodDelegate.java:26) at com.thoughtworks.qdox.model.JavaMethodDelegate.getReturnType(JavaMethodDelegate.java:166) at org.apache.fop.tools.EventProducerCollector.createMethodModel(EventProducerCollector.java:142) at org.apache.fop.tools.EventProducerCollector.processEventProducerInterface(EventProducerCollector.java:130) at org.apache.fop.tools.EventProducerCollector.scanFile(EventProducerCollector.java:99) at org.apache.fop.tools.EventProducerCollectorTask.processFileSets(EventProducerCollectorTask.java:213) at org.apache.fop.tools.EventProducerCollectorTask.execute(EventProducerCollectorTask.java:69) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:809)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

...except that we have a check at lines 125-127 that just quits if clazz.getParentClass() is null.

If anyone has time and inclination to take a look for me, I'd appreciate any tips about what to try next. I can't see why getParentClass() isn't working on the various EventProducer classes in the source. :(

TIA
Rudi

[1] patch is here: http://rlandmann.fedorapeople.org/fop/qdox-build.patch and patched version of EventProducerCollector is here: http://rlandmann.fedorapeople.org/fop/EventProducerCollector.java

Reply via email to