diff --git a/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java b/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java index 8081df8a..410b7702 100644 --- a/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java +++ b/common/src/main/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessor.java @@ -76,6 +76,8 @@ public abstract class AbstractPlaceholderAwarePostProcessor extends AbstractPost if (questionMark > 0) { placeholderName = placeholder.substring(2, questionMark); defaultValue = placeholder.substring(questionMark + 1, placeholder.length() - 1); + } else { + defaultValue = ""; } int bracket = placeholder.indexOf('('); if (bracket > 0) { diff --git a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java index 06f91a45..776f9121 100644 --- a/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java +++ b/common/src/test/java/ctbrec/recorder/postprocessing/AbstractPlaceholderAwarePostProcessorTest.java @@ -1,6 +1,8 @@ package ctbrec.recorder.postprocessing; import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; import java.io.IOException; import java.time.ZoneId; @@ -150,4 +152,11 @@ public class AbstractPlaceholderAwarePostProcessorTest extends AbstractPpTest { input = "asdf_${modelGroupName?${utcDateTime?anonymous}}_asdf"; assertEquals("asdf_anonymous_asdf", placeHolderAwarePp.fillInPlaceHolders(input, ctx)); } + + @Test + public void testMissingValueForPlaceholder() throws IOException { + String input = "asdf_${modelNotes}_asdf"; + when(config.getModelNotes(any())).thenReturn(null); + assertEquals("asdf__asdf", placeHolderAwarePp.fillInPlaceHolders(input, createPostProcessingContext(rec, null, config))); + } }