Hi Jody,
Yeah, this implementation is very locked down:).
We don't use the ContentDataStore API; GeoMesa isn't introducing this
class into the mix. GeoServer is doing the wrapping... One of the
classes designed to bring along FeatureTypeInfo uses the
DefaultFeatureCollection and it delegates to this. (If I recall
correctly from debugging earlier.)
Thoughts?
Cheers,
Jim
On 5/8/2020 6:59 PM, Jody Garnett wrote:
That is tricky, since this wrapper is trying to mimic iterator
behaviour. The intension was to wrap any IOExceptions in runtime
exceptions (such as NoSuchElementException() ) in the event their are
any IO problems, and help code that was previously based on in memory
collections transition to streaming IO.
The FeatureReaderIterator method in question is here:
/ public boolean hasNext() {/
/ try {/
/ if (reader == null) return false;/
/ if (reader.hasNext()) {/
/ return true;/
/ } else {/
/ // auto close because we don't trust/
/ // client code to call closed :-)/
/ close();/
/ return false;/
/ }/
/ } catch (Exception e) {/
/ close();/
/ return false; // failure sounds like lack of next to me/
/ }/
/ }/
Q: How does it do if you modify the catch( Exception e) block above to
throw a runtime exception. I can kind of see why the default
implementation does not take this approach. I tried going back in git
/ svn history but I cannot find an earlier implementation to use as a
reference.
This implementation looks very locked down and I cannot see a way
around with it in place. You would need to modify the above code
(which I would support) or introduce your own wrapper (override
ContentDataStore superclass).
--
Jody Garnett
On Fri, 8 May 2020 at 14:58, Jim Hughes <jhug...@ccri.com
<mailto:jhug...@ccri.com>> wrote:
Hi all,
I'm digging into error handling around timeouts for a GeoTools
DataStore
(the various GeoMesa DataStore implementations). In GeoServer, the
GeoMesa FeatureReader ends up being wrapped by the GeoTools
FeatureReaderIterator.
This class swallows exceptions from close() and hasNext(). Are there
examples of getting Exceptions through this class? I tried a few
things, and stuck on how pass information (such as an exception
indicating that a query had a problem on the remote server or that
the
query reached its timeout) through this class.
Thoughts?
Cheers,
Jim
1.
https://github.com/geotools/geotools/blob/master/modules/library/main/src/main/java/org/geotools/feature/FeatureReaderIterator.java
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
<mailto:GeoTools-Devel@lists.sourceforge.net>
https://lists.sourceforge.net/lists/listinfo/geotools-devel
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel