JDK-4409241 : MethodExitEvents disappear when Object-Methods are called from main (#108885)
  • Type: Bug
  • Component: vm-legacy
  • Sub-Component: jvmdi
  • Affected Version: 1.3.0,1.3.1
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: solaris_2.6,windows_2000
  • CPU: x86,sparc
  • Submitted: 2001-01-29
  • Updated: 2001-09-12
  • Resolved: 2001-06-11
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Description
ption: instance of java.lang.ClassNotFoundException(id=75)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
 Method entry number: 2  :  MethodEntryEvent@t2.<init>()+0 in thread main
stepCompleted: line#=19 event=StepEvent@t2:19 in thread main
 Method exit  number: 1  :  MethodExitEvent@t2.<init>()+4 in thread main
 Method entry number: 3  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 4  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 5  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 6  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 7  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 8  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 9  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 10  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 11  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 12  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 13  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 14  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 15  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 16  :  ###@###.###ello4(int, int)+0 in thread main
MethodEntryExitEventsDebugee:     -->> Hello.  j is: 0 <<--
 Method entry number: 17  :  ###@###.###ello5(int, int)+0 in thread main
 Method exit  number: 2  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 3  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 4  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 5  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 6  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 7  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 8  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 9  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 10  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 11  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 12  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 13  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 14  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 15  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 16  :  ###@###.###ello1(int, int)+5 in thread main
 Method entry number: 18  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 19  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 20  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 21  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 22  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 23  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 24  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 25  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 26  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 27  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 28  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 29  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 30  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 31  :  ###@###.###ello4(int, int)+0 in thread main
MethodEntryExitEventsDebugee:     -->> Hello.  j is: 1 <<--
 Method entry number: 32  :  ###@###.###ello5(int, int)+0 in thread main
 Method exit  number: 17  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 18  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 19  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 20  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 21  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 22  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 23  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 24  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 25  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 26  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 27  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 28  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 29  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 30  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 31  :  ###@###.###ello1(int, int)+5 in thread main
 Method entry number: 33  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 34  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 35  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 36  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 37  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 38  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 39  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 40  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 41  :  ###@###.###ello4(int, int)+0 in thread main
 Method entry number: 42  :  ###@###.###ello5(int, int)+0 in thread main
 Method entry number: 43  :  ###@###.###ello1(int, int)+0 in thread main
 Method entry number: 44  :  ###@###.###ello2(int, int)+0 in thread main
 Method entry number: 45  :  ###@###.###ello3(int, int)+0 in thread main
 Method entry number: 46  :  ###@###.###ello4(int, int)+0 in thread main
MethodEntryExitEventsDebugee:     -->> Hello.  j is: 2 <<--
 Method entry number: 47  :  ###@###.###ello5(int, int)+0 in thread main
 Method exit  number: 32  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 33  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 34  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 35  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 36  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 37  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 38  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 39  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 40  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 41  :  ###@###.###ello1(int, int)+5 in thread main
 Method exit  number: 42  :  ###@###.###ello5(int, int)+47 in thread main
 Method exit  number: 43  :  ###@###.###ello4(int, int)+5 in thread main
 Method exit  number: 44  :  ###@###.###ello3(int, int)+5 in thread main
 Method exit  number: 45  :  ###@###.###ello2(int, int)+5 in thread main
 Method exit  number: 46  :  ###@###.###ello1(int, int)+5 in thread main
 Method entry number: 48  :  ###@###.###Complete()+0 in thread main
MethodEntryExitEventsDebugee: executing loopComplete method for a graceful shutdown.
 Method exit  number: 47  :  ###@###.###Complete()+62 in thread main
 Method exit  number: 48  :  ###@###.###(java.lang.String[])+29 in thread main
Breakpoint at loopComplete:50 (0)
All done...

MethodEntryExitEvents: failed
    expected method entry count: 48
    observed method entry count: 48
    expected method exit  count: 46
    observed method exit  count: 48
----------System.err:(12/633)----------
java.lang.Exception: MethodEntryExitEvents: failed
	at MethodEntryExitEvents.runTests(MethodEntryExitEvents.java:279)
	at TestScaffold.startTests(TestScaffold.java:150)
	at MethodEntryExitEvents.main(MethodEntryExitEvents.java:113)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
	at java.lang.Thread.run(Thread.java:484)

JavaTest Message: Test threw exception: java.lang.Exception: MethodEntryExitEvents: failed
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.Exception: MethodEntryExitEvents: failed
result: Failed. Execution failed: `main' threw exception: java.lang.Exception: MethodEntryExitEvents: failed


test result: Failed. Execution failed: `main' threw exception: java.lang.Exception: MethodEntryExitEvents: failed
al.smith@eng 2001-04-26

com/sun/jdi/MethodEntryExitEvents.java
This test fails with Ladybird build 23, setting to NYI state.  Cannot verify in Merlin, the test is not in the master workspace in build 60 or 61.

////////////////////////
al.smith@eng 2001-05-29
This failure was apparently a two part problem, Hot-spot and the test case. Currently this test case does not have a test tag and doesn't run.  Without a test case to demonstrate the fix to hotspot I cannot verify this repair.  I have spoken to Tim Bell and moving this back to NYI for him to address this issue.
Name: boT120536			Date: 01/29/2001

java version "1.3.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_01)
Java HotSpot(TM) Client VM (build 1.3.0_01, mixed mode)

Review ID 109293
----------------- Original Bug Report-------------------

category : java
subcategory : debugger
release : kest-sol-rc1
type : bug
synopsis : MethodExitEvents disappear when Object-Methods are called from main
description : java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-RC)
Java HotSpot(TM) Client VM (build 1.3.0-RC, mixed mode)

