This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 6ef991849f48af1fa1bcb4992acfb8c9e3029995
Author: Dan Klco <[email protected]>
AuthorDate: Thu Aug 27 17:02:19 2020 -0400

    Fixing error when retrieving a publishable resource with an unset / invalid 
publication type
---
 .../core/internal/models/PublishableResourceImpl.java  | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git 
a/core/src/main/java/org/apache/sling/cms/core/internal/models/PublishableResourceImpl.java
 
b/core/src/main/java/org/apache/sling/cms/core/internal/models/PublishableResourceImpl.java
index bd1366f..043646e 100644
--- 
a/core/src/main/java/org/apache/sling/cms/core/internal/models/PublishableResourceImpl.java
+++ 
b/core/src/main/java/org/apache/sling/cms/core/internal/models/PublishableResourceImpl.java
@@ -31,6 +31,8 @@ import org.apache.sling.cms.SiteManager;
 import org.apache.sling.cms.publication.PublicationType;
 import org.apache.sling.models.annotations.Model;
 import org.apache.sling.models.annotations.injectorspecific.Self;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Implementation of the publishable resource interface and adaptable from a
@@ -39,6 +41,10 @@ import 
org.apache.sling.models.annotations.injectorspecific.Self;
 @Model(adaptables = Resource.class, adapters = PublishableResource.class)
 public class PublishableResourceImpl implements PublishableResource {
 
+    private static final Logger log = 
LoggerFactory.getLogger(PublishableResourceImpl.class);
+
+    public static final String LEGACY_PUBLISHED_PROPERTY = "published";
+
     private final Resource contentResource;
 
     private final Calendar created;
@@ -72,7 +78,8 @@ public class PublishableResourceImpl implements 
PublishableResource {
             this.lastPublication = 
properties.get(CMSConstants.PN_LAST_PUBLICATION, Calendar.class);
             this.lastPublicationBy = 
properties.get(NodeTypeConstants.JCR_LASTMODIFIEDBY, String.class);
             this.lastPublicationType = 
properties.get(CMSConstants.PN_LAST_PUBLICATION_TYPE, String.class);
-            this.published = properties.get(CMSConstants.PN_PUBLISHED, false);
+            this.published = properties.get(CMSConstants.PN_PUBLISHED,
+                    properties.get(LEGACY_PUBLISHED_PROPERTY, false));
         } else {
             this.lastModified = null;
             this.lastModifiedBy = null;
@@ -110,7 +117,14 @@ public class PublishableResourceImpl implements 
PublishableResource {
 
     @Override
     public PublicationType getLastPublicationType() {
-        return PublicationType.valueOf(lastPublicationType);
+        if (lastPublicationType != null) {
+            try {
+                return PublicationType.valueOf(lastPublicationType);
+            } catch (IllegalArgumentException iae) {
+                log.warn("Invalid publication type: {}", lastPublicationType, 
iae);
+            }
+        }
+        return null;
     }
 
     @Override

Reply via email to