X-Received: by 2002:a0c:95cd:: with SMTP id t13mr550364qvt.14.1551382412677; Thu, 28 Feb 2019 11:33:32 -0800 (PST) X-Received: by 2002:a81:73c5:: with SMTP id o188mr585939ywc.2.1551382412421; Thu, 28 Feb 2019 11:33:32 -0800 (PST) Path: csiph.com!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!m21no5193349qta.0!news-out.google.com!y15ni2305qta.0!nntp.google.com!m21no5193348qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.java.programmer Date: Thu, 28 Feb 2019 11:33:32 -0800 (PST) In-Reply-To: <6f5e7b36-af8f-4f1b-b7fe-f53305b8d591@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=84.74.101.34; posting-account=UjEXBwoAAAAOk5fiB8WdHvZddFg9nJ9r NNTP-Posting-Host: 84.74.101.34 References: <709a1f3b-fc99-4bd0-a8b8-866092bb7ae9@googlegroups.com> <8e1597a2-5c18-4fd1-83a4-7667e4d11e77@googlegroups.com> <23a8128b-5c54-45ba-bfd0-2f7dda078517@googlegroups.com> <692da128-9302-41cf-a8f7-2a2a5903bf82@googlegroups.com> <3a4ed199-10a5-4ea3-882e-8d598a82dccf@googlegroups.com> <6f5e7b36-af8f-4f1b-b7fe-f53305b8d591@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <263782da-7ef6-466c-8cb3-da394bef0501@googlegroups.com> Subject: Re: it's Closeable, but I don't want to close() it yet. From: bursejan@gmail.com Injection-Date: Thu, 28 Feb 2019 19:33:32 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Lines: 54 Xref: csiph.com comp.lang.java.programmer:38755 Since Eclipse says "potential", it is not sure about its judgement. Probably it uses some heuristics to find close leaking, and in your case, it produces maybe a false positive. All these checks that different IDEs offer work by inspecting a small part of your code and work by producing a best guess, through some hand coded heuristics, that there could be a problem. They are not theorem provers that 100% can tell whether something is a problem or not. On Thursday, February 28, 2019 at 8:26:34 PM UTC+1, Eric Douglas wrote: > On Thursday, February 28, 2019 at 2:12:55 PM UTC-5, burs...@gmail.com wro= te: > > Yes in the old code you had: > >=20 > > while (rs.next()) { > > r++; > > } > > rs.close(); > >=20 > > And since rs.next() can throw an exception, > > it could escape a closing. > >=20 > > But try-resource has the ability to close > > as well, when the try-resource block > >=20 > > has an exception. > >=20 > > There were nice blog entries in the past > > from Oracle John Rose, but cant find any > > of them anymore. The Oracle blogs currently > >=20 > > look like shit, what did they do? > >=20 >=20 > 1) Is the confusion with Eclipse or Oracle? I googled it and it went str= aight to Oracle (https://docs.oracle.com/javase/tutorial/essential/exceptio= ns/tryResourceClose.html) which even specifically mentioned my scenario, si= mply putting an executeQuery inside the try block, for which Eclipse compla= ins not explicitly closing a ResultSet is a potential resource leak. >=20 > 2) I don't see the scenario in the Oracle doc for re-using a variable. S= hould I be able to close a RecordSet and call executeQuery again to that sa= me variable in that same method? >=20 > 3) How should we close a resource such as InputStream or OutputStream? I= had written the API in such a way if I'm passing them into a method to be = read once, that method is closing them. We should never close them while r= eading/writing them and expect them to get closed after the call by the met= hod that opened them?