Re: NullPointer error returned from ResultSet.java

Поиск
Список
Период
Сортировка
От G.Nagarajan
Тема Re: NullPointer error returned from ResultSet.java
Дата
Msg-id NFBBIOPECKPCJJHHBOGJKEMIDIAA.gnagarajan@dkf.de
обсуждение исходный текст
Ответ на NullPointer error returned from ResultSet.java  (Jeff Duffy <jeff@alanne.com>)
Список pgsql-jdbc
Hi,
I am also getting the same error. In my case I am using a prepared statement
to create the resultset like

  PreparedStatemet stmt = "...";

  callerFunction()
  {
    createPreparedStatement();
    fun1();
    closePreparedStatement();
  }
  fun1()
  {
     Results rs = stmt.executeQuery();

    while (rs.next() )
    {
        fun1(); //recursive call
      }
      rs.close();
  }

The null pointer exception is throws after three recursive calls. The code
at
113 is rows.size(). Perhaps it has something to do with caching? The error
doesn't come if I use normal statements.

Regards,
Nagarajan.


> -----Original Message-----
> From: pgsql-jdbc-owner@postgresql.org
> [mailto:pgsql-jdbc-owner@postgresql.org]On Behalf Of Jeff Duffy
> Sent: Monday, October 07, 2002 5:57 PM
> To: pgsql-jdbc@postgresql.org
> Subject: [JDBC] NullPointer error returned from ResultSet.java
>
>
> Greetings,
>
>  I have a JSP page with a rather large scriptlet that uses multiple nested
> statements and ResultSets. Under very specific conditions I am
> encountering
> the following error:
>
> java.lang.NullPointerException
>  at org.postgresql.jdbc2.ResultSet.next(ResultSet.java:113)
>
>
> Here's one pertinent snippet of my code:
> ( This code begins inside a while(rs.next()) loop for ResultSet rs,
> using Statement stmt)
>
>
> sql.append("AN SQL QUERY");
> rs2 = stmt2.executeQuery(sql.toString());
>
> while(rs2.next()){
>      String courseId = rs2.getString(1);
>      String roleName = rs2.getString(2);
>
>      rs3 = stmt3.executeQuery("SELECT nextval('assignment_id')");
>      rs3.next();
>      assignmentId = rs3.getString(1);
>
>     sql.delete(0, sql.length());
>     sql.append("AN SQL QUERY");
>     stmt3.executeUpdate(sql.toString());
> }
>
>  Through debugging it appears that rs2 is throwing the error; the message
> states the error is in method next(), but if I have only zero records or
> only one record in rs2, there is no error. It's only when I have multiple
> records that the error is thrown the second time round the while
> loop, so I
> suspect it may be thrown at the assignment of courseId.
>
>  This error is reproduced given the same conditions (nested
> ResultSets with
> the innermost ResultSet executing an Update inside a
> while(ResultSet.next())
> loop.  It almost seems that the call to rs3.executeUpdate() is
> closing rs2,
> but I cannot see why that would happen. This is occurring in at least six
> different source files.
>
>  If I create a new Vector and stuff the contents of rs2 into it, then
> iterate over the vector and use rs3 as shown above, no error is thrown.
>
>  Updating to the 7.3beta1 JDBC driver changes the error message to:
>
> javax.servlet.ServletException: postgresql.con.closed
>
>  which is even more puzzling.
>
>
>  Notes about my coding style that may be relevant:
> - I use one StringBuffer for all sql queries and clear it for
> each new query
> for efficiency. This hasn't ever caused problems elsewhere.
>
> - I predeclare all Statement and ResultSet objects at the
> outermost block of
> code (the 'top') like so:
>
> Statement stmt   = conn.createStatement();
> Statement stmt2  = conn.createStatement();
> Statement stmt3  = conn.createStatement();
> ResultSet rs, rs2, rs3;
>
> Other data:
>
> - The connections are obtained from a custom class that uses the jdbcpool
> pool manager.
> - I'm using the Sun JDK v1.4.0 for Linux (it happens on Win32 as well).
> - The JDBC library is v7.2 (the pgjdbc2.jar binary download).
> - PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
>
>  Any flashes of insight?
>
> Thanks
>
> Jeff Duffy
> jeff@alanne.com
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org


В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: NullPointer error returned from ResultSet.java
Следующее
От: "G.Nagarajan"
Дата:
Сообщение: Re: jdbc cursor positioning