Opened 11 years ago

Last modified 10 years ago

#730 closed defect

GetCapabilities fails if a coverage is registered in petascope but not in rasdaman — at Initial Version

Reported by: Dimitar Misev Owned by: Piero Campalani
Priority: major Milestone: 9.0.x
Component: petascope Version: development
Keywords: Cc: Jelmer Oosthoek
Complexity: Easy

Description

E.g.

Caused by: RasdamanRequestFailed: Error evaluating rasdaman query: 'select sdom(c)[0]from ba378x AS c where oid(c) = 2574337
	at petascope.util.ras.RasUtil.executeRasqlQuery(RasUtil.java:143)
	at petascope.util.ras.RasUtil.executeRasqlQuery(RasUtil.java:78)
	at petascope.core.DbMetadataSource.getIndexDomain(DbMetadataSource.java:1860)
	... 24 more
Caused by: org.odmg.QueryException: Execution error 355 in line 1, column 23, near token ba378x: Collection name is unknown.
	at rasj.odmg.RasOQLQuery.execute(RasOQLQuery.java:249)
	at petascope.util.ras.RasUtil.executeRasqlQuery(RasUtil.java:136)
	... 26 more
 ERROR [02:37:16] GetCapabilitiesHandler@342: Petascope error
InternalComponentError: Error while executing RasQL query
	at petascope.util.WcsUtil.getMetadata(WcsUtil.java:109)
	at petascope.wcs2.parsers.GetCoverageMetadata.<init>(GetCoverageMetadata.java:92)
	at petascope.wcs2.handlers.GetCapabilitiesHandler.handle(GetCapabilitiesHandler.java:294)
	at petascope.wcs2.handlers.GetCapabilitiesHandler.handle(GetCapabilitiesHandler.java:64)
	at petascope.wcs2.extensions.AbstractProtocolExtension.handle(AbstractProtocolExtension.java:70)
	at petascope.PetascopeInterface.handleWcs2Request(PetascopeInterface.java:614)
	at petascope.PetascopeInterface.handleWcsRequest(PetascopeInterface.java:544)
	at petascope.PetascopeInterface.doGet(PetascopeInterface.java:322)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

The error returned to the user is

<ows:ExceptionReport version="2.0.0"
    xsd:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd"
    xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
    <ows:Exception exceptionCode="InternalComponentError">
        <ows:ExceptionText>Error while executing RasQL query</ows:ExceptionText>
    </ows:Exception>

</ows:ExceptionReport>
  1. I think on a GetCapabilities request, a warning is good enough to be logged, and the 'zombie' coverage is simply ignored.
  2. It would be good for the errors to be combined in the ExceptionReport by including the messages of the parent exceptions, e.g.
    <ows:ExceptionReport version="2.0.0"
        xsd:schemaLocation="http://www.opengis.net/ows/2.0 http://schemas.opengis.net/ows/2.0/owsExceptionReport.xsd"
        xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
        <ows:Exception exceptionCode="InternalComponentError">
            <ows:ExceptionText>Error while executing RasQL query</ows:ExceptionText>
        </ows:Exception>
        <ows:Exception exceptionCode="InternalComponentError">
            <ows:ExceptionText>Error evaluating rasdaman query: 'select sdom(c)[0]from ba378x AS c where oid(c) = 2574337</ows:ExceptionText>
        </ows:Exception>
        <ows:Exception exceptionCode="InternalComponentError">
            <ows:ExceptionText>org.odmg.QueryException: Execution error 355 in line 1, column 23, near token ba378x: Collection name is unknown.</ows:ExceptionText>
        </ows:Exception>
    </ows:ExceptionReport>
    

Should be checked if that's the right way to list several exceptions though.

Change History (0)

Note: See TracTickets for help on using tickets.