<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    I think you can increase the timeout to 60s and throw an exception.
    I am currently occupied with other tasks so if you have a few
    minutes to spare, you should be able to make the changes.<br>
    <br>
    Johann<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 10/12/2014 07:02, Martin
      Desruisseaux wrote:<br>
    </div>
    <blockquote cite="mid:5487E1EB.5090706@geomatys.fr" type="cite">
      <meta content="text/html; charset=windows-1252"
        http-equiv="Content-Type">
      Hello Emmanuel<br>
      <br>
      I just had a look in the code. I saw a hard-coded timeout of 10
      seconds in the <tt>WebFeatureClient</tt> class (line 154 and
      158). Would it be possible that the server queried by your
      application take more than 10 seconds to answer?<br>
      <br>
      Hello Johann<br>
      <br>
      I case of timeout, the <tt>WebFeatureClient.getCapabilities()</tt>
      method at line 159 logs a warning and returns null. However the
      Javadoc does not said that this method may return null, and indeed
      the <tt>WFSFeatureStore.checkTypeExists()</tt> method at line 114
      does not verify if the <tt>WFSCapabilities</tt> object is null,
      which causes the <tt>NullPointerException</tt>. What would be the
      appropriate behaviour?<br>
      <br>
      <ul>
        <li>In case of failure, let <tt>WebFeatureClient</tt> throws an
          exception? (my preferred choice, since otherwise we get a <tt>NullPointerException</tt>
          anyway, which is much less informative).</li>
        <li>In case of failure, have <tt>WebFeatureClient</tt> to
          return an empty <tt>WFSCapabilities</tt>? (I don't think it
          would be safe, since the caller does not know that there is a
          problem).</li>
        <li>Document that <tt>WebFeatureClient.getCapabilities()</tt>
          may return null in case of failure, and revisit all caller
          code for making them null-safe?<br>
        </li>
      </ul>
      <br>
          Martin<br>
      <br>
      <br>
      <br>
      <div class="moz-cite-prefix">Le 09/12/14 07:18, Emmanuel Blondel a
        écrit :<br>
      </div>
      <blockquote cite="mid:5486239A.9080005@gmail.com" type="cite">
        <meta http-equiv="content-type" content="text/html;
          charset=windows-1252">
        Hello,<br>
        <br>
        I'm currently assessing the WFS client from Geotoolkit. We would
        like to use it in a new project (also because we would like to
        use Apache SIS progressively), with the purpose to discover
        featuretypes and fetch the featureCollection data, relying on
        the official GeoAPI.<br>
        <br>
        I've been trying to use Geotoolkit 4.0-M2 (which AFAIK is the
        latest milestone release), and the geotk-wfs-client.<br>
        <br>
        I get the following stack trace :<br>
        <br>
        <i>déc. 08, 2014 11:11:58 PM
          org.geotoolkit.data.wfs.WebFeatureClient getCapabilities</i><i><br>
        </i><i>AVERTISSEMENT: TimeOut error, the server takes too much
          time to answer. </i><i><br>
        </i><i>Exception in thread "main" java.lang.NullPointerException</i><i><br>
        </i><i>    at
org.geotoolkit.data.wfs.WFSFeatureStore.checkTypeExist(WFSFeatureStore.java:114)</i><i><br>
        </i><i>    at
org.geotoolkit.data.wfs.WFSFeatureStore.<init>(WFSFeatureStore.java:107)</i><i><br>
        </i><i>    at org.fao.fi.wfstesting.App.main(App.java:33)</i><br>
        <br>
        <br>
        for this code:<br>
        <br>
                final WebFeatureClient wfsServer = new
        WebFeatureClient(new URL(<a moz-do-not-send="true"
          class="moz-txt-link-rfc2396E"
          href="http://www.fao.org/figis/geoserver/ows">"http://www.fao.org/figis/geoserver/ows"</a>),

        "1.1.0");<br>
                final GetCapabilitiesRequest getCapa =
        wfsServer.createGetCapabilities();<br>
                <br>
                final GetFeatureRequest getFeature =
        wfsServer.createGetFeature();<br>
                //simplify WFS like a datastore<br>
                final FeatureStore store = new
        WFSFeatureStore(wfsServer);<br>
                <br>
                String[] typeNames = store.getTypeNames();<br>
                for(String typeName : typeNames){<br>
                    FeatureType ft = store.getFeatureType(typeName);<br>
                    System.out.println(ft.getName());<br>
                    System.out.println("==");<br>
                }<br>
        <br>
        I admit i'm lost. I had a look to the code for which i
        identified the timeout warning.<br>
        But nothing about the exception. Any idea?<br>
        <br>
        Thanks in advance for your help<br>
        Emmanuel<br>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>