SLING-12238 : Prevent NullPointerException if global transformer returns null
diff --git a/src/main/java/org/apache/sling/rewriter/TransformerFactory.java b/src/main/java/org/apache/sling/rewriter/TransformerFactory.java
index 761bbee..cf6f6e1 100644
--- a/src/main/java/org/apache/sling/rewriter/TransformerFactory.java
+++ b/src/main/java/org/apache/sling/rewriter/TransformerFactory.java
@@ -45,7 +45,10 @@
 
     /**
      * Create a new transformer for the pipeline.
-     * @return A new transformer.
+     * If the factory is not able to create a transformer, it should return {@code null}.
+     * If the transformer is not a global transformer and is not optional, returning {@code null} will
+     * fail the pipeline creation.
+     * @return A new transformer or {@code null}
      */
     Transformer createTransformer();
 }
diff --git a/src/main/java/org/apache/sling/rewriter/impl/PipelineImpl.java b/src/main/java/org/apache/sling/rewriter/impl/PipelineImpl.java
index a4a3e88..7e72f8b 100644
--- a/src/main/java/org/apache/sling/rewriter/impl/PipelineImpl.java
+++ b/src/main/java/org/apache/sling/rewriter/impl/PipelineImpl.java
@@ -93,10 +93,12 @@
             // add all pre rewriter transformers
             transformers = new Transformer[transformerCount];
             for(int i=0; i< rewriters[0].length; i++) {
-                transformers[index] = rewriters[0][i];
-                LOGGER.debug("Using pre transformer: {}.", transformers[index]);
-                transformers[index].init(processingContext, ProcessingComponentConfigurationImpl.EMPTY);
-                index++;
+                if ( rewriters[0][i] != null ) {
+                    transformers[index] = rewriters[0][i];
+                    LOGGER.debug("Using pre transformer: {}.", transformers[index]);
+                    transformers[index].init(processingContext, ProcessingComponentConfigurationImpl.EMPTY);
+                    index++;
+                }
             }
             if ( transformerConfigs != null ) {
                 for(int i=0; i< transformerConfigs.length;i++) {
@@ -112,10 +114,12 @@
                 }
             }
             for(int i=0; i< rewriters[1].length; i++) {
-                transformers[index] = rewriters[1][i];
-                LOGGER.debug("Using post transformer: {}.", transformers[index]);
-                transformers[index].init(processingContext, ProcessingComponentConfigurationImpl.EMPTY);
-                index++;
+                if ( rewriters[1][i] != null ) {
+                    transformers[index] = rewriters[1][i];
+                    LOGGER.debug("Using post transformer: {}.", transformers[index]);
+                    transformers[index].init(processingContext, ProcessingComponentConfigurationImpl.EMPTY);
+                    index++;
+                }
             }
         } else {
             transformers = EMPTY_TRANSFORMERS;
diff --git a/src/main/java/org/apache/sling/rewriter/package-info.java b/src/main/java/org/apache/sling/rewriter/package-info.java
index 02658bb..dbaaa86 100644
--- a/src/main/java/org/apache/sling/rewriter/package-info.java
+++ b/src/main/java/org/apache/sling/rewriter/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("1.0.0")
+@Version("1.0.1")
 package org.apache.sling.rewriter;
 
 import org.osgi.annotation.versioning.Version;