[Geoserver-devel] [jira] Created: (GEOS-2612) KMLTest remote resource breaks the build

KMLTest remote resource breaks the build
----------------------------------------

                 Key: GEOS-2612
                 URL: http://jira.codehaus.org/browse/GEOS-2612
             Project: GeoServer
          Issue Type: Bug
          Components: WMS
            Reporter: Ben Caradoc-Davies
            Assignee: Andrea Aime
            Priority: Blocker

KMLTest uses a remote resource but is not an OnlineTestCase. It uses RemoteOWSTestSupport.isRemoteStatesAvailable() to contact http://demo.opengeo.org/geoserver/wfs and determine if it is available; sometimes it is available but something is broken enough for the test to fail.

I think this might be an intermittent failure. I have seen it before.

Looks like some transient failure local to the remote resource. The exception report contains this:
java.lang.RuntimeException: Could not
      create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326 Could
      not create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326
      Database failure while creating a
      'CoordinateReferenceSystem' object
      for code "EPSG:4326". Connection is closed

Suggestions:
(1) Make the remote bit of KMLTest an OnlineTestCase.
(2) Fix RemoteOWSTestSupport.isRemoteStatesAvailable() to test harder.
(3) Use a mock remote resource.

Sample Eclipse console (breaks in Maven too):

DecribeFT URL for topp:states: http://demo.opengeo.org/geoserver/wfs?VERSION=1.1.0&TYPENAME=topp%3Astates&NAMESPACE=xmlns(topp%3Dhttp%3A%2F%2Fwww.openplans.org%2Ftopp)&REQUEST=DescribeFeatureType&SERVICE=WFS&=&
DecribeFT URL for topp:states: http://demo.opengeo.org/geoserver/wfs?VERSION=1.1.0&TYPENAME=topp%3Astates&NAMESPACE=xmlns(topp%3Dhttp%3A%2F%2Fwww.openplans.org%2Ftopp)&REQUEST=DescribeFeatureType&SERVICE=WFS&=&
Supported filter: [[ PERSONS > 20000000 ] AND [ the_geom bbox POLYGON ((-90 -180, -90 180, 90 180, 90 -180, -90 -180)) ]]
Unupported filter: Filter.INCLUDE
06 Feb 11:22:51 ERROR [geoserver.ows] -
java.io.IOException
  at org.vfny.geoserver.wms.responses.map.kml.KMLMapProducer.writeTo(KMLMapProducer.java:124)
  at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:612)
  at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
  at org.geoserver.ows.Dispatcher.response(Dispatcher.java:702)
  at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:215)
  at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
  at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  at org.geoserver.test.GeoServerAbstractTestSupport.dispatch(GeoServerAbstractTestSupport.java:1039)
  at org.geoserver.test.GeoServerAbstractTestSupport.dispatch(GeoServerAbstractTestSupport.java:1006)
  at org.geoserver.test.GeoServerAbstractTestSupport.getAsServletResponse(GeoServerAbstractTestSupport.java:453)
  at org.geoserver.test.GeoServerAbstractTestSupport.get(GeoServerAbstractTestSupport.java:434)
  at org.geoserver.test.GeoServerAbstractTestSupport.getAsDOM(GeoServerAbstractTestSupport.java:708)
  at org.geoserver.test.GeoServerAbstractTestSupport.getAsDOM(GeoServerAbstractTestSupport.java:670)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTest.testVectorWithRemoteLayer(KMLTest.java:61)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:585)
  at junit.framework.TestCase.runTest(TestCase.java:164)
  at org.geoserver.test.GeoServerAbstractTestSupport.runTest(GeoServerAbstractTestSupport.java:133)
  at junit.framework.TestCase.runBare(TestCase.java:130)
  at junit.framework.TestResult$1.protect(TestResult.java:106)
  at junit.framework.TestResult.runProtected(TestResult.java:124)
  at junit.framework.TestResult.run(TestResult.java:109)
  at junit.framework.TestCase.run(TestCase.java:120)
  at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
  at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: javax.xml.transform.TransformerException: Translator error
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:133)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
  at org.vfny.geoserver.wms.responses.map.kml.KMLMapProducer.writeTo(KMLMapProducer.java:121)
  ... 36 more
