Proposal: Automatic Resource Management
Joshua Bloch
jjb at google.com
Sat Mar 7 20:45:14 PST 2009
Neal,
On Sat, Mar 7, 2009 at 11:45 AM, Neal Gafter <neal at gafter.com> wrote:
> On Sat, Mar 7, 2009 at 10:40 AM, Joshua Bloch <jjb at google.com> wrote:
> > Neal,
> > Sorry, I should have defined my terms. I define a "true resource" as an
> > object that can only used once, and then must be disposed of, never to be
> > used again.
>
> That's not the usual definition, (see
> <http://en.wikipedia.org/wiki/Resource_(computer_science)>),
The words "true resource" don't occur in this article. And Wikipedia is far
from authoritative.
> This definition would appear to include classes and interfaces such as
>
> java.sql.Statement (close)
> java.nio.channels.FileLock (release)
> org.ietf.jgss.GSSCredential (dispose)
> java.awt.image.VolatileImage (flush)
>
> I think one of these use cases is currently supported by the proposal.
Nothing is currently supported: types must be retrofitted to mark them as
resources. So the question is, which of these types can be retrofitted? On
a quick reading, it would appear that only GSSCredential presents a problem:
it's an interface (not a class) and it's disposal method is named "flush."
Luckily, it's not commonly used (only 3k google hits vs. 300k for
java.sql.Statement).
The goal here is simply to hit the common cases. I believe the proposed
feature will do that, even if we elect to implement the simple
(interface-based) version.
Josh
More information about the coin-dev
mailing list