test/jdk/com/sun/jdi/RedefineMulti.sh
changeset 51837 46ca82c15f6c
parent 51836 d62ebdfd8f18
child 51838 f8af1f1f3518
--- a/test/jdk/com/sun/jdi/RedefineMulti.sh	Fri Sep 21 10:18:12 2018 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-#  @test
-#  @bug 4724076
-#  @summary Redefine does not work in for/while loop
-#  @author Jim Holmlund/Swamy Venkataramanappa
-#
-#  The failure occurs when a method is active and
-#  a method that it calls multiple times is redefined
-#  more than once.
-#  @run shell/timeout=240 RedefineMulti.sh
-
-compileOptions=-g
-#java=java_g
-
-createJavaFile()
-{
-    cat <<EOF > $1.java.1
-
-public class $1 {
-
-    String field1;
-    String field2;
-
-    // The first time thru the loop in start,
-    // "Before update..." should be printed.
-    // After the first redefine, "After update..." should be printed
-    // After the 2nd redefine, "abcde..." should be printed.
-    // The bug is that "After update..." is printed instead because
-    // stat() calls version 2 of doSomething() instead of
-    // version 3.
-    private void doSomething()  {
-        System.out.println("Before update...");  // @1 commentout
-        // @1 uncomment System.out.println("After update...");  // @2 commentout
-        // @2 uncomment System.out.println("abcde...");
-    }
-
-    public void start() {
-        for (int i=0; i < 3; i++)   {
-            doSomething();      // @1 breakpoint here  line 16
-            System.out.println("field1 = " + field1);
-            System.out.println("field2 = " + field2);
-        }
-        // Redefinex myx = new Redefinex();
-        //  for (int i = 0; i < 5; i++) {
-        //    myx.methodx1();                     // line 22
-        //    System.out.println("fieldx1 = " + myx.fieldx1);
-        //    System.out.println("fieldx2 = " + myx.fieldx2);
-        //  }
-    }
-
-    public static void main(String[] args) {
-        $1 xxx = new $1();
-        xxx.field1 = "field1";
-        xxx.field2 = "field2";
-        xxx.start();
-    }
-}
-
-class Redefinex {
-    public String fieldx1;
-    public String fieldx2;
-
-    Redefinex() {
-        fieldx1 = "fieldx1";
-        fieldx2 = "fieldx2";
-    }
-
-    public void methodx1() {
-        System.out.println("redefinex 1");
-        //System.out.println("redefinex 2");
-        //System.out.println("redefinex 3");
-    }
-     
-}
-
-    /*********
-Steps to reproduce this problem:
-   a. add line breakpoint  in start()
-   b. debug
-   c. when breakpoint is hit, type continue. You should see output
-"Before update..."
-   d. change "Before update" to  "After update"
-   e. redefine,  and set line breakpoint (see step a)
-   f. type continue. You should see output "After update"
-   g. change "After update" to "abcde"
-   h. redefine, and set line breakpoint (see step a)
-   i.  type continue. The output is shown as "After update"
-
-   j. to see "abcde" output,  users will have to pop the stack, and
-re-execute method start().
-    ************/
-EOF
-}
-
-# This is called to feed cmds to jdb.
-dojdbCmds()
-{
-    setBkpts @1
-    runToBkpt @1
-    contToBkpt
-    redefineClass @1
-    setBkpts @1
-    contToBkpt
-    redefineClass @2
-    cmd allowExit cont
-}
-
-
-mysetup()
-{
-    if [ -z "$TESTSRC" ] ; then
-        TESTSRC=.
-    fi
-
-    for ii in . $TESTSRC $TESTSRC/.. ; do
-        if [ -r "$ii/ShellScaffold.sh" ] ; then
-            . $ii/ShellScaffold.sh 
-            break
-        fi
-    done
-}
-
-# You could replace this next line with the contents
-# of ShellScaffold.sh and this script will run just the same.
-mysetup
-
-runit
-debuggeeFailIfPresent "Internal exception:"
-debuggeeFailIfNotPresent "abcde"
-pass