Project

General

Profile

Actions

bug #6355

closed

Improve message if server is down

Added by Andreas Müller about 7 years ago. Updated over 5 years ago.

Status:
Duplicate
Priority:
New
Assignee:
Category:
taxeditor
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Severity:
normal
Found in Version:

Description

If the remote server is down/not started one gets a very long message (see attachement).

The message should be simplified in a similar way as done in #6209

possible duplicate (although different HTTP response code) #6736

Current stacktrace is:

login : admin
editor version : 4.5.0
server :  (edit-test)
schema version : 
os : Windows Server 2012 6.2 amd64
java : 1.7.0_65
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://test.e-taxonomy.eu:80/cdmserver/rem_conf_am/remoting/taxonnode.service]; nested exception is org.apache.http.NoHttpResponseException: Did not receive successful HTTP response: status code = 404, status message = [Not Found]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:216)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:147)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
    at com.sun.proxy.$Proxy39.load(Unknown Source)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.initForTaxonNode(TaxonEditorInput.java:100)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.<init>(TaxonEditorInput.java:80)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.NewInstance(TaxonEditorInput.java:212)
    at eu.etaxonomy.taxeditor.editor.EditorUtil.openTaxonNode(EditorUtil.java:159)
    at eu.etaxonomy.taxeditor.navigation.NavigationUtil.openEditor(NavigationUtil.java:112)
    at eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator.handleDoubleClick(TaxonNavigator.java:464)
    at org.eclipse.ui.navigator.CommonNavigator$5.run(CommonNavigator.java:523)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.navigator.CommonNavigator$4.doubleClick(CommonNavigator.java:521)
    at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:845)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
    at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
    at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:843)
    at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1462)
    at org.eclipse.ui.navigator.CommonViewer.handleDoubleSelect(CommonViewer.java:454)
    at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1246)
    at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:249)
    at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:246)
    at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:307)
    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:4165)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
    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:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.apache.http.NoHttpResponseException: Did not receive successful HTTP response: status code = 404, status message = [Not Found]
    at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.validateResponse(HttpComponentsHttpInvokerRequestExecutor.java:357)
    at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.doExecuteRequest(HttpComponentsHttpInvokerRequestExecutor.java:230)
    at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:58)
    at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:138)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:194)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:176)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144)
    ... 47 more

The error can be invoked by stopping the server via the management UI http://test.e-taxonomy.eu/cdmserver/manage/index.jsp


Files

ServerDown.png (25.7 KB) ServerDown.png Andreas Müller, 01/20/2017 01:53 PM

Related issues

Related to EDIT - bug #6209: NPE in DatasourceViewClosedKatja Luther

Actions
Related to EDIT - feature request #5839: Improve error message when server can't be reachedDuplicateKatja Luther

Actions
Related to EDIT - task #6736: Handle server not available user friendlyDuplicateKatja Luther

Actions
Is duplicate of EDIT - feature request #5209: Improve server availability checkNewKatja Luther

Actions
Actions #2

Updated by Andreas Müller about 7 years ago

  • Related to bug #6209: NPE in DatasourceView added
Actions #3

Updated by Andreas Müller about 7 years ago

Actions #4

Updated by Andreas Müller about 7 years ago

This is NOT a duplicate for related tickets like #6209 but a separate issue.

Actions #5

Updated by Patrick Plitzner almost 7 years ago

  • Related to task #6736: Handle server not available user friendly added
Actions #6

Updated by Patrick Plitzner almost 7 years ago

Andreas M.:
"wie schon öfters erwähnt, sollten wir hier ja versuchen, eine nutzerfreundlichere Fehlermeldung anzuzeigen.

Stimmt mein Gefühl, dass das schwierig ist, weil es in allen möglichen Situationen auftreten kann?

Aber ist es nicht möglich, diesen Fehler z.B. in der MessageUtils oder wie die heißt als Querschnittsproblem abzufangen und eine passende Fehlermeldung anzuzeigen.

Ansonsten werden wir uns hier in Zukunft wohl sehr regelmäßig mit diesen Fehlermeldungen der User herumschlagen müssen / und die User werden regelmäßig unzufrieden sein, dass was nicht funktioniert, obwohl lediglich die Verbindung weg ist.

Als Advanced Feature könnten wir auch noch einen Verbindungscheck einbauen ins UI, wenn dieser Fehler angezeigt wird. Damit kann der User selber testen, ob ein generelles Verbindungsproblem vorliegt. Und einiges andere wäre möglich, um den User zu unterstützen (z.B. Link auf die Managementkonsole, wo er sehen kann, dass der Server neustartet, wann er zuletzt neugestartet wurde, den Testbutton klicken kann etc.)."

Actions #7

Updated by Patrick Plitzner almost 7 years ago

  • Description updated (diff)
Actions #8

Updated by Andreas Müller almost 7 years ago

In the above case the interruption took place during lazy initialization:

login : w.berendsohn
editor version : 4.7.0
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryo_amaranthaceae
schema version : 4.1.0.0.201607300000
os : Windows 7 6.1 amd64
java : 1.8.0_121
org.eclipse.swt.SWTException: Failed to execute runnable (eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond)
                at org.eclipse.swt.SWT.error(SWT.java:4533)
                at org.eclipse.swt.SWT.error(SWT.java:4448)
                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
                at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211)
                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
                at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
                at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
                at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
                at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
                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:388)
                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
                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:673)
                at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
                at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
Caused by: eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1358)
                at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:627)
                at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:167)
                at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:184)
                at org.hibernate.collection.internal.PersistentSet.size(PersistentSet.java:143)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.checkForMultipleNameUsages(NonViralNameDetailSection.java:121)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.createToolbar(NonViralNameDetailSection.java:92)
                at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setSectionTitle(AbstractCdmDetailSection.java:158)
                at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:127)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.setTaxonBase(NonViralNameDetailSection.java:135)
                at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:82)
                at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210)
                at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.refresh(AbstractCdmDataViewer.java:123)
                at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.setInput(AbstractCdmDataViewer.java:109)
                at eu.etaxonomy.taxeditor.view.detail.DetailsViewer.setInput(DetailsViewer.java:161)
                at eu.etaxonomy.taxeditor.view.AbstractCdmViewPart.showViewer(AbstractCdmViewPart.java:118)
                at eu.etaxonomy.taxeditor.view.detail.DetailsViewPart.selectionChanged_internal(DetailsViewPart.java:95)
                at eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart$DelaySelection.run(AbstractCdmEditorViewPart.java:52)
                at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
                ... 23 more
Caused by: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:216)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:147)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
                at com.sun.proxy.$Proxy53.initializeCollection(Unknown Source)
                at eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl.initializeCollection(CachedCommonServiceImpl.java:69)
                at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1340)
                ... 42 more
Caused by: org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
                at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
                at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
                at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
                at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
                at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
                at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
                at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
                at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
                at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
                at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
                at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
                at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.executeHttpPost(HttpComponentsHttpInvokerRequestExecutor.java:338)
                at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.doExecuteRequest(HttpComponentsHttpInvokerRequestExecutor.java:229)
                at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:61)
                at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:138)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:194)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:176)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144)
                ... 47 more

Actions #9

Updated by Patrick Plitzner over 5 years ago

Actions #10

Updated by Patrick Plitzner over 5 years ago

  • Status changed from New to Duplicate
Actions #11

Updated by Andreas Müller over 5 years ago

  • Target version deleted (Unassigned CDM tickets)
Actions

Also available in: Atom PDF