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