Bug 78356 - IllegalArgumentException in ListenerList.remove
Summary: IllegalArgumentException in ListenerList.remove
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P1 blocker (vote)
Target Milestone: 3.1 M4   Edit
Assignee: Dorian Birsan CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 78374 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-11-10 17:19 EST by Veronika Irvine CLA
Modified: 2004-11-11 10:15 EST (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Veronika Irvine CLA 2004-11-10 17:19:07 EST
Tried following the steps at:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-vcm-
home/docs/online/bugs-plugin/index.html

to install the Bugzilla plugin.

Got the following exception when pressing Finish and the Wizard did not close:

eclipse.buildId=I200411091436
java.version=1.4.2_03
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en
Command-line arguments: -showlocation

java.lang.IllegalArgumentException
	at org.eclipse.core.internal.runtime.ListenerList.remove
(ListenerList.java:135)
	at org.eclipse.core.internal.jobs.JobListeners.remove
(JobListeners.java:147)
	at org.eclipse.core.internal.jobs.JobManager.removeJobChangeListener
(JobManager.java:731)
	at 
org.eclipse.update.internal.ui.wizards.InstallWizard.launchInBackground
(InstallWizard.java:377)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.performFinish
(InstallWizard.java:144)
	at org.eclipse.jface.wizard.WizardDialog.finishPressed
(WizardDialog.java:670)
	at org.eclipse.jface.wizard.WizardDialog.buttonPressed
(WizardDialog.java:342)
	at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:543)
	at org.eclipse.swt.widgets.TypedListener.handleEvent
(TypedListener.java:89)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:818)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2803)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2448)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:718)
	at org.eclipse.jface.window.Window.open(Window.java:696)
	at 
org.eclipse.update.internal.ui.wizards.ResizableInstallWizardDialog.open
(ResizableInstallWizardDialog.java:60)
	at org.eclipse.update.ui.UpdateManagerUI.openInstaller
(UpdateManagerUI.java:52)
	at org.eclipse.ui.internal.ide.update.InstallWizardAction$1.run
(InstallWizardAction.java:47)
	at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:69)
	at org.eclipse.ui.internal.ide.update.InstallWizardAction.openInstaller
(InstallWizardAction.java:45)
	at org.eclipse.ui.internal.ide.update.InstallWizardAction.run
(InstallWizardAction.java:41)
	at org.eclipse.ui.internal.PluginAction.runWithEvent
(PluginAction.java:298)
	at org.eclipse.ui.internal.WWinPluginAction.runWithEvent
(WWinPluginAction.java:221)
	at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection
(ActionContributionItem.java:555)
	at org.eclipse.jface.action.ActionContributionItem.access$2
(ActionContributionItem.java:505)
	at org.eclipse.jface.action.ActionContributionItem$6.handleEvent
(ActionContributionItem.java:419)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:818)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2803)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2448)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1537)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1508)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
(Workbench.java:277)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
	at org.eclipse.ui.internal.ide.IDEApplication.run
(IDEApplication.java:102)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run
(PlatformActivator.java:335)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:273)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
(EclipseStarter.java:129)
	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.core.launcher.Main.basicRun(Main.java:185)
	at org.eclipse.core.launcher.Main.run(Main.java:710)
	at org.eclipse.core.launcher.Main.main(Main.java:694)
Comment 1 Jean-Michel Lemieux CLA 2004-11-11 09:43:13 EST
I've checked that this works with M3 but in the latest integration build I too 
get this error trying to install a feature from an update site. 

Marking as blocker since you can't use update/install anymore. Regresssion from 
M3.
Comment 2 Rafael Chaves CLA 2004-11-11 09:45:52 EST
John, this class was changed recently. Do you know what is going on?
Comment 3 John Arthorne CLA 2004-11-11 10:00:05 EST
I recently updated IJobManager.addJobChangeListener/removeJobChangeListener to
use the ListenerList class to fix thread safety problems. This class does not
accept null listeners, which is a legitimate thing for us to be checking.  The
class InstallWizard.launchInBackground is removing a null listener. Moving to
update.
Comment 4 Dorian Birsan CLA 2004-11-11 10:10:24 EST
*** Bug 78374 has been marked as a duplicate of this bug. ***
Comment 5 Dorian Birsan CLA 2004-11-11 10:15:56 EST
Fixed by checking for null listener before removeListener() . Also, check for 
null job before cancel().