1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.joran.action.ext;
15
16 import org.xml.sax.Attributes;
17
18 import ch.qos.logback.core.joran.action.Action;
19 import ch.qos.logback.core.joran.spi.ActionException;
20 import ch.qos.logback.core.joran.spi.SaxEventInterpretationContext;
21
22 public class BadEndAction extends Action {
23
24 static String EXCEPTION_TYPE = "type";
25 static final int RUNTIME_EXCEPTION = 0;
26 static final int ACTION_EXCEPTION = 1;
27
28 int type;
29
30 public void begin(SaxEventInterpretationContext ec, String name, Attributes attributes) {
31 String exType = attributes.getValue(EXCEPTION_TYPE);
32 type = RUNTIME_EXCEPTION;
33 if ("ActionException".equals(exType)) {
34 type = ACTION_EXCEPTION;
35 }
36 }
37
38 public void end(SaxEventInterpretationContext ec, String name) throws ActionException {
39 switch (type) {
40 case ACTION_EXCEPTION:
41 throw new ActionException();
42 default:
43 throw new IllegalStateException("bad end");
44 }
45 }
46 }