Caused by: java.util.NoSuchElementException: Could not aquire feature:org.geotools.data.wfs.protocol.wfs.WFSException: WFS returned an exception. Target URL: http://demo.opengeo.org:80/geoserver/wfs?. Originating request is:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature handle="GeoTools 2.6.SNAPSHOT WFS DataStore"
outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:ows="http://www.opengis.net/ows&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:xml="http://www.w3.org/XML/1998/namespace&quot;&gt;
<wfs:Query srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326" typeName="topp:states">
  <ogc:Filter>
   <ogc:And>
    <ogc:PropertyIsGreaterThan matchCase="true">
     <ogc:PropertyName>PERSONS</ogc:PropertyName>
     <ogc:Literal>20000000</ogc:Literal>
    </ogc:PropertyIsGreaterThan>
    <ogc:BBOX>
     <ogc:PropertyName>the_geom</ogc:PropertyName>
     <gml:Envelope>
      <gml:lowerCorner>-90.0 -180.0</gml:lowerCorner>
      <gml:upperCorner>90.0 180.0</gml:upperCorner>
     </gml:Envelope>
    </ogc:BBOX>
   </ogc:And>
  </ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

  [[java.lang.RuntimeException: Could not
      create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326 Could
      not create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326
      Database failure while creating a
      &apos;CoordinateReferenceSystem&apos; object
      for code &quot;EPSG:4326&quot;. Connection is closed]]
  at org.geotools.data.store.NoContentIterator.next(NoContentIterator.java:56)
  at org.geotools.data.store.NoContentIterator.next(NoContentIterator.java:41)
  at org.geotools.feature.collection.DelegateFeatureIterator.next(DelegateFeatureIterator.java:58)
  at org.geotools.data.crs.ReprojectFeatureIterator.next(ReprojectFeatureIterator.java:130)
  at org.geotools.feature.collection.DelegateFeatureIterator.next(DelegateFeatureIterator.java:58)
  at org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:202)
  at org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:148)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encodeVectorLayer(KMLTransformer.java:203)
  at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encode(KMLTransformer.java:133)
  at org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
  at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
  at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
  at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
  ... 38 more
Caused by: org.geotools.data.wfs.protocol.wfs.WFSException: WFS returned an exception. Target URL: http://demo.opengeo.org:80/geoserver/wfs?. Originating request is:
<?xml version="1.0" encoding="UTF-8"?>
<wfs:GetFeature handle="GeoTools 2.6.SNAPSHOT WFS DataStore"
outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:ows="http://www.opengis.net/ows&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:xml="http://www.w3.org/XML/1998/namespace&quot;&gt;
<wfs:Query srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326" typeName="topp:states">
  <ogc:Filter>
   <ogc:And>
    <ogc:PropertyIsGreaterThan matchCase="true">
     <ogc:PropertyName>PERSONS</ogc:PropertyName>
     <ogc:Literal>20000000</ogc:Literal>
    </ogc:PropertyIsGreaterThan>
    <ogc:BBOX>
     <ogc:PropertyName>the_geom</ogc:PropertyName>
     <gml:Envelope>
      <gml:lowerCorner>-90.0 -180.0</gml:lowerCorner>
      <gml:upperCorner>90.0 180.0</gml:upperCorner>
     </gml:Envelope>
    </ogc:BBOX>
   </ogc:And>
  </ogc:Filter>
</wfs:Query>
</wfs:GetFeature>

  [[java.lang.RuntimeException: Could not
      create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326 Could
      not create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326
      Database failure while creating a
      &apos;CoordinateReferenceSystem&apos; object
      for code &quot;EPSG:4326&quot;. Connection is closed]]
  at org.geotools.data.wfs.v1_1_0.parsers.ExceptionReportParser.parse(ExceptionReportParser.java:101)
  at org.geotools.data.wfs.protocol.wfs.WFSExtensions.process(WFSExtensions.java:75)
  at org.geotools.data.wfs.v1_1_0.WFS_1_1_0_DataStore.getFeatureReader(WFS_1_1_0_DataStore.java:325)
  at org.geotools.data.wfs.v1_1_0.WFSFeatureCollection.reader(WFSFeatureCollection.java:168)
  at org.geotools.data.store.DataFeatureCollection.openIterator(DataFeatureCollection.java:227)
  at org.geotools.data.store.DataFeatureCollection.iterator(DataFeatureCollection.java:197)
  at org.geotools.data.store.DataFeatureCollection.features(DataFeatureCollection.java:186)
  at org.geotools.data.crs.ReprojectFeatureResults.openIterator(ReprojectFeatureResults.java:108)
  at org.geotools.feature.collection.AbstractFeatureCollection.features(AbstractFeatureCollection.java:64)
  at org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:198)
  ... 45 more
