Community
Participate
Working Groups
If an IToggleBreakpointsTargetFactory is registered without an enablement expression, and this factory returns a valid target ID for getDefaultToggleTarget(), then such toggle factory may cause another toggle factory to be disabled such that no breakpoints can be set. The problem is in the logic that selects the default toggle breakpoints target. It polls all factories that are enabled for their default toggle target ID. This default target ID can be set as the default for a set of available IDs, even if this default ID is not one of the currently active IDs. This bug showed up in Wind River product with the addition of PHP breakpoint toggle factory (see bug 352492).
Created attachment 199942 [details] Proposed fix. This fix adjusts the default toggle target selection to only consider the toggle target IDs that were returned by IToggleBreakpointsTargetFactory.getToggleTargets() calls.
I committed the fix to head and 3.7.1 branch. Mike please have a look at the changes when you have a chance.
Created attachment 199949 [details] Test code. I used this patch to the PDA example to reproduce the bug. Must launch with clean workspace to see the bug though.
(In reply to comment #2) > I committed the fix to head and 3.7.1 branch. Mike please have a look at the > changes when you have a chance. Hi Pawel, next time please wait for the review+ on the bug before putting something into a maintenance branch. Also, depending on the fix (didn't look at this one) it is often good to see how it behaves in HEAD and only if it behaves well, do the backport. Both things are there to make the maintenance stream more robust and to save you work in case the reviewer wants some tweaks to the fix or the fix causes regressions.
CQ:WIND00288111
+1 for 3.7.1 > Both things are there to make the maintenance stream > more robust and to save you work in case the reviewer wants some tweaks to the > fix or the fix causes regressions. It is also common practice to keep the patches for maintenance branches to be as small as possible, for example this fix contained a lot of Javadoc changes that should not have been back-ported.