[ 
https://issues.apache.org/jira/browse/SIS-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16868586#comment-16868586
 ] 

Martin Desruisseaux edited comment on SIS-464 at 6/20/19 2:49 PM:
------------------------------------------------------------------

Also made {{Resource.getIdentifier()}} optional.


was (Author: desruisseaux):
Also made `Resource.getIdentifier()` optional.

> DataSet.getEnvelope() should return Optional<Envelope>
> ------------------------------------------------------
>
>                 Key: SIS-464
>                 URL: https://issues.apache.org/jira/browse/SIS-464
>             Project: Spatial Information Systems
>          Issue Type: Bug
>          Components: Storage
>    Affects Versions: 0.8
>            Reporter: Martin Desruisseaux
>            Assignee: Martin Desruisseaux
>            Priority: Major
>             Fix For: 1.0
>
>
> The {{org.apache.sis.storage.DataSet}} interface contains the following 
> method:
> {code:java}
> Envelope getEnvelope() throws DataStoreException;
> {code}
> It should be:
> {code:java}
> Optional<Envelope> getEnvelope() throws DataStoreException;
> {code}
> The javadoc was saying that this envelope should not be null, but may 
> nevertheless be null is some circumstances. For example the envelope may be 
> too costly to compute if it would require to scan all features in a dataset. 
> The danger is that users will assume that the envelope will never be null for 
> practical purposes, which is a dangerous assumptions. In another project 
> using SIS, we found that this assumption was one significant cause of 
> {{NullPointerException}}. We propose to declare the envelope as {{Optional}} 
> for making clear that it may be absent.
> Note that this is an incompatible API changes. We hope that 
> {{DataSet.getEnvelope()}} is not yet used too widely.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to