Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 369935

Summary: Eclipse fails to break on AbstractBundle$BundleStatusException breakpoint
Product: [Eclipse Project] JDT Reporter: Alexey Romanov <alexey.v.romanov>
Component: DebugAssignee: JDT-Debug-Inbox <jdt-debug-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: Michael_Rennie
Version: 3.7   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Alexey Romanov CLA 2012-01-27 10:05:37 EST
Build Identifier: Version: Indigo Release Build id: 20110615-0604

I am debugging a BundleException caused by AbstractBundle$BundleStatusException with this stack trace:

    !ENTRY org.eclipse.osgi 2 0 2012-01-27 18:32:17.084
    !MESSAGE While loading class "ru.microdigital.cms.plugins.other.test.framework.ui.bundles.ModelTreeMessageShower$$anonfun$1$$anonfun$apply$3", thread "Thread[pool-1-thread-1,5,main]" timed out waiting (5003ms) for thread "Thread[main,5,main]" to finish starting bundle "ru.microdigital.cms.plugins.other.test.framework.ui_0.1.7 [1351]". To avoid deadlock, thread "Thread[pool-1-thread-1,5,main]" is proceeding but "ru.microdigital.cms.plugins.other.test.framework.ui.bundles.ModelTreeMessageShower$$anonfun$1$$anonfun$apply$3" may not be fully initialized.
    !STACK 0
    org.osgi.framework.BundleException: State change in progress for bundle "reference:file:/home/aromanov/cms2_ws/ru.microdigital.cms.plugins.other.test.framework.ui/" by thread "main".
    	at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)
    	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)
    	at [Irrelevant parts removed]
    Caused by: org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
    	... 63 more
    Root exception:
    org.eclipse.osgi.framework.internal.core.AbstractBundle$BundleStatusException
    	at org.eclipse.osgi.framework.internal.core.AbstractBundle.beginStateChange(AbstractBundle.java:1087)
    	at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:297)
    	at [Irrelevant parts removed]

I've added breakpoint for both caught and uncaught BundleException and AbstractBundle$BundleStatusException. Eclipse breaks on the first one, but not on the second one.

Reproducible: Always
Comment 1 Michael Rennie CLA 2012-02-21 15:39:07 EST
Looking at the BundleStatusException it is never thrown, but instead it is always passed as the cause for a BundleException. 

Java exception breakpoints only suspend when the class of the thrown exception matches the type name set in the exception breakpoint.