Closed Bug 280629 Opened 20 years ago Closed 20 years ago

When using the debugger within another program the only way to close it is kill the JVM (System.exit(0))

Categories

(Rhino Graveyard :: Core, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bugzilla, Assigned: igor)

Details

Attachments

(1 file)

User-Agent:       Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
Build Identifier: 

We use the rhino debugger as part of a bigger process and just upgraded from 
1.5 to 1.6

In version 1.5 there used to be an API Main.dispose() that closes the UI and 
its threads.

Somewhere along the line the API disappeared and now the only possible way to 
close
the debugger is with System.exit(). The problem is that we need to keep the JVM 
to run well after
the debugger is used and currently when the program exits it hangs waiting for 
the debuggers (we sometime start several of those)
windows to close.

Currently we modified the code of org.mozilla.javascript.tools.debugger.Main
to include at line 248:

public void close()
    {
      debugGui.dispose();
    }
    


Reproducible: Always

Steps to Reproduce:
start the debugger in the following way:

    mDebugger = new org.mozilla.javascript.tools.debugger.Main("JavaScript 
Debugger");

    mDebugger.attachTo(ContextFactory.getGlobal());

    // Inform the debugger of the global execution scope
    mDebugger.setScopeProvider(new ScopeProvider()
    {
      public Scriptable getScope()
      {
        return mRootScope;
      }
    });
    mDebugger.pack();
    mDebugger.setSize(800, 600);
    mDebugger.setVisible(true);

Actual Results:  
The program can never exit and waits for the debugger window. And there is now 
way to close it using API.
To be precise: prior Rhino 1.6R1 the main Main class in the debugger extended
javax.swing.JFrame and so all methods from JFrame were available. In Rhino 1.6R1
debugger underwent reorganization to support debugging of independent Rhino
runtimes and as the result Main class extends just Object and so dispose method
is no longer available.

For compatibility with the previous Rhino releases few methods from JFrame were
added to Main during pre-release testing, but dispose was not on that list. So I
add it now.

Note also that dispose method in 1.5R5 would not break the association between
Rhino runtime and the debugger objects so even after the method call scripts
would continue to be executed in much slower debugging mode. 
I committed the fix
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: