opengeospatial / ets-wcs20

Executable Test Suite for WCS 2.0.1
Other
1 stars 2 forks source link

WCS processing wcs2:get-proc-req15-17 failed with Parser {http://www.occamlab.com/te/parsers}HTTPParser threw an exception #110

Closed bangph closed 2 years ago

bangph commented 2 years ago

I use this endpoint http://conformance.rasdaman.com/rasdaman/ows?service=WCS&version=2.0.1&request=GetCapabilities to test WCS WCPS 2.0 (Processing).

It failed in reqd15-17 with strange error in teamengine:

Log for test s0110/d13242e81_1/d18145e136_1

Test wcs2:get-proc-req15-17 type Mandatory default result Passed (s0110/d13242e81_1/d18145e136_1)

Assertion: Req15-17:Send valid ProcessCoverages requests using the WCS SOAP protocol. Check that the result is correct.

Error in call to extension function {public org.w3c.dom.NodeList com.occamlab.te.TECore.soap_request(org.w3c.dom.Document,java.lang.String) throws java.lang.Throwable}: 
Exception in extension function java.lang.RuntimeException: 
Parser {http://www.occamlab.com/te/parsers}HTTPParser threw an exception.
Result: Failed

image

I tried to understand what it tested, here it just sends a WCPS query which encode in PNG.

  <ctl:test name="wcs2:get-proc-req15-17">
      <ctl:param name="url"/>
      <ctl:param name="Capabilities"/>
      <ctl:param name="DescribeCoverage"/>
      <ctl:param name="CoverageId"/>
      <ctl:assertion>Req15-17:Send valid ProcessCoverages requests using the WCS SOAP protocol. Check that the result is correct.</ctl:assertion>
      <ctl:code>
         <xsl:variable name="ProcessCoverages">
            <ctl:soap-request version="1.2" charset="UTF-8">
               <ctl:url>
                  <xsl:value-of select="$url"/>
               </ctl:url>
               <ctl:body>
                  <proc:ProcessCoverages xmlns:proc="http://www.opengis.net/wcs_service-extension_processing/2.0"
                                         service="WCS"
                                         version="2.0.1">
                     <proc:query>
        for c in ( <xsl:value-of select="$CoverageId"/> )
        return  encode (c, "png")
        </proc:query>
                  </proc:ProcessCoverages>
               </ctl:body>
               <parsers:HTTPParser>
                  <parsers:parse>
                     <parsers:XMLValidatingParser>
                        <parsers:schemas>
                           <parsers:schema type="url">http://schemas.opengis.net/wcs/2.0/wcsAll.xsd</parsers:schema>
                        </parsers:schemas>
                     </parsers:XMLValidatingParser>
                  </parsers:parse>
               </parsers:HTTPParser>
            </ctl:soap-request>
         </xsl:variable>
         <ctl:call-test name="wcs:ProcessCoverages_not_exception">
            <ctl:with-param name="ProcessCoverages" select="$ProcessCoverages"/>
         </ctl:call-test>
         <ctl:call-test name="wcs:get-proc-req3">
            <ctl:with-param name="ProcessCoverages" select="$ProcessCoverages"/>
         </ctl:call-test>
         <ctl:call-test name="wcs:get-proc-req4">
            <ctl:with-param name="ProcessCoverages" select="$ProcessCoverages"/>
            <ctl:with-param name="number" select="1"/>
         </ctl:call-test>
         <ctl:call-test name="wcs:get-proc-req5-6">
            <ctl:with-param name="ProcessCoverages" select="$ProcessCoverages"/>
            <ctl:with-param name="number" select="1"/>
            <ctl:with-param name="encoding" select="png"/>
         </ctl:call-test>
      </ctl:code>
   </ctl:test>

@dstenger can you please give some ideas with that? The java exception is not useful for me to know what is wrong.

dstenger commented 2 years ago

Thank you for reporting. We will do further investigation.

dstenger commented 2 years ago

The error can also be reproduced on a local environment.

Following StackTrace is logged: log.txt

dstenger commented 2 years ago

It seems that following request body returns an image (extracted from the test).

<proc:ProcessCoverages 
    xmlns:wcs="http://www.opengis.net/wcs/2.0"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:proc="http://www.opengis.net/wcs_service-extension_processing/2.0"
     service="WCS"  version="2.0.1">
    <proc:query>
        for c in ( <xsl:value-of select="$CoverageId"/> )
        return  encode (c, "png")
        </proc:query>
</proc:ProcessCoverages>

However, the test expects XML.

dstenger commented 2 years ago

@bpross-52n Can you please do further investigation?

bangph commented 2 years ago

@dstenger thanks for your quick investigation. I'm not sure if the test suite for WCS Processing has changed recently or not. I hope @bpross-52n can have some ideas soon.

dstenger commented 2 years ago

No, this code has not been changed for a long time (last commit is from 2015). Can you recall if you were able to pass this test in the past?

bangph commented 2 years ago

@dstenger yes, last year I ran it for renewing OGC CITE certificates without problem. Not sure what is wrong here.

bangph commented 2 years ago

@dstenger FYI: I'm using a new software version on http://conformance.rasdaman.com/rasdaman/ows?service=WCS&version=2.0.1&request=GetCapabilities. I can check an older version of it which passed this requirements last years as well. It may give some ideas.

bangph commented 2 years ago

@dstenger I think the reason is, this req15-17 needs to have SOAP body to wrap the binary content. That doesn't exist in our new software and I will fix that.

SOAP:

https://www.informit.com/articles/article.aspx?p=327825&seqNum=17

I will close this ticket.