Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 325639 - review custom workflow implementation
Summary: review custom workflow implementation
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 major (vote)
Target Milestone: 3.5   Edit
Assignee: Frank Becker CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-17 13:52 EDT by Shawn Minto CLA
Modified: 2011-02-20 15:39 EST (History)
4 users (show)

See Also:


Attachments
commited patch (1023 bytes, patch)
2010-10-14 14:53 EDT, Frank Becker CLA
no flags Details | Diff
mylyn/context/zip (26.29 KB, application/octet-stream)
2010-10-14 14:53 EDT, Frank Becker CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Shawn Minto CLA 2010-09-17 13:52:12 EDT
I have noticed a couple of problems that are related to the changes for custom workflow and it would be good to do a review of this.
Comment 1 Shawn Minto CLA 2010-09-17 13:52:25 EDT
I just had to reset my username and password since they were lost for bugzilla and I got the following exceptions when pressing finish:

org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcRemoteException: Remote exception
at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.executeCall(XmlRpcOperation.java:142)
at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.call(XmlRpcOperation.java:61)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient$9.execute(BugzillaXmlRpcClient.java:227)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsInternal(BugzillaXmlRpcClient.java:231)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsWithNames(BugzillaXmlRpcClient.java:240)
at org.eclipse.mylyn.internal.bugzilla.core.CustomTransitionManager.parse(CustomTransitionManager.java:330)
at org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration.setValidTransitions(RepositoryConfiguration.java:380)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.updateConfiguration(BugzillaXmlRpcClient.java:368)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient.getRepositoryConfiguration(BugzillaClient.java:711)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.getRepositoryConfiguration(BugzillaRepositoryConnector.java:750)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.updateRepositoryConfiguration(BugzillaRepositoryConnector.java:466)
at org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector.updateRepositoryConfiguration(AbstractRepositoryConnector.java:341)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientManager$1.run(BugzillaClientManager.java:117)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by:
org.apache.xmlrpc.XmlRpcException: Login Required
at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:184)
at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.executeCall(XmlRpcOperation.java:125)
at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.call(XmlRpcOperation.java:61)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient$9.execute(BugzillaXmlRpcClient.java:227)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsInternal(BugzillaXmlRpcClient.java:231)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsWithNames(BugzillaXmlRpcClient.java:240)
at org.eclipse.mylyn.internal.bugzilla.core.CustomTransitionManager.parse(CustomTransitionManager.java:330)
at org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration.setValidTransitions(RepositoryConfiguration.java:380)
at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.updateConfiguration(BugzillaXmlRpcClient.java:368)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient.getRepositoryConfiguration(BugzillaClient.java:711)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.getRepositoryConfiguration(BugzillaRepositoryConnector.java:750)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.updateRepositoryConfiguration(BugzillaRepositoryConnector.java:466)
at org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector.updateRepositoryConfiguration(AbstractRepositoryConnector.java:341)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientManager$1.run(BugzillaClientManager.java:117)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)



------------------------------------------------------------------


java.lang.IllegalArgumentException
at org.eclipse.core.runtime.ListenerList.add(ListenerList.java:103)
at org.eclipse.core.internal.jobs.InternalJob.addJobChangeListener(InternalJob.java:158)
at org.eclipse.core.runtime.jobs.Job.addJobChangeListener(Job.java:162)
at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClientManager.repositoryChanged(BugzillaClientManager.java:138)
at org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager$5.run(TaskRepositoryManager.java:466)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager.notifyRepositorySettingsChanged(TaskRepositoryManager.java:458)
at org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager$1.propertyChange(TaskRepositoryManager.java:77)
at org.eclipse.mylyn.tasks.core.TaskRepository.notifyChangeListeners(TaskRepository.java:822)
at org.eclipse.mylyn.tasks.core.TaskRepository.setProperty(TaskRepository.java:815)
at org.eclipse.mylyn.internal.bugzilla.ui.tasklist.BugzillaRepositorySettingsPage.applyTo(BugzillaRepositorySettingsPage.java:461)
at org.eclipse.mylyn.internal.tasks.ui.wizards.EditRepositoryWizard.performFinish(EditRepositoryWizard.java:77)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430)
at org.eclipse.mylyn.tasks.ui.wizards.TaskRepositoryWizardDialog.buttonPressed(TaskRepositoryWizardDialog.java:125)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.mylyn.tasks.ui.TasksUiUtil.openEditRepositoryWizard(TasksUiUtil.java:201)
at org.eclipse.mylyn.internal.tasks.ui.commands.OpenTaskRepositoryPropertiesHandler.execute(OpenTaskRepositoryPropertiesHandler.java:33)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1253)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1103)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1099)
at org.eclipse.swt.widgets.Widget.wmSysChar(Widget.java:2433)
at org.eclipse.swt.widgets.Control.WM_SYSCHAR(Control.java:4819)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4235)
at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5844)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4886)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Comment 2 Steffen Pingel CLA 2010-09-17 14:41:57 EDT
Rob, I am concerned that there hasn't been enough testing of the current implementation. I would like to schedule a code review of the custom workflow implementation to ensure that we are in a good state for 3.5.
Comment 3 Thomas Ehrnhoefer CLA 2010-09-29 13:54:42 EDT
I cannot retrieve the repository configuration from one of my Bugzillas (running from HEAD). Weirdly enough collegues with the same permission right can do it just fine. The error I am seeing is: "Error parsing xmlrpc response. null".

