1package jdk.incubator.http.internal.frame;
2
3public class MalformedFrame extends Http2Frame {
4
5    private int errorCode;
6    // if errorStream == 0 means Connection Error; RFC 7540 5.4.1
7    // if errorStream != 0 means Stream Error; RFC 7540 5.4.2
8    private int errorStream;
9    private String msg;
10
11    /**
12     * Creates Connection Error malformed frame
13     * @param errorCode - error code, as specified by RFC 7540
14     * @param msg - internal debug message
15     */
16    public MalformedFrame(int errorCode, String msg) {
17        this(errorCode, 0 , msg);
18    }
19
20    /**
21     * Creates Stream Error malformed frame
22     * @param errorCode - error code, as specified by RFC 7540
23     * @param errorStream - id of error stream (RST_FRAME will be send for this stream)
24     * @param msg - internal debug message
25     */
26    public MalformedFrame(int errorCode, int errorStream, String msg) {
27        super(0, 0);
28        this.errorCode = errorCode;
29        this.errorStream = errorStream;
30        this.msg = msg;
31    }
32
33    @Override
34    public String toString() {
35        return super.toString() + " MalformedFrame, Error: " + ErrorFrame.stringForCode(errorCode)
36                + " streamid: " + streamid + " reason: " + msg;
37    }
38
39    public int getErrorCode() {
40        return errorCode;
41    }
42
43    public String getMessage() {
44        return msg;
45    }
46}
47