We got the latest version of ms-data-core-api (2.0.21) working on our cluster, but it seems the issue we were having (way back with version 2.0.6) has not been resolved yet. Hopefully, this is caused by a bug that you or someone on your team can fix without much difficulty.
Specifically, all we're trying to do is convert a user-uploaded mzid file (found here) to mzTab. We use our own simple Java application to do this, though it doesn't do anything special; it just wraps basic ms-data-core-api code to convert in a standard way:
When running this simple code on the above mzid file, we get the following log output from ms-data-core-api (before it throws its final exception):
E|RawXMLListener |Error trying to instantiate reference resolver: uk.ac.ebi.jmzidml.xml.jaxb.resolver.PeptideEvidenceRefResolver
java.lang.NullPointerException: null
at java.io.StringReader.<init>(StringReader.java:50)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.AbstractReferenceResolver.unmarshal(AbstractReferenceResolver.java:89)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.PeptideEvidenceRefResolver.updateObject(PeptideEvidenceRefResolver.java:24)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.PeptideEvidenceRefResolver.afterUnmarshal(PeptideEvidenceRefResolver.java:39)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.referenceResolving(RawXMLListener.java:187)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.afterUnmarshal(RawXMLListener.java:52)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.fireAfterUnmarshal(Loader.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.leaveElement(StructureLoader.java:265)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:585)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:273)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.AbstractReferenceResolver.unmarshal(AbstractReferenceResolver.java:89)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver.updateObject(SpectrumIdentificationItemRefRefResolver.java:24)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver.afterUnmarshal(SpectrumIdentificationItemRefRefResolver.java:39)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.referenceResolving(RawXMLListener.java:187)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.afterUnmarshal(RawXMLListener.java:52)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.fireAfterUnmarshal(Loader.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.leaveElement(StructureLoader.java:265)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:585)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:273)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.generateObject(MzIdentMLUnmarshaller.java:323)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.unmarshal(MzIdentMLUnmarshaller.java:255)
at uk.ac.ebi.pride.utilities.data.io.file.MzIdentMLUnmarshallerAdaptor.getIdentificationById(MzIdentMLUnmarshallerAdaptor.java:164)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.MzIdentMLControllerImpl.getProteinById(MzIdentMLControllerImpl.java:518)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.CachedDataAccessController.getProteinById(CachedDataAccessController.java:235)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.loadSearchEngineScores(AbstractMzTabConverter.java:299)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.convertMetadata(AbstractMzTabConverter.java:109)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.convertMetadata(MzIdentMLMzTabConverter.java:1056)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.createArchitecture(ConvertProvider.java:53)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.<init>(ConvertProvider.java:39)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.<init>(AbstractMzTabConverter.java:54)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.<init>(MzIdentMLMzTabConverter.java:69)
E|RawXMLListener |Error trying to instantiate reference resolver: uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver
java.lang.IllegalStateException: Could not instantiate reference resolver: uk.ac.ebi.jmzidml.xml.jaxb.resolver.PeptideEvidenceRefResolver
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.referenceResolving(RawXMLListener.java:191)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.afterUnmarshal(RawXMLListener.java:52)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.fireAfterUnmarshal(Loader.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.leaveElement(StructureLoader.java:265)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:585)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:273)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.AbstractReferenceResolver.unmarshal(AbstractReferenceResolver.java:89)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver.updateObject(SpectrumIdentificationItemRefRefResolver.java:24)
at uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver.afterUnmarshal(SpectrumIdentificationItemRefRefResolver.java:39)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.referenceResolving(RawXMLListener.java:187)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.afterUnmarshal(RawXMLListener.java:52)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.fireAfterUnmarshal(Loader.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.leaveElement(StructureLoader.java:265)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:585)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:273)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.generateObject(MzIdentMLUnmarshaller.java:323)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.unmarshal(MzIdentMLUnmarshaller.java:255)
at uk.ac.ebi.pride.utilities.data.io.file.MzIdentMLUnmarshallerAdaptor.getIdentificationById(MzIdentMLUnmarshallerAdaptor.java:164)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.MzIdentMLControllerImpl.getProteinById(MzIdentMLControllerImpl.java:518)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.CachedDataAccessController.getProteinById(CachedDataAccessController.java:235)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.loadSearchEngineScores(AbstractMzTabConverter.java:299)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.convertMetadata(AbstractMzTabConverter.java:109)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.convertMetadata(MzIdentMLMzTabConverter.java:1056)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.createArchitecture(ConvertProvider.java:53)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.<init>(ConvertProvider.java:39)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.<init>(AbstractMzTabConverter.java:54)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.<init>(MzIdentMLMzTabConverter.java:69)
----------
Then ms-data-core-api throws this exception, which our application catches:
----------
uk.ac.ebi.pride.utilities.data.controller.DataAccessException: Failed to retrieve protein identification: PROTEINDETECTIONHYPOTHESIS_IGHG4_HUMAN
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.MzIdentMLControllerImpl.getProteinById(MzIdentMLControllerImpl.java:555)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.CachedDataAccessController.getProteinById(CachedDataAccessController.java:235)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.loadSearchEngineScores(AbstractMzTabConverter.java:299)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.convertMetadata(AbstractMzTabConverter.java:109)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.convertMetadata(MzIdentMLMzTabConverter.java:1056)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.createArchitecture(ConvertProvider.java:53)
at uk.ac.ebi.pride.jmztab.utils.convert.ConvertProvider.<init>(ConvertProvider.java:39)
at uk.ac.ebi.pride.utilities.data.exporters.AbstractMzTabConverter.<init>(AbstractMzTabConverter.java:54)
at uk.ac.ebi.pride.utilities.data.exporters.MzIdentMLMzTabConverter.<init>(MzIdentMLMzTabConverter.java:69)
Caused by: java.lang.IllegalStateException: Could not instantiate reference resolver: uk.ac.ebi.jmzidml.xml.jaxb.resolver.SpectrumIdentificationItemRefRefResolver
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.referenceResolving(RawXMLListener.java:191)
at uk.ac.ebi.jmzidml.xml.jaxb.unmarshaller.listeners.RawXMLListener.afterUnmarshal(RawXMLListener.java:52)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.fireAfterUnmarshal(Loader.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StructureLoader.leaveElement(StructureLoader.java:265)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.endElement(UnmarshallingContext.java:585)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.endElement(SAXConnector.java:165)
at org.xml.sax.helpers.XMLFilterImpl.endElement(XMLFilterImpl.java:570)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:357)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:221)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:273)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.generateObject(MzIdentMLUnmarshaller.java:323)
at uk.ac.ebi.jmzidml.xml.io.MzIdentMLUnmarshaller.unmarshal(MzIdentMLUnmarshaller.java:255)
at uk.ac.ebi.pride.utilities.data.io.file.MzIdentMLUnmarshallerAdaptor.getIdentificationById(MzIdentMLUnmarshallerAdaptor.java:164)
at uk.ac.ebi.pride.utilities.data.controller.impl.ControllerImpl.MzIdentMLControllerImpl.getProteinById(MzIdentMLControllerImpl.java:518)
... 11 more
I have no idea what these errors mean, so hopefully you can help us with this. This is a standard user-uploaded mzid file which should not pose any problem converting to mzTab.