test/compiler/6857159/Test6857159.java

Thu, 25 Aug 2011 17:17:59 -0700

author
schien
date
Thu, 25 Aug 2011 17:17:59 -0700
changeset 3010
a3592789b47c
parent 2384
0a8e0d4345b3
child 6876
710a3c8b516e
child 9498
7a436f5d4b0c
permissions
-rw-r--r--

Added tag jdk8-b02 for changeset 31e253c1da42

never@1290 1 /*
trims@2384 2 * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
never@1290 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
never@1290 4 *
never@1290 5 * This code is free software; you can redistribute it and/or modify it
never@1290 6 * under the terms of the GNU General Public License version 2 only, as
never@1290 7 * published by the Free Software Foundation.
never@1290 8 *
never@1290 9 * This code is distributed in the hope that it will be useful, but WITHOUT
never@1290 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
never@1290 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
never@1290 12 * version 2 for more details (a copy is included in the LICENSE file that
never@1290 13 * accompanied this code).
never@1290 14 *
never@1290 15 * You should have received a copy of the GNU General Public License version
never@1290 16 * 2 along with this work; if not, write to the Free Software Foundation,
never@1290 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
never@1290 18 *
trims@1907 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 * or visit www.oracle.com if you need additional information or have any
trims@1907 21 * questions.
never@1290 22 *
never@1290 23 */
never@1290 24
never@1290 25 /**
never@1290 26 * @test
never@1290 27 * @bug 6857159
never@1290 28 * @summary local schedule failed with checkcast of Thread.currentThread()
never@1290 29 *
never@1290 30 * @run shell Test6857159.sh
never@1290 31 */
never@1290 32
never@1290 33 public class Test6857159 extends Thread {
never@1290 34 static class ct0 extends Test6857159 {
never@1290 35 public void message() {
never@1290 36 // System.out.println("message");
never@1290 37 }
never@1290 38
never@1290 39 public void run() {
never@1290 40 message();
never@1290 41 ct0 ct = (ct0) Thread.currentThread();
never@1290 42 ct.message();
never@1290 43 }
never@1290 44 }
never@1290 45 static class ct1 extends ct0 {
never@1290 46 public void message() {
never@1290 47 // System.out.println("message");
never@1290 48 }
never@1290 49 }
never@1290 50 static class ct2 extends ct0 {
never@1290 51 public void message() {
never@1290 52 // System.out.println("message");
never@1290 53 }
never@1290 54 }
never@1290 55
never@1290 56 public static void main(String[] args) throws Exception {
ptisnovs@2251 57 for (int i = 0; i < 20000; i++) {
never@1290 58 Thread t = null;
never@1290 59 switch (i % 3) {
never@1290 60 case 0: t = new ct0(); break;
never@1290 61 case 1: t = new ct1(); break;
never@1290 62 case 2: t = new ct2(); break;
never@1290 63 }
never@1290 64 t.start();
never@1290 65 t.join();
never@1290 66 }
never@1290 67 }
never@1290 68 }

mercurial