Incident #3136
closedFrom Tabular data lab I move to another VRE, then using the browser "Back" button returns an error
100%
Description
If I am in FAO Tuna Atlas, and use "Go To" to go to another VRE, the use of the back button of the browser results in an error message such as
"Error retrieving TabularResources: no endpoints found for org.gcube.resources.discovery.client.queries.impl.XQuery@f6068ae9=declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/RunningInstance')//Document/Data/ic:Profile/Resource, $entry in $resource/Profile/AccessPoint/RunningInstanceInterfaces/Endpoint where ($resource/Profile/ServiceClass/text() eq 'DataAnalysis') and ($resource/Profile/ServiceName/text() eq 'TabularData') and ($resource/Profile/DeploymentData/Status/text() eq 'ready') and (contains($entry/string(),'tabular-data-manager/tabularresourcemanager')) return $entry/text()
OK"
OR
"Error retrieving TabularResources: com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 400: Bad Request"
Can these errors be prevented?
Updated by Pasquale Pagano over 9 years ago
- Tracker changed from Support to Incident
- Category set to Data Management
- Assignee set to Lucio Lelii
Updated by Lucio Lelii over 9 years ago
- Assignee changed from Lucio Lelii to Giancarlo Panichi
this is not possible service side, I will assign this ticket to giancarlo that is the responsible for the portlet. But in my opinion it is not feasible also portlet side. The back button should be disabled directly from the portal. @massimiliano.assante@isti.cnr.it What do you think ?
Updated by Massimiliano Assante over 9 years ago
This problem is clear, and is due to the fact that upon back button the server method (in the portlet java) which is supposed to set te Context (scope) is not called.
To overcome this limitation @g.panichi@isti.cnr.it can use the ClientScopeHelper class as follows:
public void onModuleLoad() {
ClientScopeHelper.getService().setScope(Location.getHref(), new AsyncCallback() {
@Override
public void onSuccess(Boolean result) {
doWhateverYouWereDoing
}
@Override
public void onFailure(Throwable caught) {
}
});
The class is in
<groupId>org.gcube.portlets.user</groupId> <artifactId>gcube-widgets</artifactId>
don't forget to put in your taxman portlet web.xml (clearly replace /$YOUR_SERVLET_URL_PATTERN)
<servlet> <servlet-name>scopeService</servlet-name> <servlet-class>org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>scopeService</servlet-name> <url-pattern>/$YOUR_SERVLET_URL_PATTERN/scopeService</url-pattern> </servlet-mapping>
Updated by Giancarlo Panichi over 9 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
The problem is solved, the fix will be released in gCube3.11.