Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: v_borchert@despammed.com (Volker Borchert) Newsgroups: comp.lang.java.programmer Subject: Re: Eclipse doesn't like else Date: 12 May 2017 18:15:52 GMT Organization: Private site at Eddersheim, Germany Lines: 48 Distribution: world Message-ID: References: <3c792901-a05d-4a02-b058-20b9e0576095@googlegroups.com> X-Trace: individual.net zPPb27N1YEW6q8dcsvGDNgG15irFNkME0Fyhpwnbm48ZtAVzbP Cancel-Lock: sha1:UkCtVoW7doXSbpLUrlZREtZ4Hwo= Xref: csiph.com comp.lang.java.programmer:36609 Eric Douglas wrote: > Why must it give a warning on this else condition? > > import java.sql.Connection; > import java.sql.DriverManager; > import java.sql.PreparedStatement; > import java.sql.SQLException; > > public class CompileMe { > public static void testMe() { > try { > Connection conn = DriverManager.getConnection("db_connect_string", "db_userid", "db_password"); > String someCondition = "check me"; > PreparedStatement myPrep; > myPrep = conn.prepareStatement("initial query"); > myPrep.executeQuery(); > myPrep.close(); > if (someCondition.equals("one")) { > myPrep = conn.prepareStatement("query something"); > } else { > myPrep = conn.prepareStatement("query something else"); > } > myPrep.executeQuery(); > myPrep.close(); > } catch (SQLException e) { > e.printStackTrace(); > } > } > } > > This example will run the same whether we have 2 calls to prepareStatement, or set one common string to pass into prepareStatement after the if, but if we write it this way Eclipse gives a warning "Resource leak: 'myPrep' is not closed at this location". > > Take out the 3 lines above the if (prepare, execute, and close a different query) and the warning goes away. What about myPrep = conn.prepareStatement(someCondition.equals("one") ? "query something" : "query something else"); PS: Lines of postings should ideally not exceed 72 characters, to leave room for a couple of quoting levels before reaching the traditional 80 columns of terminals, xterm, and the like. -- "I'm a doctor, not a mechanic." Dr Leonard McCoy "I'm a mechanic, not a doctor." Volker Borchert