Hi,
We push the namespace declarations for the current element on to the stack
when next() or nextTag() is called. And then pop them out of the stack when
the reader leaves an element. It might go out of sequence in this case.
Maybe you can check if nextTag() calls next() in your case.
Thanks,
Raymond
--------------------------------------------------
From: "Kapish Aggarwal" <[email protected]>
Sent: Wednesday, February 25, 2009 8:33 AM
To: <[email protected]>
Subject: EmptyStackException in
org.apache.tuscany.sca.contribution.processor.TuscanyXMLStreamReader
I have hit an unusual EmptyStackException in TuscanyXMLStreamReader. I
am having problems debugging the issue since any actions I take to
gather further information seems to resolve the problem (connecting a
debugger, attempting to produce more detailed logs from execution).
The following is the relevant stack trace I am hitting. My guess,
since I can't reliably recreate the problem, is that there is a timing
issue with multiple threads using the same stack, but can't seem to
verify it. Does anyone familiar with the code have some thoughts?
Kapish Aggarwal
java.util.EmptyStackException
at java.util.Stack.pop(Stack.java:80)
at
org.apache.tuscany.sca.contribution.processor.TuscanyXMLStreamReader.popContext(TuscanyXMLStreamReader.java:73)
at
org.apache.tuscany.sca.contribution.processor.TuscanyXMLStreamReader.next(TuscanyXMLStreamReader.java:85)
at
org.apache.tuscany.sca.contribution.processor.ValidatingXMLStreamReader.next(ValidatingXMLStreamReader.java:148)
at
org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read(CompositeProcessor.java:598)
at
org.apache.tuscany.sca.assembly.xml.CompositeProcessor.read(CompositeProcessor.java:91)
at
org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint$LazyStAXArtifactProcessor.read(DefaultStAXArtifactProcessorExtensionPoint.java:360)
at
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.read(ExtensibleStAXArtifactProcessor.java:152)
at
org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.read(CompositeDocumentProcessor.java:151)
at
org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.read(CompositeDocumentProcessor.java:118)
at
org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.read(CompositeDocumentProcessor.java:57)
at
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor.read(ExtensibleURLArtifactProcessor.java:96)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processReadPhase(ContributionServiceImpl.java:536)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:387)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:189)