From fb8a6e3ae027006f73aaf7b2cae16d70b399d8e3 Mon Sep 17 00:00:00 2001 From: Andreas Gudian Date: Tue, 17 Mar 2015 13:52:12 +0100 Subject: [PATCH] #504 fix potential NPE in StreamEncoder (char-array can be null) --- .../writer/IndentationCorrectingWriter.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/writer/IndentationCorrectingWriter.java b/processor/src/main/java/org/mapstruct/ap/writer/IndentationCorrectingWriter.java index 5e3446842..b1a36dfbb 100644 --- a/processor/src/main/java/org/mapstruct/ap/writer/IndentationCorrectingWriter.java +++ b/processor/src/main/java/org/mapstruct/ap/writer/IndentationCorrectingWriter.java @@ -143,22 +143,24 @@ class IndentationCorrectingWriter extends Writer { } private void flush(StateContext context) throws IOException { - context.writer.write( - context.characters, - context.lastStateChange, - context.currentIndex - context.lastStateChange - ); - - if ( DEBUG ) { - System.out.print( - new String( - java.util.Arrays.copyOfRange( - context.characters, - context.lastStateChange, - context.currentIndex - ) - ) + if ( null != context.characters && context.currentIndex - context.lastStateChange > 0 ) { + context.writer.write( + context.characters, + context.lastStateChange, + context.currentIndex - context.lastStateChange ); + + if ( DEBUG ) { + System.out.print( + new String( + java.util.Arrays.copyOfRange( + context.characters, + context.lastStateChange, + context.currentIndex + ) + ) + ); + } } } },