Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/share/jdwp/ReplyPacket.java
41161 views
1
/*
2
* Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
package nsk.share.jdwp;
25
26
import nsk.share.*;
27
import java.util.Vector;
28
29
/**
30
* This class represents a JDWP reply packet.
31
*/
32
public class ReplyPacket extends Packet {
33
34
/** Error code constant. */
35
// public final static int errOk = JDWP.Error.NONE;
36
/** Error code constant. */
37
// public final static int errWrongPacketSize = 0x400;
38
/** Error code constant. */
39
// public final static int errNotAvailable = 0x401;
40
/** Error code constant. */
41
// public final static int errEvent = 0x4064;
42
43
/**
44
* Make empty reply packet.
45
*/
46
public ReplyPacket() {
47
super();
48
}
49
50
/**
51
* Make reply packet with data from the specified byte buffer.
52
*/
53
// public ReplyPacket(ByteBuffer packet) {
54
public ReplyPacket(Packet packet) {
55
super(packet);
56
}
57
58
/**
59
* Return value of the "error code" field of JDWP reply packet.
60
*/
61
public int getErrorCode() {
62
63
int err = 0;
64
try {
65
err = (int) getID(ErrorCodeOffset, 2);
66
}
67
catch (BoundException e) {
68
throw new Failure("Caught unexpected exception while getting error code from header:\n\t"
69
+ e);
70
}
71
72
return err;
73
}
74
75
/**
76
* Set value of the "error code" field of JDWP reply packet.
77
*/
78
public void setErrorCode(long err) {
79
try {
80
putID(ErrorCodeOffset, err, 2);
81
}
82
catch (BoundException e) {
83
throw new Failure("Caught unexpected exception while setting error code into header:\n\t"
84
+ e);
85
}
86
}
87
88
/**
89
* Check reply packet header.
90
* This method check if reply packet has valid values in the header fields.
91
*
92
* @throws PacketFormatException if packet header fields have error or invalid values
93
*/
94
/*
95
protected void checkHeaderForReplyOrEvent() throws PacketFormatException {
96
super.checkHeader();
97
}
98
*/
99
100
/**
101
* Check reply packet header.
102
* This method check if reply packet has valid values in the header fields.
103
*
104
* @throws PacketFormatException if packet header fields have error or invalid values
105
*/
106
public void checkHeader() throws PacketFormatException {
107
// checkHeaderForReplyOrEvent();
108
super.checkHeader();
109
if (getFlags() != JDWP.Flag.REPLY_PACKET) {
110
throw new PacketFormatException("Unexpected flags in reply packet header: "
111
+ "0x" + toHexDecString(getFlags(), 2));
112
}
113
if (getErrorCode() != JDWP.Error.NONE) {
114
throw new PacketFormatException("Unexpected error code in reply packet header: "
115
+ "0x" + toHexDecString(getErrorCode(), 4));
116
}
117
}
118
119
/**
120
* Check reply packet header for specified reply ID.
121
* This method check if reply packet has valid values in the header fields.
122
*
123
* @throws PacketFormatException if packet header fields have error or invalid values
124
*/
125
public void checkHeader(int id) throws PacketFormatException {
126
checkHeader();
127
if (getPacketID() != id) {
128
throw new PacketFormatException("Unexpected ID in reply packet header: "
129
+ getPacketID());
130
}
131
}
132
133
/**
134
* Return string representation of the reply packet header.
135
*/
136
public String headerToString() {
137
String s;
138
139
if (getFlags() == 0)
140
s = " (command)";
141
else
142
s = " (error) ";
143
144
return super.headerToString()
145
+ " " + toHexString(CommandOffset, 4) + s + ": 0x" + toHexDecString(getErrorCode(), 4) + "\n";
146
}
147
148
}
149
150