1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.handler.codec.spdy;
17
18 import io.netty.util.internal.PlatformDependent;
19 import io.netty.util.internal.SuppressJava6Requirement;
20 import io.netty.util.internal.ThrowableUtil;
21
22 public class SpdyProtocolException extends Exception {
23
24 private static final long serialVersionUID = 7870000537743847264L;
25
26
27
28
29 public SpdyProtocolException() { }
30
31
32
33
34 public SpdyProtocolException(String message, Throwable cause) {
35 super(message, cause);
36 }
37
38
39
40
41 public SpdyProtocolException(String message) {
42 super(message);
43 }
44
45
46
47
48 public SpdyProtocolException(Throwable cause) {
49 super(cause);
50 }
51
52 static SpdyProtocolException newStatic(String message, Class<?> clazz, String method) {
53 final SpdyProtocolException exception;
54 if (PlatformDependent.javaVersion() >= 7) {
55 exception = new StacklessSpdyProtocolException(message, true);
56 } else {
57 exception = new StacklessSpdyProtocolException(message);
58 }
59 return ThrowableUtil.unknownStackTrace(exception, clazz, method);
60 }
61
62 @SuppressJava6Requirement(reason = "uses Java 7+ Exception.<init>(String, Throwable, boolean, boolean)" +
63 " but is guarded by version checks")
64 private SpdyProtocolException(String message, boolean shared) {
65 super(message, null, false, true);
66 assert shared;
67 }
68
69 private static final class StacklessSpdyProtocolException extends SpdyProtocolException {
70 private static final long serialVersionUID = -6302754207557485099L;
71
72 StacklessSpdyProtocolException(String message) {
73 super(message);
74 }
75
76 StacklessSpdyProtocolException(String message, boolean shared) {
77 super(message, shared);
78 }
79
80
81
82 @Override
83 public Throwable fillInStackTrace() {
84 return this;
85 }
86 }
87 }