[
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)