Bug 1645 - NPE on shutdown (1GF87PO)
Summary: NPE on shutdown (1GF87PO)
Status: RESOLVED WONTFIX
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 2.0   Edit
Hardware: All Linux
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Darin Wright CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-10-10 22:16 EDT by Joe Szurszewski CLA
Modified: 2001-10-15 11:32 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Szurszewski CLA 2001-10-10 22:16:51 EDT
DS (6/12/2001 4:10:02 PM)
	Running self hosting workspace on IBM1.3 vm

	Log: Wed Jun 13 15:05:10 GMT+00:00 2001
2 org.eclipse.core.runtime
 2 Problems occurred when invoking code from plug-in: org.eclipse.core.runtime.java.lang.NullPointerException
	at org.eclipse.jdt.debug.core.JDIDebugModel.getPluginIdentifier(JDIDebugModel.java:323)
	at org.eclipse.jdt.internal.debug.core.JDIDebugElement.targetRequestFailed(JDIDebugElement.java:291)
	at org.eclipse.jdt.internal.debug.core.JDIDebugTarget.terminate(JDIDebugTarget.java:1449)
	at org.eclipse.debug.core.Launch.terminate(Launch.java:225)
	at org.eclipse.debug.internal.core.LaunchManager.shutdown(LaunchManager.java:222)
	at org.eclipse.debug.core.DebugPlugin.shutdown(DebugPlugin.java:189)
	at org.eclipse.core.internal.plugins.PluginRegistry$2.run(PluginRegistry.java:253)
	at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java(Compiled Code))
	at org.eclipse.core.internal.plugins.PluginRegistry$1.visit(PluginRegistry.java:262)
	at org.eclipse.core.internal.plugins.PluginRegistry.accept(PluginRegistry.java:41)
	at org.eclipse.core.internal.plugins.PluginRegistry.shutdownPlugins(PluginRegistry.java:265)
	at org.eclipse.core.internal.plugins.PluginRegistry.shutdown(PluginRegistry.java:240)
	at org.eclipse.core.internal.runtime.InternalPlatform.loaderShutdown(InternalPlatform.java:467)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.internal.boot.InternalBootLoader.shutdown(InternalBootLoader.java:883)
	at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:815)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:280)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:126)
	at org.eclipse.core.launcher.Main.run(Main.java:408)
	at org.eclipse.core.launcher.Main.main(Main.java:281)

DW (6/12/01 4:18:23 PM)
	This problem occurs because of a known problem with terminating a suspended VM.
	See:
		1GEYWL7: ITPDUI:ALL - README: Terminating VM on Linux

	There is no good workaround to this problem.
	Suggest as README.

DW (6/13/01 10:31:46 AM)
	Fix is to change the code that retrieves the plugin identifier to use
	a constant instead of asking the plugin for an identifier.

	Alternatively, the JDI debug plugin could terminate its launches when shutdown.
	There is an interesting problem here - the JDI debug model has already been shut
	down, and now the generic debug plugin is being shutdown, which terminates
	all launches. There are instances of a debug model that has already been shutdown.
	Should each debug model be responsible for terminating its launches when shutdown?

DW (6/13/01 3:05:55 PM)
	Suggest to defer. Side effect is that not all launches will be terminated when the IDE
	shuts down.

DS (7/10/01 11:58:11 AM)
	Created constant plugin identifier for the JDI debug model.

ARCH (7/11/01 12:09:00 PM)
	Fix it but not sure the fix proposed is right. Additional investigation needed

DW (7/17/01 7:34:58 PM)
	We are no longer able to duplicate this problem. When running in debug mode,
	and the IDE is exited (on Linux), with a debug target active which has a suspended
	thread, the IDE will exit, and the debugger will dump an error to system out saying
	that it was unable to terminate a debug target - which is the expected behaviour.

	We no longer get the unexpected walkback. On investigation we found that the
	debug plugin attempts to terminate the system process associated with the debug
	target first (which fails). It then tries to terminate the debug target, which accepts the
	request without error. However, the debug target never gets a "VM Disconnected"
	callback, and thus it does not set its state to terminated. Previously, to get the error
	in this PR, the debug target was failing when we asked it to terminate.

	Propose no fix/change.
Comment 1 Darin Wright CLA 2001-10-15 11:32:53 EDT
This is an old bug, and  comment shows unable to reproduce.