I used the Trace program from

	 http://java.sun.com/products/jpda/

which is part of the JPDA example source.

Write these two classes:
###########################################
class t2Starter {

public static void main(String[] args) {
        t2 test = new t2();
        test.sayHello1(0);
}

}

/**
 * Reference Incident ID: 108885
 *
 * Test reporting of method entry and exit events.
 */

class t2 {
    public static void sayHello1(int i) {
        sayHello2(i);
    }
    public static void sayHello2(int i) {
        sayHello3(i);
    }
    public static void sayHello3(int i) {
        sayHello4(i);
    }
    public static void sayHello4(int i) {
        sayHello5(i);
    }
    public static void sayHello5(int i) {
	if (i < 2) {
	    sayHello1(++i);
	} else {
	    System.out.println("    Hello");
	}
    }
}
#################################################

Compile these classes with

% javac -classpath "$JAVA_HOME/lib/tools.jar:." *.java

and start the Trace Program with input t2Starter

% java -showversion -classpath "$JAVA_HOME/lib/tools.jar:." Trace t2Starter

This will produce following output:
#################################################
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-RC)
Java HotSpot(TM) Client VM (build 1.3.0-RC, mixed mode)

   Hello
-- VM Started --
====== main ======
Entry: main  --  t2Starter
| Exception: instance of java.lang.ClassNotFoundException(id=53) catch:
java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | | Exception: instance of java.util.EmptyStackException(id=54) catch:
sun.misc.URLClassPath.getLoader(int)+26
| | | | | | | | | | | Exception: instance of
java.util.EmptyStackException(id=54) catch:
sun.misc.URLClassPath.getLoader(int)+36
| | | | | | | | | | | Exception: instance of
java.lang.ClassNotFoundException(id=55) catch:
java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | | | | | Exception: instance of java.lang.ClassNotFoundException(id=55)
catch: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | Entry: <init>  --  t2
| | | | | | Entry: sayHello1  --  t2
| | | | | | | Entry: sayHello2  --  t2
| | | | | | | | Entry: sayHello3  --  t2
| | | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | | Entry: sayHello5  --  t2
| | | | | | | | | | | Entry: sayHello1  --  t2
| | | | | | | | | | | | Entry: sayHello2  --  t2
| | | | | | | | | | | | | Entry: sayHello3  --  t2
| | | | | | | | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | | | | | | | Entry: sayHello5  --  t2
| | | | | | | | | | | | | | | | Entry: sayHello1  --  t2
| | | | | | | | | | | | | | | | | Entry: sayHello2  --  t2
| | | | | | | | | | | | | | | | | | Entry: sayHello3  --  t2
| | | | | | | | | | | | | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | | | | | | | | | | | | Entry: sayHello5  --  t2
====== main end ======
-- The application exited --
#################################################

First the VM throws an Exception and I don't know why. There
are no MethodExitEvents shown in the Trace.

The above Example works fine with the jdk1.3 beta release. But the
Exception is also be thrown:
#################################################
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-beta)
Java HotSpot(TM) Client VM (build 1.3-beta, mixed mode)

    Hello
-- VM Started --
====== main ======
Entry: main  --  t2Starter
| Exception: instance of java.lang.ClassNotFoundException(id=80) catch:
java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | | Exception: instance of java.util.EmptyStackException(id=81) catch:
sun.misc.URLClassPath.getLoader(int)+26
| | | | | | | | | | | Exception: instance of
java.util.EmptyStackException(id=81) catch:
sun.misc.URLClassPath.getLoader(int)+36
| | | | | | | | | | | Exception: instance of
java.lang.ClassNotFoundException(id=82) catch:
java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | | | | | Exception: instance of java.lang.ClassNotFoundException(id=82)
catch: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
| | | | | Entry: <init>  --  t2
| | | | | | Exit : <init>  --  t2
| | | | | Entry: sayHello1  --  t2
| | | | | | Entry: sayHello2  --  t2
| | | | | | | Entry: sayHello3  --  t2
| | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | Entry: sayHello5  --  t2
| | | | | | | | | | Entry: sayHello1  --  t2
| | | | | | | | | | | Entry: sayHello2  --  t2
| | | | | | | | | | | | Entry: sayHello3  --  t2
| | | | | | | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | | | | | | Entry: sayHello5  --  t2
| | | | | | | | | | | | | | | Entry: sayHello1  --  t2
| | | | | | | | | | | | | | | | Entry: sayHello2  --  t2
| | | | | | | | | | | | | | | | | Entry: sayHello3  --  t2
| | | | | | | | | | | | | | | | | | Entry: sayHello4  --  t2
| | | | | | | | | | | | | | | | | | | Entry: sayHello5  --  t2
| | | | | | | | | | | | | | | | | | | | Exit : sayHello5  --  t2
| | | | | | | | | | | | | | | | | | | Exit : sayHello4  --  t2
| | | | | | | | | | | | | | | | | | Exit : sayHello3  --  t2
| | | | | | | | | | | | | | | | | Exit : sayHello2  --  t2
| | | | | | | | | | | | | | | | Exit : sayHello1  --  t2
| | | | | | | | | | | | | | | Exit : sayHello5  --  t2
| | | | | | | | | | | | | | Exit : sayHello4  --  t2
| | | | | | | | | | | | | Exit : sayHello3  --  t2
| | | | | | | | | | | | Exit : sayHello2  --  t2
| | | | | | | | | | | Exit : sayHello1  --  t2
| | | | | | | | | | Exit : sayHello5  --  t2
| | | | | | | | | Exit : sayHello4  --  t2
| | | | | | | | Exit : sayHello3  --  t2
| | | | | | | Exit : sayHello2  --  t2
| | | | | | Exit : sayHello1  --  t2
| | | | | Exit : main  --  t2Starter
====== main end ======
-- The application exited --
workaround :
suggested_val :
cust_name : Bernd Weymann
cust_email : ###@###.###
jdcid : BerndWeymann
keyword : webbug
company : University Paderborn
hardware : sun4
OSversion : sol2.6
priority : 4
bugtraqID : 0
dateCreated : 2000-09-05 13:28:02.2
dateEvaluated : 2000-11-09 16:18:45.660

##########################################################################
##########################################################################

Your Reply:
--------------------------------------------------------------------------
> Hi Bernd Weymann,

Hi.

