Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 191636 - [breakpoints] import breakpoints causes excpetion
Summary: [breakpoints] import breakpoints causes excpetion
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Debug (show other bugs)
Version: 3.3   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4 M1   Edit
Assignee: Curtis Windatt CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-06-08 00:37 EDT by Michael Rennie CLA
Modified: 2007-06-22 11:18 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 Michael Rennie CLA 2007-06-08 00:37:01 EDT
While trying to reproduce 188460, I got the following error (using build  I20070606-0010):

java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at java.util.Vector.copyInto(Vector.java:166)
at org.eclipse.debug.internal.core.BreakpointManager.getBreakpoints(BreakpointManager.java:357)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsContentProvider.reorganize(BreakpointsContentProvider.java:176)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointsContentProvider.propertyChange(BreakpointsContentProvider.java:228)
at org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate$1.run(AbstractBreakpointOrganizerDelegate.java:110)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.debug.ui.AbstractBreakpointOrganizerDelegate.fireCategoryChanged(AbstractBreakpointOrganizerDelegate.java:113)
at org.eclipse.debug.internal.ui.views.breakpoints.BreakpointSetOrganizer.propertyChange(BreakpointSetOrganizer.java:147)
at org.eclipse.ui.internal.AbstractWorkingSetManager$4.run(AbstractWorkingSetManager.java:364)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.AbstractWorkingSetManager$3.run(AbstractWorkingSetManager.java:371)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:158)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:326)
at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:934)
at org.eclipse.debug.internal.ui.importexport.breakpoints.WizardImportBreakpointsPage.finish(WizardImportBreakpointsPage.java:230)
at org.eclipse.debug.internal.ui.importexport.breakpoints.WizardImportBreakpoints.performFinish(WizardImportBreakpoints.java:88)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:742)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:616)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)
at org.eclipse.jface.window.Window.open(Window.java:796)
at org.eclipse.debug.internal.ui.importexport.breakpoints.ImportBreakpoints.run(ImportBreakpoints.java:45)
at org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate.runWithEvent(AbstractDebugActionDelegate.java:297)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:246)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:545)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:490)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:153)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)

Steps:

1. create 2 working sets for breakpoints
2. organize breakpoints view by workingset > project
3. add breakpoints to both from a variety of projects
4. export all breakpoints
5. delete all breakpoints
6. import the breakpoints
7. repeat steps 5 and 6 until the error appears.
Comment 1 Michael Rennie CLA 2007-06-20 14:26:43 EDT
This was caused by the original vector of breakpoints being modified while we were trying to do a copyInto. Since the ImportBreakpoints, notification, and workingset manager all use the vector of breakpoints from seperate jobs, we should sync on the vector in its current state when we want to copy it into the returned array from getBreakpoints()

fixed in HEAD

see BreakpointsManager#getBreakpoints()
Comment 2 Michael Rennie CLA 2007-06-20 14:27:18 EDT
please verify Curtis W
Comment 3 Curtis Windatt CLA 2007-06-21 10:47:57 EDT
Verified