1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.http2.frames;
20
21 import java.nio.ByteBuffer;
22
23 import org.eclipse.jetty.util.BufferUtil;
24
25 public class GoAwayFrame extends Frame
26 {
27 private final int lastStreamId;
28 private final int error;
29 private final byte[] payload;
30
31 public GoAwayFrame(int lastStreamId, int error, byte[] payload)
32 {
33 super(FrameType.GO_AWAY);
34 this.lastStreamId = lastStreamId;
35 this.error = error;
36 this.payload = payload;
37 }
38
39 public int getLastStreamId()
40 {
41 return lastStreamId;
42 }
43
44 public int getError()
45 {
46 return error;
47 }
48
49 public byte[] getPayload()
50 {
51 return payload;
52 }
53
54 public String tryConvertPayload()
55 {
56 if (payload == null)
57 return "";
58 ByteBuffer buffer = BufferUtil.toBuffer(payload);
59 try
60 {
61 return BufferUtil.toUTF8String(buffer);
62 }
63 catch (Throwable x)
64 {
65 return BufferUtil.toDetailString(buffer);
66 }
67 }
68
69 @Override
70 public String toString()
71 {
72 return String.format("%s,%d/%s", super.toString(), error, tryConvertPayload());
73 }
74 }