>
> The evaluation of your bug report has been completed.
>
> Unfortunately, we do not have enough information to create a
> new Bug.  Please re-submit this bug report, after checking the
> JDC Bug Parade (http://search.java.sun.com/query.html?&col=obug
> or  http://developer.java.sun.com/developer/bugParade )
> for similar bugs that have already been reported.

I didn't find any bugs that are similar to this one.

>
> Please include as much of the following information as possible
> when re-submitting your report
> (at http://java.sun.com/cgi-bin/bugreport.cgi):
>
>
> - Exact steps to reproduce the problem.

I used the 2 classes t2 and t2Starter in the report above.
The Trace example is on your website http://java.sun.com/products/jpda/
Compile the 2 classes and the example

%javac -classpath "$JAVA_HOME/lib/tools.jar:." Trace.java t2.java t2Starter.java

and start them with

%java -showversion -classpath "$JAVA_HOME/lib/tools.jar:." Trace t2Starter

The different versions of the jdk1.3 should show different results
which are described in the report.

> - Additional configuration information that you think
> is relevant to the problem.  As I was not able to reproduce your problem.

Which exact configuration information do you need? I'm working with
UltraSparc 10 and Solaris2.6. The problem appears when I installed the
jdk1.3 Release Candidate. All versions above have this problem.

>
> Thank you for taking the time to report this problem.
> Regards,
> Suresh

Bye
Bernd
(Review ID: 113379) 
======================================================================

al.smith@eng 2001-04-04
Name: as83306			Date: 04/02/2001

Regression test com/sun/jdi/MethodEntryExitEvents.java fails with Ladybird builds 20 and 21 on 
windows_2000, host qavectra. As such, I am removing it from integrated state.

 This test is a new test and was not available in the regression suite prior to build 20

 For test hardware config's, see http://sqesvr.eng/st3/jdk1.4/docs/Merlin-hw.html

Here is the new failure information from build 21

#Test Results (version 2)
#Wed Apr 04 17:20:34 PDT 2001
#checksum:440ac9a326005ef2
#-----testdescription-----
$file=C:\\regression\\ladybird\\jdk1.3.1Tests\\b21\\com\\sun\\jdi\\MethodEntryExitEvents.java
$root=C:\\regression\\ladybird\\jdk1.3.1Tests\\b21
author=Tim Bell
keywords=bug4409241 othervm
library=scaffold
run=USER_SPECIFIED build JDIScaffold VMConnection\r\nUSER_SPECIFIED compile -g MethodEntryExitEvents.java\r\nUSER_SPECIFIED main/othervm MethodEntryExitEvents SUSPEND_ALL MethodEntryExitEventsDebugee\r\nUSER_SPECIFIED main/othervm MethodEntryExitEvents SUSPEND_EVENT_THREAD MethodEntryExitEventsDebugee\r\nUSER_SPECIFIED main/othervm MethodEntryExitEvents SUSPEND_NONE MethodEntryExitEventsDebugee\r\n
source=MethodEntryExitEvents.java
title=Test the bug fix for: MethodExitEvents disappear when Object-Methods are called from main

#-----environment-----

#-----testresult-----
description=file:///C:/regression/ladybird/jdk1.3.1Tests/b21/com/sun/jdi/MethodEntryExitEvents.java
end=Wed Apr 04 17:20:34 PDT 2001
environment=regtest
execStatus=Failed. Execution failed: `main' threw exception: java.lang.Exception: MethodEntryExitEvents: failed
javatestOS=Windows 2000 5.0 (x86)
javatestVersion=JT_2.1.3i
script=com.sun.javatest.regtest.RegressionScript 
sections=script_messages build compile compile compile build main
start=Wed Apr 04 17:20:11 PDT 2001
status=Failed. Execution failed: `main' threw exception: java.lang.Exception: MethodEntryExitEvents: failed
test=com/sun/jdi/MethodEntryExitEvents.java
work=C:\\results\\regression\\Ladybird\\b21\\QAVECTRA-Windows_NT-jth13-jdk131b21-04.04-17.19-V\\com\\sun\\jdi

#section:script_messages
----------messages:(1/71)----------
JDK under test: java full version "1.3.1-rc1-b21" (C:/Java/jdk131b21)

#section:build
----------messages:(3/129)----------
command: build VMConnection 
reason: User specified action: run build JDIScaffold VMConnection 
elapsed time (seconds): 5.669
result: Passed. Compilation successful

#section:compile
----------messages:(3/189)*----------
command: compile C:\\regression\\ladybird\\jdk1.3.1Tests\\b21\\com\\sun\\jdi\\scaffold\\JDIScaffold.java 
reason: .class file out of date or does not exist
elapsed time (seconds): 3.385
----------System.out:(0/0)----------
----------System.err:(0/0)----------
result: Passed. Compilation successful

#section:compile
----------messages:(3/190)*----------
command: compile C:\\regression\\ladybird\\jdk1.3.1Tests\\b21\\com\\sun\\jdi\\scaffold\\VMConnection.java 
reason: .class file out of date or does not exist
elapsed time (seconds): 2.274
----------System.out:(0/0)----------
----------System.err:(0/0)----------
result: Passed. Compilation successful

#section:compile
----------messages:(3/213)*----------
command: compile C:\\regression\\ladybird\\jdk1.3.1Tests\\b21\\com\\sun\\jdi\\MethodEntryExitEvents.java 
reason: User specified action: run compile -g MethodEntryExitEvents.java 
elapsed time (seconds): 2.894
----------System.out:(0/0)----------
----------System.err:(0/0)----------
result: Passed. Compilation successful

#section:build
----------messages:(3/108)----------
command: build MethodEntryExitEvents 
reason: Named class compiled on demand
elapsed time (seconds): 0.0
result: Passed. No need to compile: MethodEntryExitEvents.java

#section:main
----------messages:(3/221)----------
command: main MethodEntryExitEventsSUSPEND_ALL MethodEntryExitEventsDebugee
reason: User specified action: run main/othervm MethodEntryExitEvents SUSPEND_ALL MethodEntryExitEventsDebugee 
elapsed time (seconds): 14.39
----------System.out:(145/11313)----------
Suspend policy is: SUSPEND_ALL
run args: [MethodEntryExitEventsDebugee]
JVM version:1.3.1-rc1
JDI version: 1.3
JVM description: Java Debug Interface (Reference Implementation) version 1.3 
Java Debug Wire Protocol (Reference Implementation) version 1.0
JVM Debug Interface version 1.0
JVM version 1.3.1-rc1 (Java HotSpot(TM) Client VM, interpreted mode)
resumeTo loopComplete() method
Exception: instance of java.lang.ClassNotFoundException(id=4)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
stepCompleted: line#=297 event=###@###.###sLoader:297 in thread main
Exception: instance of java.util.EmptyStackException(id=8)
 at catch location: sun.misc.URLClassPath.getLoader(int)+26
stepCompleted: line#=212 event=###@###.###lassPath:212 in thread main
Exception: instance of java.util.EmptyStackException(id=8)
 at catch location: sun.misc.URLClassPath.getLoader(int)+36
stepCompleted: line#=214 event=###@###.###lassPath:214 in thread main
Exception: instance of java.lang.ClassNotFoundException(id=10)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
stepCompleted: line#=48 event=###@###.###ilegedActionException:48 in thread main
Exception: instance of java.lang.ClassNotFoundException(id=10)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
stepCompleted: line#=297 event=###@###.###sLoader:297 in thread main
 Method entry number: 1  :  ###@###.###(java.lang.String[])+0 in thread main
Exception: instance of java.lang.ClassNotFoundException(id=73)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
Exception: instance of java.util.EmptyStackException(id=74)
 at catch location: sun.misc.URLClassPath.getLoader(int)+26
stepCompleted: line#=212 event=###@###.###lassPath:212 in thread main
Exception: instance of java.util.EmptyStackException(id=74)
 at catch location: sun.misc.URLClassPath.getLoader(int)+36
Exception: instance of java.lang.ClassNotFoundException(id=75)
 at catch location: java.lang.ClassLoader.loadClass(java.lang.String, boolean)+39
stepCompleted: line#=48 event=###@###.###ilegedActionException:48 in thread main
Exce

Comments
PUBLIC COMMENTS .
10-06-2004

EVALUATION robert.field@Eng 2001-01-29 Reproduced. tim.bell@Eng 2001-02-22 I have a test case. In addition to requesting MethodExitEvents, the test case had to ask for ExceptionEvents and create some step requests before I could reproduce this. mandy.chung@eng 2001-03-01 The method exit event was disabled unexpectedly in jvmdi::post_method_exit_event() when all pending framepop events are handled and notified. It didn't check if method exit event was enabled by the agent. JDI StepRequests also hit another bug 4320231 that FRAME_POP event is sent when a method terminates by throwing an exception. Step requests set up frame pops, which are supposed to be cleared when exception is caught if the method terminates by throwing an exception. Due to that bug, frame pops are cleared when the method exits and exposes to this method exit event bug. tim.bell@Eng 2001-04-05 My JDI regression test (MethodEntryExitEvents.java) is still failing on Windows 2000 (see Bug ID 4432820). The test is counting an extra method exit event that arrives AFTER we have sent the request to turn off method exit reporting. This is a test bug because it is due to latencies in the communication channels between the debugger and the debugee. Some events keep arriving even after we've sent the request to turn them off. I am working on the test case and hope to come up with a version that works correctly on all platforms without reporting spurious failures. janet.koenig@Eng 2001-06-11 Will not fix this problem for Ladybird. Due to all the confusion around this bug report, we'll be filing a new one when this fails against Merlin.
11-06-2001

SUGGESTED FIX mandy.chung@eng 2001-03-01 Add to check if METHOD_EXIT event is disabled before resetting method_exit_on flag. This is a refinement to the fix for 4278333. This test case also requires fix for 4320231. mandy.chung@eng 2001-03-03 See attachment for webrev. mandy.chung@Eng 2001-03-14 A refinement to the fix for this bug was made in the fix for 4421456.
03-03-2001

WORK AROUND tim.bell@Eng 2001-02-22 Set a breakpoint in main(), resume to the breakpoint, and then start listening to MethodEntry/Exit Events. This allows all the system classes to load at full speed.
22-02-2001