Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #36607

Re: Eclipse doesn't like else

From Marcel Mueller <news.5.maazl@spamgourmet.org>
Newsgroups comp.lang.java.programmer
Subject Re: Eclipse doesn't like else
Date 2017-05-12 20:30 +0200
Organization MB-NET.NET for Open-News-Network e.V.
Message-ID <of4v05$j60$1@gwaiyur.mb-net.net> (permalink)
References <3c792901-a05d-4a02-b058-20b9e0576095@googlegroups.com>

Show all headers | View raw


On 12.05.17 19.44, Eric Douglas wrote:
> Why must it give a warning on this else condition?
>
> 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".

Eclispe is right. Your code is not exception safe. If an SQLException is 
thrown close will not be executed. close should always be called from a 
finally block.

Or even better with Java 7:

try (PreparedStatement myPrep = conn.prepareStatement("initial query"))
{ myPrep.executeQuery();
}


Marcel

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Eclipse doesn't like else Eric Douglas <e.d.programmer@gmail.com> - 2017-05-12 10:44 -0700
  Re: Eclipse doesn't like else Marcel Mueller <news.5.maazl@spamgourmet.org> - 2017-05-12 20:30 +0200
    Re: Eclipse doesn't like else Eric Douglas <e.d.programmer@gmail.com> - 2017-05-12 11:53 -0700
      Re: Eclipse doesn't like else Arne Vajhøj <arne@vajhoej.dk> - 2017-05-13 20:39 -0400
        Re: Eclipse doesn't like else v_borchert@despammed.com (Volker Borchert) - 2017-05-14 03:50 +0000
  Re: Eclipse doesn't like else v_borchert@despammed.com (Volker Borchert) - 2017-05-12 18:15 +0000
    Re: Eclipse doesn't like else Eric Douglas <e.d.programmer@gmail.com> - 2017-05-12 13:33 -0700
  Re: Eclipse doesn't like else Martin Gregorie <martin@address-in-sig.invalid> - 2017-05-12 21:22 +0000
  Re: Eclipse doesn't like else v_borchert@despammed.com (Volker Borchert) - 2017-05-13 00:52 +0000
  Re: Eclipse doesn't like else Arne Vajhøj <arne@vajhoej.dk> - 2017-05-13 21:04 -0400

csiph-web