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-file-optimization.git


The following commit(s) were added to refs/heads/master by this push:
     new 29ef19c  Fixing issue where the Optimize File operation was not 
updating the file
29ef19c is described below

commit 29ef19c95a0e09e420ffac82b00af599f5d60938
Author: Dan Klco <[email protected]>
AuthorDate: Mon Aug 6 11:00:37 2018 -0400

    Fixing issue where the Optimize File operation was not updating the file
---
 .../apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java  | 10 +++++-----
 .../org/apache/sling/fileoptim/impl/OptimizeFileOperation.java |  5 +++++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java 
b/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
index 5e5b9eb..0314c79 100644
--- 
a/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
+++ 
b/src/main/java/org/apache/sling/fileoptim/impl/FileOptimizerServiceImpl.java
@@ -16,7 +16,9 @@
  */
 package org.apache.sling.fileoptim.impl;
 
+import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
@@ -219,11 +221,10 @@ public class FileOptimizerServiceImpl implements 
FileOptimizerService, ServiceLi
 
                mvm.put(OptimizedFile.PN_ALGORITHM, result.getAlgorithm());
                mvm.put(OptimizedFile.PN_HASH, 
calculateHash(result.getOptimizedContents()));
-               mvm.put(OptimizedFile.PN_ORIGINAL, 
result.getOptimizedContents());
+               mvm.put(OptimizedFile.PN_ORIGINAL, 
mvm.get(JcrConstants.JCR_DATA, InputStream.class));
                mvm.put(OptimizedFile.PN_SAVINGS, result.getSavings());
 
-               OptimizedFile optim = fileResource.adaptTo(OptimizedFile.class);
-               mvm.put(JcrConstants.JCR_DATA, 
IOUtils.toByteArray(optim.getContent()));
+               mvm.put(JcrConstants.JCR_DATA, new 
ByteArrayInputStream(result.getOptimizedContents()));
 
                if (autoCommit) {
                        log.debug("Persisting changes...");
@@ -265,8 +266,7 @@ public class FileOptimizerServiceImpl implements 
FileOptimizerService, ServiceLi
        }
 
        /**
-        * @param fileOptimizers
-        *            the fileOptimizers to set
+        * @param fileOptimizers the fileOptimizers to set
         */
        public void setFileOptimizers(Map<String, 
List<ServiceReference<FileOptimizer>>> fileOptimizers) {
                this.fileOptimizers = fileOptimizers;
diff --git 
a/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java 
b/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
index 89539a4..da42e91 100644
--- a/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
+++ b/src/main/java/org/apache/sling/fileoptim/impl/OptimizeFileOperation.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.jackrabbit.JcrConstants;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.fileoptim.FileOptimizerService;
@@ -51,7 +52,11 @@ public class OptimizeFileOperation implements PostOperation {
        protected void doRun(SlingHttpServletRequest request, PostResponse 
response, List<Modification> changes)
                        throws IOException {
                Resource resource = request.getResource();
+
                if (fileOptimizer.canOptimize(resource)) {
+                       if (resource.getChild(JcrConstants.JCR_CONTENT) != 
null) {
+                               resource = 
resource.getChild(JcrConstants.JCR_CONTENT);
+                       }
                        fileOptimizer.optimizeFile(resource, true);
                        
changes.add(Modification.onModified(resource.getPath()));
                }

Reply via email to