Hi,

I would prefer an empty collection and schema. If that's possible.
First thing would be to make that Jira ticket.

I tried to have a look at it, but ended up with a different bug.

Regards,
Roar Brænden



> 8. feb. 2023 kl. 12:03 skrev Taavi Ilves <ta...@eagronom.com>:
> 
> Thanks for the response.
> 
> Yep, I also would prefer it failing early on over how it dies at the
> moment. Previously (pre-24.3 or something like that), it failed with
> NullPointerException. I didn't know about that 2008 spec was explicit
> about non-empty features array, that probably could be it.
> 
> About "actionable bug" I thought that code that fails is under
> "unmaintained" directory so I didn't know what it means. And whether
> filing bug, which was my first reaction, would even make sense because
> it being unmaintained. I could propose change, but I'm not very
> familiar with Geotools inner architecture to understand where the fix
> belongs, would it still through error or give some other meaningful
> result? If someone could point me in right direction with small
> explanation, it would be helpful.
> 
> Cheers,
> Taavi
> 
> On Tue, Feb 7, 2023 at 9:11 PM mark <mc.pr...@gmail.com> wrote:
>> 
>> Op 06-02-2023 om 16:31 schreef Taavi Ilves:
>>> Hi
>>> 
>>> I would have submitted the bug to JIRA, but I could not join it: "Your
>>> email address ***@***.*** doesn't have access because
>>> osgeo-org.atlassian.net has reached its license limit."
>>> 
>>> Anyway, I'm not 100% sure if this had been actionable bug, since
>>> `geojson-store` is under `modules/unsupported`, but here is my issue.
>>> 
>>> GeoJSONDataStore dies with StackOverflowError when given this geojson:
>>> 
>>> ```
>>> {
>>>     "type": "FeatureCollection",
>>>     "features": []
>>> }
>>> ```
>>> 
>>> AFAIK this is totally legit according to
>>> https://www.rfc-editor.org/rfc/rfc7946#section-3.3 :
>>>> The value of "features" is a JSON array. Each element of the array is a 
>>>> Feature object as defined above.  It is possible for this array to be 
>>>> empty.
>>> 
>>> I reproduced with this GeoJSONDataStoreTest test (simplified test from
>>> testFeatures() from same file):
>>> ```
>>>     @Test
>>>     public void testEmptyFeatures() throws IOException {
>>>         URL url = TestData.url(GeoJSONDataStore.class,
>>> "empty-featureCollection.json");
>>> 
>>>         GeoJSONDataStore fds = new GeoJSONDataStore(url);
>>>         String type = fds.getNames().get(0).getLocalPart();
>>>         fds.getFeatureReader(new Query(type), null);
>>>     }
>>> ```
>>> 
>>> Code changes and stacktrace is here as well:
>>> https://gist.github.com/ilvez/ff4325c0fe8bc67e7b3bb8c3795ca373
>>> 
>>> Cheers,
>>> Taavi
>>> 
>> 
>> it seems to be bouncing back and forth trying to determine the schema;
>> but that is never going to succeed without any feature so it continues
>> to try until exhaustion.
>> 
>> the reader could short-circuit on an empty collection, but you'd end up
>> without a schema, which is pretty much useless in geotools... personally
>> I'd prefer to fail with an exception early instead.
>> 
>> This could be because the original 2008 geojson spec did not allow an
>> empty array for features.
>> 
>> not sure what you mean with "actionable bug"; this is a community
>> project, basically anyone can propose a solution for this bug
>> 
>> -M
>> 
>> 
>> 
>> _______________________________________________
>> GeoTools-GT2-Users mailing list
>> GeoTools-GT2-Users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 
> 
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users



_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to