I am still investigating this change. I think I have found a use-case
where deprecation of dispose() and third-party migration to close()
might introduce a resource leak. I will report back when I have finished
my investigation.
Kind regards,
Ben.
On 07/06/18 14:29, Ben Caradoc-Davies wrote:
And I hope Josh Bloch also hates checked exceptions, which are the only
reason AutoCloseable was required and Closeable could not be used for
try-with-resources (because the exception specification was too narrow).
On 07/06/18 14:48, Ben Caradoc-Davies wrote:
I hate checked exceptions so much.
The one thing I am still thinking about is the impact of checked
exceptions. Our interfaces that include dispose() without throws should
probably end up with close() without throws after stage two and keep
dispose() without throws during stage one to maintain backwards
compatibility (so client
Jody,
the problem is that doing it this way will break any third-party code
that already implements an interface with dispose(). Their
implementation will override dispose() and fail to implement close().
What we could do is provide default implementations for *both* close()
and @Deprecated
Yes we should, we should always be driving our library towards "mainstream"
java conventions when we can.
We have had a couple goes of making sure closable things are closable
(feature readers, etc...). Thanks for taking this next step.
--
Jody Garnett
On Wed, 6 Jun 2018 at 19:32, Ben Caradoc-Da
Good thinking. This will require more work, but will most likely be best
in the long term. We should probably deprecate the proposed Disposable
class as well for good measure.
Should we change all uses in GeoTools from dispose() to close()? This
makes sense but will be a widespread change with
Thanks for the regex. I would also like to update all classes with
dispose, not just interfaces.
On 07/06/18 08:08, Nuno Oliveira wrote:
Hi Ben,
I also used the support of the find command:
find . | grep -E "\.java$" | xargs -i grep -l -E
"((public)|(^))\s*interface" {} | xargs -i grep -l -E
Ah! Good one Jody, +1
On 06/06/2018 11:41 PM, Jody Garnett wrote:
You could swap this around, rename the dispose implementations to close, and
provide a deprecated default implementation of dispose that calls close.
This way you can manage eventually remove dispose() from the API.
On Wed, Jun
You could swap this around, rename the dispose implementations to close,
and provide a deprecated default implementation of dispose that calls
close.
This way you can manage eventually remove dispose() from the API.
On Wed, Jun 6, 2018 at 3:09 PM Nuno Oliveira
wrote:
> Hi Ben,
>
> I also used th
Hi Ben,
I also used the support of the find command:
find . | grep -E "\.java$" | xargs -i grep -l -E "((public)|(^))\s*interface" {}
| xargs -i grep -l -E "void\s+dispose" {}
+1 for the proposal.
On 06/06/2018 02:11 AM, Ben Caradoc-Davies wrote:
Thanks, Nuno. How did you make the list? I h
Thanks, Nuno. How did you make the list? I have been using things like:
find . -name "*.java" -exec grep -l 'void dispose()' {} \; | sort
Instead of editing your list, I would like to make a change proposal on
the wiki.
Kind regards,
Ben.
On 05/06/18 22:17, Nuno Oliveira wrote:
You can count
On 05/06/18 20:05, Ian Turton wrote:
On Tue, 5 Jun 2018 at 00:25, Ben Caradoc-Davies wrote:
- Should we add AutoCloseable to interfaces, and if so which ones? We
could make a list.
This is an obvious first step, is there an easy way to do it? grep for
dispose?
I found many interfaces and cla
You can count on me, I can dedicate some spare during WE to this.
I guess before deciding on an attack plan, it would be good to have a list of
the concerned interfaces, I have started to put a list together here:
https://docs.google.com/spreadsheets/d/1u3488JvSs34IMZ1TLjJ5FYQBAFHhQ4QHqfHfULH_
On Tue, Jun 5, 2018 at 10:05 AM, Ian Turton wrote:
>
>> - Who is interested in participating in this work?
>>
>>
> I'd be up to do some of it.
>
Same here. As spare time contribution, if we are a group, we do the
deprecation, and attack one interface at a time.
As a code sprint if we want to do
On Tue, 5 Jun 2018 at 00:25, Ben Caradoc-Davies wrote:
> Many interfaces in GeoTools and GeoServer use the Dispose pattern, often
> with a dispose() method, but do not implement AutoCloseable, preventing
> their use in a try-with-resources statement. Examples range from
> ImageReader to DataStore
Many interfaces in GeoTools and GeoServer use the Dispose pattern, often
with a dispose() method, but do not implement AutoCloseable, preventing
their use in a try-with-resources statement. Examples range from
ImageReader to DataStore/DataAccess. Some interfaces like FeatureReader
already imple
16 matches
Mail list logo