diff --git a/config/alfresco/content-services-context.xml b/config/alfresco/content-services-context.xml index f6ea0ba147..4d8a38b340 100644 --- a/config/alfresco/content-services-context.xml +++ b/config/alfresco/content-services-context.xml @@ -115,9 +115,6 @@ - - - diff --git a/source/java/org/alfresco/repo/content/transform/ComplexContentTransformer.java b/source/java/org/alfresco/repo/content/transform/ComplexContentTransformer.java index da96bb4cf8..aedde22ce3 100644 --- a/source/java/org/alfresco/repo/content/transform/ComplexContentTransformer.java +++ b/source/java/org/alfresco/repo/content/transform/ComplexContentTransformer.java @@ -322,7 +322,6 @@ public class ComplexContentTransformer extends AbstractContentTransformer2 imple Iterator transformerIterator = transformers.iterator(); Iterator intermediateMimetypeIterator = intermediateMimetypes.iterator(); - boolean first = true; while (transformerIterator.hasNext()) { ContentTransformer transformer = transformerIterator.next(); @@ -343,18 +342,19 @@ public class ComplexContentTransformer extends AbstractContentTransformer2 imple "." + targetExt); currentWriter = new FileContentWriter(tempFile); currentWriter.setMimetype(nextMimetype); - - // Must clear the sourceNodeRef to avoid transformers thinking the temporary file - // is the original node. Not done for the first transformer as the name will be - // correct. - if (!first) - { - options.setSourceNodeRef(null); - } - first = false; } + // transform transformer.transform(currentReader, currentWriter, options); + + // Must clear the sourceNodeRef after the first transformation to avoid later + // transformers thinking the intermediate file is the original node. However as + // we put the original sourceNodeRef back at the end of this try block (so that we are + // not changing any data), we must setting the value to null just after the + // transformation. Really only needs to be done after the first transformation + // but doing it every time is simpler and faster. + options.setSourceNodeRef(null); + // move the source on currentReader = currentWriter.getReader(); }