[
https://issues.apache.org/jira/browse/OAK-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Reschke updated OAK-11788:
---------------------------------
Priority: Major (was: Critical)
> Make sure path is added when we throw exceptions in NodeDelegate and NodeImpl
> -----------------------------------------------------------------------------
>
> Key: OAK-11788
> URL: https://issues.apache.org/jira/browse/OAK-11788
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: jcr
> Reporter: Christian Schneider
> Priority: Major
>
> We have several cases where we apply content packages and get exceptions from
> Oak about a node or property without a path.
> This makes it very hard to spot the issue in large packages.
> We must make sure we add the path to the exception message or as field.
> Example:
> {code:java}
> org.apache.sling.distribution.common.DistributionException: Error trying to
> extract package at path
> /etc/packages/some/some.ui.content-0.0.1-SNAPSHOT-cp2fm-converted.zip because
> of 'org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException:
> javax.jcr.nodetype.ConstraintViolationException: No matching property
> definition: jcr:data = {198 bytes}'
> at
> org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handlePath(ContentPackageExtractor.java:99)
> at
> org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handle(ContentPackageExtractor.java:82)
> at
> org.apache.sling.distribution.journal.bookkeeper.PackageHandler.apply(PackageHandler.java:67)
> at
> org.apache.sling.distribution.journal.bookkeeper.BookKeeper.importPackage(BookKeeper.java:162)
> at
> org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.processPackageMessage(DistributionSubscriber.java:333)
> at
> org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.tryProcess(DistributionSubscriber.java:262)
> at
> org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.handlePackageMessage(DistributionSubscriber.java:246)
> at
> com.adobe.granite.distribution.service.mclient.ServicePoller$Adapter.handle(ServicePoller.java:287)
> at
> com.adobe.granite.distribution.service.mclient.ServicePoller.processMessage(ServicePoller.java:240)
> at
> com.adobe.granite.distribution.service.mclient.ServicePoller.getNextMessageBatch(ServicePoller.java:124)
> at
> com.adobe.granite.distribution.service.mclient.ServicePoller.poller(ServicePoller.java:97)
> at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
> at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
> at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
> at java.base/java.lang.Thread.run(Thread.java:1583)
> Caused by: javax.jcr.RepositoryException:
> org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException:
> javax.jcr.nodetype.ConstraintViolationException: No matching property
> definition: jcr:data = {198 bytes}
> at
> org.apache.jackrabbit.vault.fs.impl.io.AbstractArtifactHandler.importDocView(AbstractArtifactHandler.java:187)
> at
> org.apache.jackrabbit.vault.fs.impl.io.GenericArtifactHandler.accept(GenericArtifactHandler.java:88)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1116)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:977)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1019)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1019)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1019)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1019)
> at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1019)
> at org.apache.jackrabbit.vault.fs.io.Importer.run(Importer.java:532)
> at
> org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:284)
> at
> org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:399)
> at
> org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:357)
> at
> org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:343)
> at
> org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.installPackage(ContentPackageExtractor.java:138)
> at
> org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.installPackage(ContentPackageExtractor.java:120)
> at
> org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handlePath(ContentPackageExtractor.java:93)
> ... 15 more
> Caused by: org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException:
> javax.jcr.nodetype.ConstraintViolationException: No matching property
> definition: jcr:data = {198 bytes}
> at
> org.apache.jackrabbit.vault.fs.io.DocViewParser.parse(DocViewParser.java:256)
> at
> org.apache.jackrabbit.vault.fs.impl.io.AbstractArtifactHandler.importDocView(AbstractArtifactHandler.java:177)
> ... 31 more
> Caused by: org.xml.sax.SAXException:
> javax.jcr.nodetype.ConstraintViolationException: No matching property
> definition: jcr:data = {198 bytes}
> javax.jcr.nodetype.ConstraintViolationException: No matching property
> definition: jcr:data = {198 bytes}
> at
> org.apache.jackrabbit.vault.fs.impl.io.DocViewSAXHandler.endDocument(DocViewSAXHandler.java:209)
> at
> java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:754)
> at
> java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:547)
> at
> java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
> at
> java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
> at
> java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
> at
> java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
> at
> java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
> at
> java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:326)
> at
> org.apache.jackrabbit.vault.fs.io.DocViewParser.parse(DocViewParser.java:254)
> ... 32 more
> Caused by: javax.jcr.nodetype.ConstraintViolationException: No matching
> property definition: jcr:data = {198 bytes}
> at
> org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.setProperty(NodeDelegate.java:495)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$36.perform(NodeImpl.java:1417)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$36.perform(NodeImpl.java:1404)
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:230)
> at
> org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:113)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl.internalSetProperty(NodeImpl.java:1404)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl.setProperty(NodeImpl.java:377)
> at
> org.apache.jackrabbit.vault.fs.impl.io.DocViewImporter.endDocument(DocViewImporter.java:579)
> at
> org.apache.jackrabbit.vault.fs.impl.io.DocViewSAXHandler.endDocument(DocViewSAXHandler.java:207)
> ... 41 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)