rombert / ereviewboard

A mylyn-based Eclipse integration for Review Board
46 stars 31 forks source link

There was an error fetching extended information for this repository (Unhandled event loop exception) #150

Open jodzga opened 8 years ago

jodzga commented 8 years ago

When I try to create a new query I am getting "Unhandled event loop exception":

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.review_board.ereviewboard.ui.ReviewboardUiUtil.refreshRepositoryData(ReviewboardUiUtil.java:104) at org.review_board.ereviewboard.ui.wizard.ReviewboardQueryPage.updateRepositoryData(ReviewboardQueryPage.java:162) at org.review_board.ereviewboard.ui.wizard.ReviewboardQueryPage.createControl(ReviewboardQueryPage.java:410) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:175) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:705) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:597) at org.eclipse.jface.window.Window.create(Window.java:430) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1096) at org.eclipse.mylyn.internal.tasks.ui.actions.NewQueryAction.run(NewQueryAction.java:92) at org.eclipse.mylyn.internal.tasks.ui.actions.NewQueryAction.run(NewQueryAction.java:55) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:247) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4230) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1491) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1514) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1499) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1299) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4072) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3698) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:654) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:598) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608) at org.eclipse.equinox.launcher.Main.run(Main.java:1515) Caused by: java.lang.reflect.InvocationTargetException at org.review_board.ereviewboard.ui.ReviewboardUiUtil$1.run(ReviewboardUiUtil.java:94) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119) Caused by: org.review_board.ereviewboard.core.exception.ReviewboardApiException: There was an error fetching extended information for this repository. at org.review_board.ereviewboard.core.client.RestfulReviewboardReader.checkedGetJSonRootObject(RestfulReviewboardReader.java:115) at org.review_board.ereviewboard.core.client.RestfulReviewboardReader.readRepositoryInfo(RestfulReviewboardReader.java:298) at org.review_board.ereviewboard.core.client.RestfulReviewboardClient.loadRepositoryInfo(RestfulReviewboardClient.java:247) at org.review_board.ereviewboard.core.client.RestfulReviewboardClient.updateRepositoryData(RestfulReviewboardClient.java:437) at org.review_board.ereviewboard.ui.ReviewboardUiUtil$1.run(ReviewboardUiUtil.java:92) ... 1 more

In the "Reviewboard Repository Settings" I can successfully validate settings.

I am using Reviewboard 2.0.18.

jodzga commented 8 years ago

I looked deeper into it and found out that the problem is that for one of the queries made by the plugin ReveiwBoard server returns 500: https://rbserver.com/api/repositories/9/info/ There are few others that return 200 e.g.: https://rbserver.com/api/repositories/4/info/ https://rbserver.com/api/repositories/6/info/ It seems that the problem is on the server, not in the plugin. It would be great if plugin could handle this problem gracefully but I don't know enough to determine if this information from the server is absolutely necessary for plugin to work or not.

jodzga commented 8 years ago

Looked into it and it turns out that this is an expected behavior: https://www.reviewboard.org/docs/manual/1.5/webapi/2.0/errors/210-repository-info-error/

I think a correct behavior for the plugin would be to ignore this error and continue. Is that possible?

rombert commented 8 years ago

Thanks for the report. I may not be able to look into this soon. Can you verify the error on the server side related to that repository? This may be fixable by ignoring the error, but we may hit inconsistencies later on.

Seems related to #118

jodzga commented 8 years ago

I verified that it is caused by repository. Visiting repository returns:

<D:error xmlns:D="DAV:" xmlns:m="http://apache.org/dav/xmlns" xmlns:C="svn:">
<C:error/>
<m:human-readable errcode="2">Could not open the requested SVN filesystem</m:human-readable>
</D:error>

It would be great if plugin could ignore it, perhaps try to re-fetch it later. In my case this is a legacy repo not used anymore so ignoring failures related to it is unlikely to cause problems but I don't know enough about ReviewBoard to say that ignoring 500 it is safe in general. On the other hand, one misconfigured/flaky repo renders plugin completely unusable.

rombert commented 7 years ago

Agreed we should be more robust here. Unfortunately I don't have the time to work on it myself. Contributions welcome :-)

ssenegas commented 2 years ago

+1 This issue still exist with Eclipse IDE for Java Developers Version: 2022-03 (4.23.0) Build id: 20220310-1457 Windows 10 64 bits eReviewBoard 0.13.4 <-> Review Board 3.0.19

!ENTRY org.eclipse.ui 4 0 2022-06-13 14:19:03.056 !MESSAGE Unhandled event loop exception !STACK 0 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.review_board.ereviewboard.ui.ReviewboardUiUtil.refreshRepositoryData(ReviewboardUiUtil.java:104) at org.review_board.ereviewboard.ui.wizard.ReviewboardQueryPage.updateRepositoryData(ReviewboardQueryPage.java:162) at org.review_board.ereviewboard.ui.wizard.ReviewboardQueryPage.createControl(ReviewboardQueryPage.java:410) at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:178) at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:743) at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:635) at org.eclipse.jface.window.Window.create(Window.java:431) at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1094) at org.eclipse.mylyn.internal.tasks.ui.wizards.NewRepositoryWizard$1.run(NewRepositoryWizard.java:181) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4035) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3635) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:644) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:551) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:156) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) at org.eclipse.equinox.launcher.Main.run(Main.java:1467) Caused by: java.lang.reflect.InvocationTargetException at org.review_board.ereviewboard.ui.ReviewboardUiUtil$1.run(ReviewboardUiUtil.java:94) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122) Caused by: org.review_board.ereviewboard.core.exception.ReviewboardApiException: There was an error fetching extended information for this repository. at org.review_board.ereviewboard.core.client.RestfulReviewboardReader.checkedGetJSonRootObject(RestfulReviewboardReader.java:115) at org.review_board.ereviewboard.core.client.RestfulReviewboardReader.readRepositoryInfo(RestfulReviewboardReader.java:298) at org.review_board.ereviewboard.core.client.RestfulReviewboardClient.loadRepositoryInfo(RestfulReviewboardClient.java:247) at org.review_board.ereviewboard.core.client.RestfulReviewboardClient.updateRepositoryData(RestfulReviewboardClient.java:437) at org.review_board.ereviewboard.ui.ReviewboardUiUtil$1.run(ReviewboardUiUtil.java:92) ... 1 more