[ https://issues.apache.org/jira/browse/SLING-9896?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jörg Hoh updated SLING-9896: ---------------------------- Description: When the SlingPostServlet receives a PersistenceExceptions while trying to persist the changes, it should not throw an internal server error, but a statuscode of 405, because this behavior is expected. Example stacktrace: {noformat} 11.11.2020 11:18:38.418 *ERROR* [172.16.123.101 [1605093518414] POST /foo/bar.html HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing. org.apache.sling.api.resource.PersistenceException: Unable to create node at /foo/bar.html at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:477) [org.apache.sling.jcr.resource:3.0.22] at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.create(AuthenticatedResourceProvider.java:182) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.create(ResourceResolverControl.java:381) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.create(ResourceResolverImpl.java:979) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.deepGetOrCreateResource(AbstractCreateOperation.java:598) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.processCreate(AbstractCreateOperation.java:146) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.ModifyOperation.doRun(ModifyOperation.java:83) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.AbstractPostOperation.run(AbstractPostOperation.java:99) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:233) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) [org.apache.sling.api:2.22.0] at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) [org.apache.sling.api:2.22.0] [...] Caused by: javax.jcr.nodetype.ConstraintViolationException: No default node type available for /foo/bar.html at org.apache.jackrabbit.oak.plugins.tree.TreeUtil.addChild(TreeUtil.java:234) [org.apache.jackrabbit.oak-security-spi:1.35.0] at org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.addChild(NodeDelegate.java:690) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:314) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:280) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:280) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:265) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:448) [org.apache.sling.jcr.resource:3.0.22] ... 154 common frames omitted {noformat} was: When the SlingPostServlet receives a PersistenceExceptions while trying to persist the changes, it should not throw an internal server error, but a statuscode of 4xx, because this behavior is expected. Example stacktrace: {noformat} 11.11.2020 11:18:38.418 *ERROR* [172.16.123.101 [1605093518414] POST /foo/bar.html HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing. org.apache.sling.api.resource.PersistenceException: Unable to create node at /foo/bar.html at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:477) [org.apache.sling.jcr.resource:3.0.22] at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.create(AuthenticatedResourceProvider.java:182) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.create(ResourceResolverControl.java:381) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.create(ResourceResolverImpl.java:979) [org.apache.sling.resourceresolver:1.7.0] at org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.deepGetOrCreateResource(AbstractCreateOperation.java:598) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.processCreate(AbstractCreateOperation.java:146) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.ModifyOperation.doRun(ModifyOperation.java:83) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.operations.AbstractPostOperation.run(AbstractPostOperation.java:99) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:233) [org.apache.sling.servlets.post:2.3.36] at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) [org.apache.sling.api:2.22.0] at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) [org.apache.sling.api:2.22.0] [...] Caused by: javax.jcr.nodetype.ConstraintViolationException: No default node type available for /foo/bar.html at org.apache.jackrabbit.oak.plugins.tree.TreeUtil.addChild(TreeUtil.java:234) [org.apache.jackrabbit.oak-security-spi:1.35.0] at org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.addChild(NodeDelegate.java:690) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:314) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:280) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:280) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:265) [org.apache.jackrabbit.oak-jcr:1.35.0] at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:448) [org.apache.sling.jcr.resource:3.0.22] ... 154 common frames omitted {noformat} > change statuscode in SlingPostServlet for PersistenceException > -------------------------------------------------------------- > > Key: SLING-9896 > URL: https://issues.apache.org/jira/browse/SLING-9896 > Project: Sling > Issue Type: Improvement > Components: Servlets > Affects Versions: Servlets Post 2.3.36 > Reporter: Jörg Hoh > Priority: Major > > When the SlingPostServlet receives a PersistenceExceptions while trying to > persist the changes, it should not throw an internal server error, but a > statuscode of 405, because this behavior is expected. > Example stacktrace: > {noformat} > 11.11.2020 11:18:38.418 *ERROR* [172.16.123.101 [1605093518414] POST > /foo/bar.html HTTP/1.1] > org.apache.sling.servlets.post.impl.operations.ModifyOperation > Exception during response processing. > org.apache.sling.api.resource.PersistenceException: Unable to create node at > /foo/bar.html > at > org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:477) > [org.apache.sling.jcr.resource:3.0.22] > at > org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.create(AuthenticatedResourceProvider.java:182) > [org.apache.sling.resourceresolver:1.7.0] > at > org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.create(ResourceResolverControl.java:381) > [org.apache.sling.resourceresolver:1.7.0] > at > org.apache.sling.resourceresolver.impl.ResourceResolverImpl.create(ResourceResolverImpl.java:979) > [org.apache.sling.resourceresolver:1.7.0] > at > org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.deepGetOrCreateResource(AbstractCreateOperation.java:598) > [org.apache.sling.servlets.post:2.3.36] > at > org.apache.sling.servlets.post.impl.operations.AbstractCreateOperation.processCreate(AbstractCreateOperation.java:146) > [org.apache.sling.servlets.post:2.3.36] > at > org.apache.sling.servlets.post.impl.operations.ModifyOperation.doRun(ModifyOperation.java:83) > [org.apache.sling.servlets.post:2.3.36] > at > org.apache.sling.servlets.post.impl.operations.AbstractPostOperation.run(AbstractPostOperation.java:99) > [org.apache.sling.servlets.post:2.3.36] > at > org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:233) > [org.apache.sling.servlets.post:2.3.36] > at > org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:146) > [org.apache.sling.api:2.22.0] > at > org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:342) > [org.apache.sling.api:2.22.0] > [...] > Caused by: javax.jcr.nodetype.ConstraintViolationException: No default node > type available for /foo/bar.html > at > org.apache.jackrabbit.oak.plugins.tree.TreeUtil.addChild(TreeUtil.java:234) > [org.apache.jackrabbit.oak-security-spi:1.35.0] > at > org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.addChild(NodeDelegate.java:690) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:314) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:280) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:280) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:265) > [org.apache.jackrabbit.oak-jcr:1.35.0] > at > org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.create(JcrResourceProvider.java:448) > [org.apache.sling.jcr.resource:3.0.22] > ... 154 common frames omitted > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)