On Fri, Jun 24, 2016 at 11:44 AM, Paul Benedict <pbened...@apache.org>
wrote:

> That may be the one! Thanks for searching for it. I can't believe it's
> from three years ago! :-) Anyway, it goes on for some time and provides
> good arguments to consider from both sides.
>

The whole thing is a mismatch IMO. On the one hand we have a _language
feature_, the try-with-resources statement. On the other we have the
AutoCloseable/Closeable interfaces that seem to have a very narrow focus,
which works nicely for low level objects like streams and also for very
different higher-level abstractions like JDBC Connections and ResultSets.
It seems that Locks are usually also a lower-level gadget like a stream,
even lower than a stream in fact. I could of course implement a very heavy
and resource intensive Lock, so YMMV.

Gary


>
> Cheers,
> Paul
>
> On Fri, Jun 24, 2016 at 4:10 AM, Gary Gregory <garydgreg...@gmail.com>
> wrote:
>
>> On Thu, Jun 23, 2016 at 4:51 PM, Greg Thomas <greg.d.tho...@gmail.com>
>> wrote:
>>
>>> I''m sure I read somewhere that it was a deliberate choice not to make
>>> it, to stop people using the very common pattern of creating the object in
>>> the try() - which isn't much use for a lock.
>>>
>>
>> Here?
>> http://mail.openjdk.java.net/pipermail/coin-dev/2011-February/003114.html
>>
>> Gary
>>
>>
>>>
>>>
>>> Greg
>>> --
>>> Sent from my iPhone
>>>
>>> On 24 Jun 2016, at 00:45, Remko Popma <remko.po...@gmail.com> wrote:
>>>
>>> Good idea!
>>> Maybe propose this for Java 9?
>>> Looks very reasonable to me.
>>>
>>> Sent from my iPhone
>>>
>>> On 2016/06/24, at 8:32, Gary Gregory <garydgreg...@gmail.com> wrote:
>>>
>>> I wonder if anyone knows why Lock is not AutoCloseable.
>>>
>>> This:
>>>
>>>     public static boolean hasManager(final String name) {
>>>         LOCK.lock();
>>>         try {
>>>             return MAP.containsKey(name);
>>>         } finally {
>>>             LOCK.unlock();
>>>         }
>>>     }
>>>
>>>
>>> Seems lame in comparison to:
>>>
>>>     public static boolean hasManager(final String name) {
>>>         try (LOCK.lock()) {
>>>             return MAP.containsKey(name);
>>>         }
>>>     }
>>>
>>> Which, due to syntax really would be:
>>>
>>>     public static boolean hasManager(final String name) {
>>>         try (Object o = LOCK.lock()) {
>>>             return MAP.containsKey(name);
>>>         }
>>>     }
>>>
>>> Just wonderin'...
>>>
>>> Gary
>>>
>>> --
>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>> Java Persistence with Hibernate, Second Edition
>>> <http://www.manning.com/bauer3/>
>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>> Spring Batch in Action <http://www.manning.com/templier/>
>>> Blog: http://garygregory.wordpress.com
>>> Home: http://garygregory.com/
>>> Tweet! http://twitter.com/GaryGregory
>>>
>>>
>>
>>
>> --
>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>> Java Persistence with Hibernate, Second Edition
>> <http://www.manning.com/bauer3/>
>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>> Spring Batch in Action <http://www.manning.com/templier/>
>> Blog: http://garygregory.wordpress.com
>> Home: http://garygregory.com/
>> Tweet! http://twitter.com/GaryGregory
>>
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to