Details
-
Improvement
-
Resolution: Unresolved
-
Major
-
None
-
9.95.1
-
None
-
Unknown
-
Description
Step to reproduce (note I wasn't able to verify as I don't have a confluence instance to test):
- In confluence add a JIRA server as the default in the server list
- Add a JIRA macro targeting the default server (so the server field will be empty)
- Export the confluence backup
- Import into XWiki with confluence-xml
Expected:
The JIRA macro is imported
Currently:
The JIRA macro is not imported because of this error:
<detailMessage>The server parameter is required</detailMessage>
<stackTrace>
<trace>org.xwiki.contrib.confluence.filter.internal.macros.JiraMacroConverter.toXWikiParameters(JiraMacroConverter.java:109)</trace>
<trace>org.xwiki.contrib.confluence.filter.AbstractMacroConverter.toXWiki(AbstractMacroConverter.java:89)</trace>
<trace>org.xwiki.contrib.confluence.filter.AbstractMacroConverter.toXWiki(AbstractMacroConverter.java:67)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.macros.DefaultMacroConverter.toXWiki(DefaultMacroConverter.java:88)</trace>
<trace>org.xwiki.contrib.confluence.filter.AbstractMacroConverter.toXWiki(AbstractMacroConverter.java:67)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceConverterListener.onMacro(ConfluenceConverterListener.java:164)</trace>
<trace>org.xwiki.rendering.internal.parser.wikimodel.DefaultXWikiGeneratorListener.onMacroBlock(DefaultXWikiGeneratorListener.java:825)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.wikimodel.ConfluenceXWikiGeneratorListener.onMacroBlock(ConfluenceXWikiGeneratorListener.java:351)</trace>
<trace>org.xwiki.rendering.wikimodel.impl.InternalWikiScannerContext.onMacroBlock(InternalWikiScannerContext.java:1065)</trace>
<trace>org.xwiki.rendering.wikimodel.impl.WikiScannerContext.onMacroBlock(WikiScannerContext.java:602)</trace>
<trace>org.xwiki.rendering.wikimodel.impl.WikiScannerContext.onMacro(WikiScannerContext.java:595)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.wikimodel.MacroTagHandler.end(MacroTagHandler.java:135)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.handler.TagHandler.endElement(TagHandler.java:85)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.impl.TagContext.endElement(TagContext.java:81)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.impl.TagStack.endElement(TagStack.java:123)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.impl.XhtmlHandler.endElement(XhtmlHandler.java:199)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.endElement(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.XHTMLWhitespaceXMLFilter.sendInlineEvent(XHTMLWhitespaceXMLFilter.java:302)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.XHTMLWhitespaceXMLFilter.sendPreviousContent(XHTMLWhitespaceXMLFilter.java:291)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.XHTMLWhitespaceXMLFilter.flushContent(XHTMLWhitespaceXMLFilter.java:332)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.XHTMLWhitespaceXMLFilter.flushContent(XHTMLWhitespaceXMLFilter.java:314)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.XHTMLWhitespaceXMLFilter.endElement(XHTMLWhitespaceXMLFilter.java:183)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.wikimodel.ConfluenceXHTMLWhitespaceXMLFilter.endElement(ConfluenceXHTMLWhitespaceXMLFilter.java:90)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.endElement(Unknown Source)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.endElement(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.AccumulationXMLFilter.endElement(AccumulationXMLFilter.java:86)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.endElement(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.DTDXMLFilter.endElement(DTDXMLFilter.java:86)</trace>
<trace>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)</trace>
<trace>org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)</trace>
<trace>org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)</trace>
<trace>org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)</trace>
<trace>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)</trace>
<trace>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)</trace>
<trace>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)</trace>
<trace>org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)</trace>
<trace>org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)</trace>
<trace>org.apache.xerces.parsers.XMLParser.parse(Unknown Source)</trace>
<trace>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)</trace>
<trace>org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:58)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:58)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:58)</trace>
<trace>java.xml/org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.filter.DefaultXMLFilter.parse(DefaultXMLFilter.java:58)</trace>
<trace>org.xwiki.rendering.wikimodel.xhtml.XhtmlParser.parse(XhtmlParser.java:134)</trace>
<trace>org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:141)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.ConfluenceXHTMLParser.parse(ConfluenceXHTMLParser.java:334)</trace>
<trace>org.xwiki.rendering.internal.parser.wikimodel.AbstractWikiModelParser.parse(AbstractWikiModelParser.java:121)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.ConfluenceXHTMLInputFilterStream.read(ConfluenceXHTMLInputFilterStream.java:112)</trace>
<trace>org.xwiki.contrib.confluence.parser.xhtml.internal.ConfluenceXHTMLInputFilterStream.read(ConfluenceXHTMLInputFilterStream.java:47)</trace>
<trace>org.xwiki.filter.input.AbstractBeanInputFilterStream.read(AbstractBeanInputFilterStream.java:79)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.parse(ConfluenceInputFilterStream.java:2824)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.convertToXWiki21(ConfluenceInputFilterStream.java:2791)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.beginPageRevision(ConfluenceInputFilterStream.java:2359)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageRevision(ConfluenceInputFilterStream.java:2258)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendRevisions(ConfluenceInputFilterStream.java:1947)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendTerminalDoc(ConfluenceInputFilterStream.java:1830)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageAndChildren(ConfluenceInputFilterStream.java:1750)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPage(ConfluenceInputFilterStream.java:940)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPages(ConfluenceInputFilterStream.java:995)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageAndChildren(ConfluenceInputFilterStream.java:1760)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPage(ConfluenceInputFilterStream.java:940)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPages(ConfluenceInputFilterStream.java:995)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageAndChildren(ConfluenceInputFilterStream.java:1760)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPage(ConfluenceInputFilterStream.java:940)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPages(ConfluenceInputFilterStream.java:995)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageAndChildren(ConfluenceInputFilterStream.java:1760)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPage(ConfluenceInputFilterStream.java:940)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPages(ConfluenceInputFilterStream.java:995)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendOrphans(ConfluenceInputFilterStream.java:735)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readPageAndChildren(ConfluenceInputFilterStream.java:1766)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendPage(ConfluenceInputFilterStream.java:940)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendSpace(ConfluenceInputFilterStream.java:691)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendConfluenceRootSpace(ConfluenceInputFilterStream.java:669)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.sendSpaces(ConfluenceInputFilterStream.java:527)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.readInternal(ConfluenceInputFilterStream.java:402)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.read(ConfluenceInputFilterStream.java:288)</trace>
<trace>org.xwiki.contrib.confluence.filter.internal.input.ConfluenceInputFilterStream.read(ConfluenceInputFilterStream.java:116)</trace>
<trace>org.xwiki.filter.input.AbstractBeanInputFilterStream.read(AbstractBeanInputFilterStream.java:79)</trace>
<trace>org.xwiki.filter.internal.job.FilterStreamConverterJob.runInternal(FilterStreamConverterJob.java:97)</trace>
<trace>org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)</trace>
<trace>org.xwiki.job.AbstractJob.run(AbstractJob.java:223)</trace>
<trace>org.xwiki.filter.script.internal.ScriptFilterStreamConverterJob.run(ScriptFilterStreamConverterJob.java:75)</trace>
<trace>com.xwiki.confluencepro.internal.ConfluenceMigrationJob.runInternal(ConfluenceMigrationJob.java:165)</trace>
<trace>org.xwiki.job.AbstractJob.runInContext(AbstractJob.java:246)</trace>
<trace>org.xwiki.job.AbstractJob.run(AbstractJob.java:223)</trace>
<trace>java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)</trace>
<trace>java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)</trace>
<trace>java.base/java.lang.Thread.run(Unknown Source)</trace>
</stackTrace>
The problem is that in XWiki the JIRA macro require a JIRA server ID and this it not always available in confluence.
One way to fix this issue would be to introduce a default JIRA server in the XWiki JIRA extension as same as we have in confluence. This would be handled by JIRA-37