diff -r 833bab705918 -r 96a8278e323c src/share/classes/com/sun/tools/javac/comp/Lower.java --- a/src/share/classes/com/sun/tools/javac/comp/Lower.java Thu May 10 12:32:58 2012 -0700 +++ b/src/share/classes/com/sun/tools/javac/comp/Lower.java Fri May 11 20:06:00 2012 +0530 @@ -1606,6 +1606,11 @@ } private JCStatement makeResourceCloseInvocation(JCExpression resource) { + // convert to AutoCloseable if needed + if (types.asSuper(resource.type, syms.autoCloseableType.tsym) == null) { + resource = (JCExpression) convert(resource, syms.autoCloseableType); + } + // create resource.close() method invocation JCExpression resourceClose = makeCall(resource, names.close,