[ https://issues.apache.org/jira/browse/OAK-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18001392#comment-18001392 ]
Christian Schneider commented on OAK-11788: ------------------------------------------- [~reschke] Unfortunately I don't know where the change of primary node type happens. > 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)