This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
The following commit(s) were added to refs/heads/master by this push:
new 4f5e712 Fix for SLING-8913 - fixing an issue on publish if the node
has no jcr:content child
4f5e712 is described below
commit 4f5e71251896ce1fe5c58a4718c8e1feb2e84d66
Author: Dan Klco <[email protected]>
AuthorDate: Thu Feb 25 12:11:11 2021 -0500
Fix for SLING-8913 - fixing an issue on publish if the node has no
jcr:content child
---
.../publication/StandalonePublicationManager.java | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git
a/core/src/main/java/org/apache/sling/cms/core/publication/StandalonePublicationManager.java
b/core/src/main/java/org/apache/sling/cms/core/publication/StandalonePublicationManager.java
index 6c64499..a1e195a 100644
---
a/core/src/main/java/org/apache/sling/cms/core/publication/StandalonePublicationManager.java
+++
b/core/src/main/java/org/apache/sling/cms/core/publication/StandalonePublicationManager.java
@@ -17,10 +17,14 @@
package org.apache.sling.cms.core.publication;
import java.util.Calendar;
+import java.util.Collections;
import java.util.Optional;
+import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.PersistenceException;
+import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceUtil;
import org.apache.sling.cms.CMSConstants;
import org.apache.sling.cms.PublishableResource;
import org.apache.sling.cms.publication.PUBLICATION_MODE;
@@ -44,8 +48,13 @@ public class StandalonePublicationManager implements
PublicationManager {
@Override
public void publish(PublishableResource resource) throws
PublicationException {
try {
- ModifiableValueMap properties = Optional
-
.ofNullable(resource.getContentResource().adaptTo(ModifiableValueMap.class))
+ Resource contentResource = resource.getContentResource();
+ if (contentResource == null) {
+ contentResource =
resource.getResource().getResourceResolver().create(resource.getResource(),
+ JcrConstants.JCR_CONTENT,
+ Collections.singletonMap(JcrConstants.JCR_PRIMARYTYPE,
JcrConstants.NT_UNSTRUCTURED));
+ }
+ ModifiableValueMap properties =
Optional.ofNullable(contentResource.adaptTo(ModifiableValueMap.class))
.orElseThrow(() -> new PublicationException("Cannot modify
resource"));
properties.put(CMSConstants.PN_PUBLISHED, true);
properties.put(CMSConstants.PN_LAST_PUBLICATION,
Calendar.getInstance());
@@ -61,8 +70,13 @@ public class StandalonePublicationManager implements
PublicationManager {
@Override
public void unpublish(PublishableResource resource) throws
PublicationException {
try {
- ModifiableValueMap properties = Optional
-
.ofNullable(resource.getContentResource().adaptTo(ModifiableValueMap.class))
+ Resource contentResource = resource.getContentResource();
+ if (contentResource == null) {
+ contentResource =
resource.getResource().getResourceResolver().create(resource.getResource(),
+ JcrConstants.JCR_CONTENT,
+ Collections.singletonMap(JcrConstants.JCR_PRIMARYTYPE,
JcrConstants.NT_UNSTRUCTURED));
+ }
+ ModifiableValueMap properties =
Optional.ofNullable(contentResource.adaptTo(ModifiableValueMap.class))
.orElseThrow(() -> new PublicationException("Cannot modify
resource"));
properties.put(CMSConstants.PN_PUBLISHED, false);
properties.put(CMSConstants.PN_LAST_PUBLICATION,
Calendar.getInstance());