<?xml version="1.0" encoding="UTF-8"?>
<ServiceExceptionReport version="1.1.1"> <ServiceException>
      java.io.IOException
null
Translator error
Could not aquire feature:org.geotools.data.wfs.protocol.wfs.WFSException: WFS returned an exception. Target URL: http://demo.opengeo.org:80/geoserver/wfs?. Originating request is:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;wfs:GetFeature handle="GeoTools 2.6.SNAPSHOT WFS DataStore"
outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:ows="http://www.opengis.net/ows&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:xml="http://www.w3.org/XML/1998/namespace&quot;&amp;gt;
&lt;wfs:Query srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326" typeName="topp:states"&gt;
  &lt;ogc:Filter&gt;
   &lt;ogc:And&gt;
    &lt;ogc:PropertyIsGreaterThan matchCase="true"&gt;
     &lt;ogc:PropertyName&gt;PERSONS&lt;/ogc:PropertyName&gt;
     &lt;ogc:Literal&gt;20000000&lt;/ogc:Literal&gt;
    &lt;/ogc:PropertyIsGreaterThan&gt;
    &lt;ogc:BBOX&gt;
     &lt;ogc:PropertyName&gt;the_geom&lt;/ogc:PropertyName&gt;
     &lt;gml:Envelope&gt;
      &lt;gml:lowerCorner&gt;-90.0 -180.0&lt;/gml:lowerCorner&gt;
      &lt;gml:upperCorner&gt;90.0 180.0&lt;/gml:upperCorner&gt;
     &lt;/gml:Envelope&gt;
    &lt;/ogc:BBOX&gt;
   &lt;/ogc:And&gt;
  &lt;/ogc:Filter&gt;
&lt;/wfs:Query&gt;
&lt;/wfs:GetFeature&gt;

  [[java.lang.RuntimeException: Could not
      create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326 Could
      not create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326
      Database failure while creating a
      &amp;apos;CoordinateReferenceSystem&amp;apos; object
      for code &amp;quot;EPSG:4326&amp;quot;. Connection is closed]]
WFS returned an exception. Target URL: http://demo.opengeo.org:80/geoserver/wfs?. Originating request is:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;wfs:GetFeature handle="GeoTools 2.6.SNAPSHOT WFS DataStore"
outputFormat="text/xml; subtype=gml/3.1.1" resultType="results"
service="WFS" version="1.1.0" xmlns:ogc="http://www.opengis.net/ogc&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
xmlns:xlink="http://www.w3.org/1999/xlink&quot;
xmlns:ows="http://www.opengis.net/ows&quot;
xmlns:wfs="http://www.opengis.net/wfs&quot; xmlns:xml="http://www.w3.org/XML/1998/namespace&quot;&amp;gt;
&lt;wfs:Query srsName="urn:x-ogc:def:crs:EPSG:6.11.2:4326" typeName="topp:states"&gt;
  &lt;ogc:Filter&gt;
   &lt;ogc:And&gt;
    &lt;ogc:PropertyIsGreaterThan matchCase="true"&gt;
     &lt;ogc:PropertyName&gt;PERSONS&lt;/ogc:PropertyName&gt;
     &lt;ogc:Literal&gt;20000000&lt;/ogc:Literal&gt;
    &lt;/ogc:PropertyIsGreaterThan&gt;
    &lt;ogc:BBOX&gt;
     &lt;ogc:PropertyName&gt;the_geom&lt;/ogc:PropertyName&gt;
     &lt;gml:Envelope&gt;
      &lt;gml:lowerCorner&gt;-90.0 -180.0&lt;/gml:lowerCorner&gt;
      &lt;gml:upperCorner&gt;90.0 180.0&lt;/gml:upperCorner&gt;
     &lt;/gml:Envelope&gt;
    &lt;/ogc:BBOX&gt;
   &lt;/ogc:And&gt;
  &lt;/ogc:Filter&gt;
&lt;/wfs:Query&gt;
&lt;/wfs:GetFeature&gt;

  [[java.lang.RuntimeException: Could not
      create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326 Could
      not create crs: urn:x-ogc:def:crs:EPSG:6.11.2:4326
      Database failure while creating a
      &amp;apos;CoordinateReferenceSystem&amp;apos; object
      for code &amp;quot;EPSG:4326&amp;quot;. Connection is closed]]
</ServiceException>
</ServiceExceptionReport>

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira