@@ -0,0 +1,867 @@
+package org.gnieh.logback;%0A%0Aimport org.slf4j.Logger;%0Aimport org.slf4j.LoggerFactory;%0Aimport org.slf4j.MDC;%0A%0Apublic class TestPercentEscaping %7B%0A%0A    static Logger logger = LoggerFactory.getLogger(TestPercentEscaping.class);%0A%0A    public static void main(String%5B%5D args) %7B%0A        MDC.put(SystemdJournal.MESSAGE_ID, %22we get away with %25s, since it uses the null terminator arg%22);%0A        logger.info(%22fine%22);%0A        MDC.put(SystemdJournal.MESSAGE_ID, %22we get away with %25i as well, and it converts to 0%22);%0A        logger.info(%22fine%22);%0A%0A        // Everything below will crash unless %25 is escaped (%25 -%3E %25%25)%0A        %0A        MDC.put(SystemdJournal.MESSAGE_ID, %22this %25s %25s crashes since there's no 2nd subsequent arg%22);%0A        logger.info(%22boom%22);%0A        %0A        MDC.put(SystemdJournal.MESSAGE_ID, %22this %251$ causes the JVM to abort%22);%0A        logger.info(%22boom%22);%0A    %7D%0A%0A%7D%0A

Add test to reproduce the % crash