The proposed fixed would be to adjust SiftingJoranConfigurator#addInstanceRules by appending if-then-else rules like this:

rs.addRule(new ElementSelector("*/if"), new IfAction());
rs.addRule(new ElementSelector("*/if/then"), new ThenAction());
rs.addRule(new ElementSelector("/if/then/"), new NOPAction());
rs.addRule(new ElementSelector("*/if/else"), new ElseAction());
rs.addRule(new ElementSelector("/if/else/"), new NOPAction());

and to correct SiftingJoranConfiguratorBase#doConfigure to make the copy of the event list, because if-then-else Action-s update the event list every time a new appender is created for a new sifting key:

public void doConfigure(final List<SaxEvent> eventList) throws JoranException

{ super.doConfigure(new ArrayList<>(eventList)); }
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira