This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Cocoon, Xerces, XSP, and Java HotSpot
- To: "Cocoon-Users (E-mail)" <cocoon-users at xml dot apache dot org>, "'Xsl-List (E-mail)" <xsl-list at mulberrytech dot com>
- Subject: Cocoon, Xerces, XSP, and Java HotSpot
- From: Joel Hughes <joel at redknee dot com>
- Date: Fri, 18 Feb 2000 07:07:40 -0500
- Cc: Dan MacDonald <dan at redknee dot com>, Lucas Skoczkowski <lucas at redknee dot com>
- Reply-To: xsl-list at mulberrytech dot com
I've just discovered
an issue with Cocoon, Xerces, and Java HotSpot 1.0.1.
It would appear they
don't work very well together.
With HotSpot
installed, Xerces exceptions (exception appended below) when loading an xml
document a second time, that makes use of XSP.
HotSpot is an
enhanced JVM which JIT-compiles and attempts to optimise oft-repeated
code. Obviously it's compilation is interfering with the XSP/Xerces
processing. As for "why", we'll leave for another day.
The problem is
easily reproducible. Hotspot can be installed and removed without a reboot, just
stop and start Apache. I've tested this scenario on three machines, all
with same results.
Config:
NT 4
SP6
Apache
1.3.11
Jserv
1.1
JDK
1.2.2
JSDK 2.1
HotSpot
1.0.1
Cocoon
1.6.1
Xerces
1.0.1
Xalan
0.19.2
FOP
0.12.0
Exception:
java.lang.NullPointerException
at org.apache.xerces.dom.DeferredDocumentImpl.synchronizeChildren(DeferredDocumentImpl.java:1218)
at org.apache.xerces.dom.NodeImpl.getChildNodes(NodeImpl.java:520)
at org.apache.cocoon.Utils.getFirstPI(Utils.java:116)
at org.apache.cocoon.processor.ProcessorFactory.getType(ProcessorFactory.java:79)
at org.apache.cocoon.processor.ProcessorFactory.getProcessor(ProcessorFactory.java:70)
at org.apache.cocoon.Engine.handle(Engine.java:282)
at org.apache.cocoon.Cocoon.service(Cocoon.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:840)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:314)
at org.apache.jserv.JServConnection.run(JServConnection.java:188)
at java.lang.Thread.run(Thread.java:479)
Joel
Hughes