annotate test/runtime/6294277/SourceDebugExtension.java @ 12690:c3bdd186e6cf

fix possible NPE in TruffleCompiler with TraceTruffleCompilation and background compilation enabled. With background compilation, the installed code can already be invalidated when compiledMethod.getCode() is called, in which case it returns null.
author Andreas Woess <andreas.woess@jku.at>
date Wed, 06 Nov 2013 13:31:28 +0100
parents d900d95bfdb0
children 047ea31fb127
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6203
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
1 /*
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
4 *
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
7 * published by the Free Software Foundation.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
8 *
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
13 * accompanied this code).
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
14 *
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
18 *
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
21 * questions.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
22 */
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
23
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
24 /*
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
25 * @test
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
26 * @bug 6294277
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
27 * @summary java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
6229
d900d95bfdb0 7183754: Test runtime/6294277/Test6294277.sh runs wrong JVM
fparain
parents: 6203
diff changeset
28 * @run main/othervm -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n SourceDebugExtension
6203
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
29 */
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
30 import java.io.*;
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
31
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
32 public class SourceDebugExtension extends ClassLoader
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
33 {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
34 static final int attrSize = 68000;
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
35 static byte[] header = {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
36 (byte)0xca, (byte)0xfe, (byte)0xba, (byte)0xbe, (byte)0x00, (byte)0x00, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
37 (byte)0x32, (byte)0x00, (byte)0x1e, (byte)0x0a, (byte)0x00, (byte)0x06, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
38 (byte)0x0f, (byte)0x09, (byte)0x00, (byte)0x10, (byte)0x00, (byte)0x11, (byte)0x08,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
39 (byte)0x00, (byte)0x12, (byte)0x0a, (byte)0x00, (byte)0x13, (byte)0x00, (byte)0x14,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
40 (byte)0x07, (byte)0x00, (byte)0x15, (byte)0x07, (byte)0x00, (byte)0x16, (byte)0x01,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
41 (byte)0x00, (byte)0x06, (byte)0x3c, (byte)0x69, (byte)0x6e, (byte)0x69, (byte)0x74,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
42 (byte)0x3e, (byte)0x01, (byte)0x00, (byte)0x03, (byte)0x28, (byte)0x29, (byte)0x56,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
43 (byte)0x01, (byte)0x00, (byte)0x04, (byte)0x43, (byte)0x6f, (byte)0x64, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
44 (byte)0x01, (byte)0x00, (byte)0x0f, (byte)0x4c, (byte)0x69, (byte)0x6e, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
45 (byte)0x4e, (byte)0x75, (byte)0x6d, (byte)0x62, (byte)0x65, (byte)0x72, (byte)0x54,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
46 (byte)0x61, (byte)0x62, (byte)0x6c, (byte)0x65, (byte)0x01, (byte)0x00, (byte)0x04,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
47 (byte)0x6d, (byte)0x61, (byte)0x69, (byte)0x6e, (byte)0x01, (byte)0x00, (byte)0x16,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
48 (byte)0x28, (byte)0x5b, (byte)0x4c, (byte)0x6a, (byte)0x61, (byte)0x76, (byte)0x61,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
49 (byte)0x2f, (byte)0x6c, (byte)0x61, (byte)0x6e, (byte)0x67, (byte)0x2f, (byte)0x53,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
50 (byte)0x74, (byte)0x72, (byte)0x69, (byte)0x6e, (byte)0x67, (byte)0x3b, (byte)0x29,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
51 (byte)0x56, (byte)0x01, (byte)0x00, (byte)0x0a, (byte)0x53, (byte)0x6f, (byte)0x75,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
52 (byte)0x72, (byte)0x63, (byte)0x65, (byte)0x46, (byte)0x69, (byte)0x6c, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
53 (byte)0x01, (byte)0x00, (byte)0x0d, (byte)0x54, (byte)0x65, (byte)0x73, (byte)0x74,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
54 (byte)0x50, (byte)0x72, (byte)0x6f, (byte)0x67, (byte)0x2e, (byte)0x6a, (byte)0x61,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
55 (byte)0x76, (byte)0x61, (byte)0x0c, (byte)0x00, (byte)0x07, (byte)0x00, (byte)0x08,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
56 (byte)0x07, (byte)0x00, (byte)0x17, (byte)0x0c, (byte)0x00, (byte)0x18, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
57 (byte)0x19, (byte)0x01, (byte)0x00, (byte)0x34, (byte)0x54, (byte)0x65, (byte)0x73,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
58 (byte)0x74, (byte)0x20, (byte)0x70, (byte)0x72, (byte)0x6f, (byte)0x67, (byte)0x72,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
59 (byte)0x61, (byte)0x6d, (byte)0x20, (byte)0x66, (byte)0x6f, (byte)0x72, (byte)0x20,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
60 (byte)0x62, (byte)0x69, (byte)0x67, (byte)0x20, (byte)0x53, (byte)0x6f, (byte)0x75,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
61 (byte)0x72, (byte)0x63, (byte)0x65, (byte)0x44, (byte)0x65, (byte)0x62, (byte)0x75,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
62 (byte)0x67, (byte)0x45, (byte)0x78, (byte)0x74, (byte)0x65, (byte)0x6e, (byte)0x73,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
63 (byte)0x69, (byte)0x6f, (byte)0x6e, (byte)0x20, (byte)0x61, (byte)0x74, (byte)0x74,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
64 (byte)0x72, (byte)0x69, (byte)0x62, (byte)0x75, (byte)0x74, (byte)0x65, (byte)0x73,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
65 (byte)0x07, (byte)0x00, (byte)0x1a, (byte)0x0c, (byte)0x00, (byte)0x1b, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
66 (byte)0x1c, (byte)0x01, (byte)0x00, (byte)0x08, (byte)0x54, (byte)0x65, (byte)0x73,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
67 (byte)0x74, (byte)0x50, (byte)0x72, (byte)0x6f, (byte)0x67, (byte)0x01, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
68 (byte)0x10, (byte)0x6a, (byte)0x61, (byte)0x76, (byte)0x61, (byte)0x2f, (byte)0x6c,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
69 (byte)0x61, (byte)0x6e, (byte)0x67, (byte)0x2f, (byte)0x4f, (byte)0x62, (byte)0x6a,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
70 (byte)0x65, (byte)0x63, (byte)0x74, (byte)0x01, (byte)0x00, (byte)0x10, (byte)0x6a,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
71 (byte)0x61, (byte)0x76, (byte)0x61, (byte)0x2f, (byte)0x6c, (byte)0x61, (byte)0x6e,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
72 (byte)0x67, (byte)0x2f, (byte)0x53, (byte)0x79, (byte)0x73, (byte)0x74, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
73 (byte)0x6d, (byte)0x01, (byte)0x00, (byte)0x03, (byte)0x6f, (byte)0x75, (byte)0x74,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
74 (byte)0x01, (byte)0x00, (byte)0x15, (byte)0x4c, (byte)0x6a, (byte)0x61, (byte)0x76,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
75 (byte)0x61, (byte)0x2f, (byte)0x69, (byte)0x6f, (byte)0x2f, (byte)0x50, (byte)0x72,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
76 (byte)0x69, (byte)0x6e, (byte)0x74, (byte)0x53, (byte)0x74, (byte)0x72, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
77 (byte)0x61, (byte)0x6d, (byte)0x3b, (byte)0x01, (byte)0x00, (byte)0x13, (byte)0x6a,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
78 (byte)0x61, (byte)0x76, (byte)0x61, (byte)0x2f, (byte)0x69, (byte)0x6f, (byte)0x2f,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
79 (byte)0x50, (byte)0x72, (byte)0x69, (byte)0x6e, (byte)0x74, (byte)0x53, (byte)0x74,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
80 (byte)0x72, (byte)0x65, (byte)0x61, (byte)0x6d, (byte)0x01, (byte)0x00, (byte)0x07,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
81 (byte)0x70, (byte)0x72, (byte)0x69, (byte)0x6e, (byte)0x74, (byte)0x6c, (byte)0x6e,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
82 (byte)0x01, (byte)0x00, (byte)0x15, (byte)0x28, (byte)0x4c, (byte)0x6a, (byte)0x61,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
83 (byte)0x76, (byte)0x61, (byte)0x2f, (byte)0x6c, (byte)0x61, (byte)0x6e, (byte)0x67,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
84 (byte)0x2f, (byte)0x53, (byte)0x74, (byte)0x72, (byte)0x69, (byte)0x6e, (byte)0x67,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
85 (byte)0x3b, (byte)0x29, (byte)0x56, (byte)0x01, (byte)0x00, (byte)0x14, (byte)0x53,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
86 (byte)0x6f, (byte)0x75, (byte)0x72, (byte)0x63, (byte)0x65, (byte)0x44, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
87 (byte)0x62, (byte)0x75, (byte)0x67, (byte)0x45, (byte)0x78, (byte)0x74, (byte)0x65,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
88 (byte)0x6e, (byte)0x73, (byte)0x69, (byte)0x6f, (byte)0x6e, (byte)0x00, (byte)0x21,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
89 (byte)0x00, (byte)0x05, (byte)0x00, (byte)0x06, (byte)0x00, (byte)0x00, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
90 (byte)0x00, (byte)0x00, (byte)0x02, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x07,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
91 (byte)0x00, (byte)0x08, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x09, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
92 (byte)0x00, (byte)0x00, (byte)0x1d, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x01,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
93 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x2a, (byte)0xb7, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
94 (byte)0x01, (byte)0xb1, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
95 (byte)0x0a, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x06, (byte)0x00, (byte)0x01,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
96 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x09, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
97 (byte)0x0b, (byte)0x00, (byte)0x0c, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x09,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
98 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x25, (byte)0x00, (byte)0x02, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
99 (byte)0x01, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x09, (byte)0xb2, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
100 (byte)0x02, (byte)0x12, (byte)0x03, (byte)0xb6, (byte)0x00, (byte)0x04, (byte)0xb1,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
101 (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01, (byte)0x00, (byte)0x0a, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
102 (byte)0x00, (byte)0x00, (byte)0x0a, (byte)0x00, (byte)0x02, (byte)0x00, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
103 (byte)0x00, (byte)0x03, (byte)0x00, (byte)0x08, (byte)0x00, (byte)0x04, (byte)0x00,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
104 (byte)0x02, (byte)0x00, (byte)0x0d, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x02,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
105 (byte)0x00, (byte)0x0e, (byte)0x00, (byte)0x1d, (byte)0x00, (byte)0x01, (byte)0x09,
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
106 (byte)0xa0
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
107 };
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
108
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
109 public static void main(String[] args) throws Exception
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
110 {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
111 try {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
112 SourceDebugExtension loader = new SourceDebugExtension();
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
113 /* The test program creates a class file from the header
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
114 * stored above and adding the content of a SourceDebugExtension
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
115 * attribute made of the character 0x02 repeated 68000 times.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
116 * This attribute doesn't follow the syntax specified in JSR 45
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
117 * but it's fine because this test just checks that the JVM is
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
118 * able to load a class file with a SourceDebugExtension
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
119 * attribute bigger than 64KB. The JVM doesn't try to
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
120 * parse the content of the attribute, this work is performed
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
121 * by the SA or external tools.
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
122 */
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
123 byte[] buf = new byte[header.length + attrSize];
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
124 for(int i=0; i<header.length; i++) {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
125 buf[i] = header[i];
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
126 }
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
127 for(int i=0; i<attrSize; i++) {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
128 buf[header.length+i] = (byte)0x02;
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
129 }
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
130 Class c = loader.defineClass("TestProg", buf, 0, buf.length);
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
131 System.out.println("Test PASSES");
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
132 } catch(Exception e) {
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
133 System.out.println("Test FAILS");
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
134 }
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
135 }
04ade88d9712 6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K
fparain
parents:
diff changeset
136 }