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


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

Re: Eclipse doesn't like else

From v_borchert@despammed.com (Volker Borchert)
Newsgroups comp.lang.java.programmer
Subject Re: Eclipse doesn't like else
Date 2017-05-13 00:52 +0000
Organization Private site at Eddersheim, Germany
Message-ID <of5ld4$8l$1@Gaia.teknon.de> (permalink)
References <3c792901-a05d-4a02-b058-20b9e0576095@googlegroups.com>

Show all headers | View raw


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.

Now let's combine the suggestions (note: did not try to actually compile):

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class CompileMe {
     private static void query(final Connection conn, final String sql) throws SQLException {
          try (final PreparedStatement stmt = conn.prepareStatement(sql)) {
               try (final ResultSet rslt = stmt.executeQuery()) {
                    // do something with result.
                    // try-with-resources will take care of
                    // close()ing the ResultSet when done.
               }
          }
     }
 
     public static void testMe() {
          try (final Connection conn = DriverManager.getConnection("db_connect_string", "db_userid", "db_password")) {
               String someCondition = "check me";
               query(conn, "initial query");
               if (someCondition.equals("one")) {
                    query(conn, "query something");
               } else {
                    query(conn, "query something else");
               }
          } catch (SQLException e) {
               e.printStackTrace();
          }
     }
}


-- 

"I'm a doctor, not a mechanic." Dr Leonard McCoy <mccoy@ncc1701.starfleet.fed>
"I'm a mechanic, not a doctor." Volker Borchert  <v_borchert@despammed.com>

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