ghidra icon indicating copy to clipboard operation
ghidra copied to clipboard

IllegalStateException: Invalid BundleContext

Open astrelsky opened this issue 1 year ago • 2 comments

Describe the bug Opening and closing the CodeBrowser results in the above error.

To Reproduce Steps to reproduce the behavior:

  1. Open the CodeBrowser.
  2. Close the CodeBrowser while it is taking a million years to initialize the osgi bundle stuff.

Expected behavior No exception.

Attachments

trace
2024-04-05 17:07:48 ERROR (TaskLauncher$1) Task Error: Restoring bundle state - Uncaught Exception: java.lang.IllegalStateException: Invalid BundleContext. java.lang.IllegalStateException: Invalid BundleContext.
	at org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:491)
	at org.apache.felix.framework.BundleContextImpl.getBundle(BundleContextImpl.java:167)
	at ghidra.app.plugin.core.osgi.BundleHost.getOSGiBundle(BundleHost.java:540)
	at ghidra.app.plugin.core.osgi.GhidraBundle.getOSGiBundle(GhidraBundle.java:199)
	at ghidra.app.plugin.core.osgi.GhidraBundle.toString(GhidraBundle.java:214)
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453)
	at java.base/java.lang.StringConcatHelper.simpleConcat(StringConcatHelper.java:408)
	at ghidra.app.plugin.core.osgi.BundleHost.activateInStages(BundleHost.java:764)
	at ghidra.app.plugin.core.osgi.BundleHost.lambda$restoreManagedBundleState$6(BundleHost.java:895)
	at ghidra.util.task.TaskLauncher$1.run(TaskLauncher.java:88)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$startTaskThread$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)

Environment (please complete the following information):

  • Ghidra Version: 11.1_DEV but this has bug has been around probably since the change to osgi.

astrelsky avatar Apr 05 '24 21:04 astrelsky

Humorously, this appears to be an exception caused by a logging statement in a catch block for another exception. The base exception:


java.lang.NullPointerException: Cannot invoke "org.osgi.framework.Bundle.getSymbolicName()" because "this._bundle" is null
	at org.phidias.compile.BundleJavaManager.<init>(BundleJavaManager.java:80)
	at org.phidias.compile.BundleJavaManager.<init>(BundleJavaManager.java:62)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle$MyBundleJavaManager.<init>(GhidraSourceBundle.java:1088)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.buildDefaultActivator(GhidraSourceBundle.java:990)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.addActivatorClass(GhidraSourceBundle.java:929)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.generateManifest(GhidraSourceBundle.java:888)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.compileToExplodedBundle(GhidraSourceBundle.java:1075)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.build(GhidraSourceBundle.java:608)
	at ghidra.app.plugin.core.osgi.BundleHost.activateInStages(BundleHost.java:754)
	at ghidra.app.plugin.core.osgi.BundleHost.lambda$6(BundleHost.java:895)
	at ghidra.util.task.TaskLauncher$1.run(TaskLauncher.java:88)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

dev747368 avatar Apr 05 '24 22:04 dev747368

Humorously, this appears to be an exception caused by a logging statement in a catch block for another exception. The base exception:


java.lang.NullPointerException: Cannot invoke "org.osgi.framework.Bundle.getSymbolicName()" because "this._bundle" is null
	at org.phidias.compile.BundleJavaManager.<init>(BundleJavaManager.java:80)
	at org.phidias.compile.BundleJavaManager.<init>(BundleJavaManager.java:62)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle$MyBundleJavaManager.<init>(GhidraSourceBundle.java:1088)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.buildDefaultActivator(GhidraSourceBundle.java:990)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.addActivatorClass(GhidraSourceBundle.java:929)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.generateManifest(GhidraSourceBundle.java:888)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.compileToExplodedBundle(GhidraSourceBundle.java:1075)
	at ghidra.app.plugin.core.osgi.GhidraSourceBundle.build(GhidraSourceBundle.java:608)
	at ghidra.app.plugin.core.osgi.BundleHost.activateInStages(BundleHost.java:754)
	at ghidra.app.plugin.core.osgi.BundleHost.lambda$6(BundleHost.java:895)
	at ghidra.util.task.TaskLauncher$1.run(TaskLauncher.java:88)
	at ghidra.util.task.Task.monitoredRun(Task.java:134)
	at ghidra.util.task.TaskRunner.lambda$0(TaskRunner.java:106)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

download

astrelsky avatar Apr 06 '24 22:04 astrelsky