[
https://issues.apache.org/jira/browse/SLING-12944?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Konrad Windszus updated SLING-12944:
------------------------------------
Component/s: Servlets
(was: API)
> SlingPostServlet fails when resource contains property not backed by JCR
> property
> ---------------------------------------------------------------------------------
>
> Key: SLING-12944
> URL: https://issues.apache.org/jira/browse/SLING-12944
> Project: Sling
> Issue Type: Bug
> Components: Servlets
> Affects Versions: Servlets Post 3.0.0
> Reporter: Joerg Hoh
> Assignee: Konrad Windszus
> Priority: Major
>
> I am just testing the latest JCR Resource 3.3.4 with an recent development
> state of AEM, and the following POST fails with a status 422 (works fine with
> JCR Resource 3.3.2)
> {code}
> $ curl -svo /dev/null -u admin:admin -Fsling:resourceType=ab/cd
> localhost:4502/tmp/test1
> {code}
> (that path did not exist yet)
> {code}
> 22.09.2025 12:33:27.982 *WARN* [[0:0:0:0:0:0:0:1] [1758537207973] POST
> /tmp/test1 HTTP/1.1] org.apache.sling.servlets.post.impl.SlingPostServlet
> Exception while handling POST on path [/tmp/test1] with operation
> [org.apache.sling
> .servlets.post.impl.operations.ModifyOperation]
> org.apache.sling.servlets.post.exceptions.PreconditionViolatedPersistenceException:
> sling:resourceType not found on /tmp/test1
> at
> org.apache.sling.servlets.post.impl.helper.JCRSupportImpl.isPropertyMultiple(JCRSupportImpl.java:230)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.helper.JCRSupport.isPropertyMultiple(JCRSupport.java:116)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.isMultiValue(SlingPropertyValueHandler.java:368)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.setPropertyAsIs(SlingPropertyValueHandler.java:236)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.setProperty(SlingPropertyValueHandler.java:124)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.operations.ModifyOperation.writeContent(ModifyOperation.java:372)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.operations.ModifyOperation.doRun(ModifyOperation.java:93)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.operations.AbstractPostOperation.run(AbstractPostOperation.java:103)
> [org.apache.sling.servlets.post:2.6.0]
> at
> org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:249)
> [org.apache.sling.servlets.post:2.6.0]
> [...]
> Caused by: javax.jcr.PathNotFoundException: sling:resourceType not found on
> /tmp/test1
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$11.perform(NodeImpl.java:660)
> [org.apache.jackrabbit.oak-jcr:1.84.0.T20250917093322-af8592b]
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$11.perform(NodeImpl.java:653)
> [org.apache.jackrabbit.oak-jcr:1.84.0.T20250917093322-af8592b]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:236)
> [org.apache.jackrabbit.oak-jcr:1.84.0.T20250917093322-af8592b]
> at
> org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:113)
> [org.apache.jackrabbit.oak-jcr:1.84.0.T20250917093322-af8592b]
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl.getProperty(NodeImpl.java:653)
> [org.apache.jackrabbit.oak-jcr:1.84.0.T20250917093322-af8592b]
> at
> org.apache.sling.servlets.post.impl.helper.JCRSupportImpl.isPropertyMultiple(JCRSupportImpl.java:227)
> [org.apache.sling.servlets.post:2.6.0]
> ... 195 common frames omitted
> {code}
> the following call works:
> {code}
> $ curl -u admin:admin -Ffoo=bar localhost:4502/tmp/test1
> {code}
> /CC [~kwin]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)