There reason seems to be that the _xmlClient.getFieldsWithNames(monitor, fields)_ call fails with an _XmlRpcLoginException_ . 
A minor issue here is that:
*) all XmlRpcException are considered parsing exceptions in the wording of the error message
*) the detailed message of the particular exception I am seeing is null, but the error message to the user should not pass that along but at least show the exception type
*) no logging is happening in the error log to see the exception type

Here is the stack trace:

org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcLoginException
	at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.handleAuthenticationException(XmlRpcOperation.java:173)
	at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.executeCall(XmlRpcOperation.java:127)
	at org.eclipse.mylyn.internal.commons.xmlrpc.XmlRpcOperation.call(XmlRpcOperation.java:61)
	at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient$9.execute(BugzillaXmlRpcClient.java:227)
	at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsInternal(BugzillaXmlRpcClient.java:231)
	at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.getFieldsWithNames(BugzillaXmlRpcClient.java:240)
	at org.eclipse.mylyn.internal.bugzilla.core.CustomTransitionManager.parse(CustomTransitionManager.java:330)
	at org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration.setValidTransitions(RepositoryConfiguration.java:380)
	at org.eclipse.mylyn.internal.bugzilla.core.service.BugzillaXmlRpcClient.updateConfiguration(BugzillaXmlRpcClient.java:368)
	at org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient.getRepositoryConfiguration(BugzillaClient.java:711)
	at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.getRepositoryConfiguration(BugzillaRepositoryConnector.java:750)
	at org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector.updateRepositoryConfiguration(BugzillaRepositoryConnector.java:466)
	at org.eclipse.mylyn.internal.tasks.ui.views.UpdateRepositoryConfigurationAction.performUpdate(UpdateRepositoryConfigurationAction.java:86)
	at org.eclipse.mylyn.internal.tasks.ui.views.UpdateRepositoryConfigurationAction$1.run(UpdateRepositoryConfigurationAction.java:64)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 4 Thomas Ehrnhoefer CLA 2010-10-08 16:56:34 EDT
addition to my previous report: if I uncheck "use xmlrpc.cgi" in the repo configuration, updating the configuration works again
Comment 5 Frank Becker CLA 2010-10-09 03:03:20 EDT
What Bugzilla instance did you use? Do you know if the needed package SOAP::Lite is installed.

You can test this

example for not installed xmlrpc interface
http://mylyn.eclipse.org/bugs36-xml-rpc-disabled/xmlrpc.cgi 

example for working  xmlrpc interface
http://mylyn.eclipse.org/bugs36/xmlrpc.cgi
Comment 6 Thomas Ehrnhoefer CLA 2010-10-12 11:01:44 EDT
(In reply to comment #5)
> What Bugzilla instance did you use? Do you know if the needed package SOAP::Lite
> is installed.

verson 3.4.1. not sure about the SOAP::Lite package. accessing xmlrpc.cgi only results in an empty page. No error or interface. But it shouldn't matter whether I have xmlrpc enabled or not, the option should not be enabled on default, especially not change for an existing repository, as it breaks a previously working repository.
Comment 7 Frank Becker CLA 2010-10-13 00:39:04 EDT
(In reply to comment #1)
> I just had to reset my username and password since they were lost for bugzilla
> and I got the following exceptions when pressing finish:
> 
Sorry how do you reset the username and password? If I clear username or password in the Window I can not press finish.

Is "Use xmlrpc.cgi" in the "Additional Settings" checked?

I think that we maybe have an problem when you want to use xmlrpc and it is not setup correctly.
Comment 8 Thomas Ehrnhoefer CLA 2010-10-13 11:03:17 EDT
(In reply to comment #7)
> Is "Use xmlrpc.cgi" in the "Additional Settings" checked?

Yes (in case this question was for me)
> 
> I think that we maybe have an problem when you want to use xmlrpc and it is not
> setup correctly.
Seems like it, but that's not really an issue I think. The issue is that the checkbox was checked on default, which can break a repository. Making the default disabled should fix this.
Comment 9 Frank Becker CLA 2010-10-14 14:53:49 EDT
Created attachment 180903 [details]
commited patch

(In reply to comment #8)
> (In reply to comment #7)
> > Is "Use xmlrpc.cgi" in the "Additional Settings" checked?
> 
> Yes (in case this question was for me)
> > 
> > I think that we maybe have an problem when you want to use xmlrpc and it is not
> > setup correctly.
> Seems like it, but that's not really an issue I think. The issue is that the
> checkbox was checked on default, which can break a repository. Making the
> default disabled should fix this.

OK now I found the fix for the problem.

If you have an repository without an template I have set the XMLRPC to on instead to off. Sorry!!!
Comment 10 Frank Becker CLA 2010-10-14 14:53:52 EDT
Created attachment 180904 [details]
mylyn/context/zip
Comment 11 Thomas Ehrnhoefer CLA 2010-10-14 16:59:38 EDT
thanks frank!
Comment 12 Frank Becker CLA 2011-02-20 15:39:02 EST
Please reopen if you find some more problems. I think that I have solved all issues.