Unix Technical Forum

first() causes NullPointerException

This is a discussion on first() causes NullPointerException within the pgsql Interfaces jdbc forums, part of the PostgreSQL category; --> I have a servlet that extracts data from a postgresql database and makes a nice menu of it. The ...


Go Back   Unix Technical Forum > Database Server Software > PostgreSQL > pgsql Interfaces jdbc

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-15-2008, 10:55 PM
Nico
 
Posts: n/a
Default first() causes NullPointerException

I have a servlet that extracts data from a postgresql database and makes a
nice menu of it. The connection works fine, I can execute my sql-statement
without any problems, but when I try the first() method of ResultSet it
fails: it throws a NullPointerException at line 216.
This are the first lines of the exception:
java.lang.NullPointerException
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.first( AbstractJdbc2ResultSet.java:216)
at menus.DBMenu.Menupage(DBMenu.java:68)
at menus.DBMenuFind.doGet(DBMenuFind.java:103)
Here is the java source code I used for the connection and resultset:
protected static ResultSet getQuery(String strstatement) throws
SQLException
{
ResultSet resultset=statement.executeQuery(strstatement);
if(resultset==null)
throw new SQLException("Resultset is null at getQuery().");
if(resultset.getWarnings()==null)
return resultset;
else
{
String errmessage="";
while(resultset.getWarnings().getErrorCode()!=0)
{
errmessage+=resultset.getWarnings().getMessage()+" \n";
resultset.getWarnings().getNextException();
}
throw new SQLException("SQL Fout getQuery(): "+errmessage);
}
}

protected final static void Menupage(String app)
throws MenuException, DriverNotFoundException
{
//resultsetL1 and resultsetL2 are queries that extract data from
views in the db and resultsetL1C and
//resultsetL2C are the queries that count the rows in those queries.
ResultSet resultsetL1,resultsetL2,resultsetL1C,resultsetL2C;
try
{
connect(strDbdriver);
resultsetL1=getQuery("SELECT * FROM \"qryMenuL1\" ORDER BY "+
"\"MenuL1Order\"");
resultsetL1C=getQuery("SELECT COUNT(\"MenuL1ID\") FROM
\"qryMenuL1\"");
if(resultsetL1==null)
throw new MenuException("ResultsetL1 is null for unknown
reasons.");
if(resultsetL1C==null)
throw new MenuException("ResultsetL1C is null for unknown
reasons.");
resultsetL1C.first();
if(resultsetL1C.getInt(1)==0)
throw new MenuException("Menu error: no data found.");
resultsetL1.first();
//following lines are irrelevant since the exception occurs at first().
}
protected static void connect(String dbdriver)
throws DriverNotFoundException
{
String connprob="";
try
{
connprob="driver problem:"+dbdriver;
Class.forName(dbdriver);
connprob="connection problem:
jdbcostgresql://localhost/"+dbname+
"?user=username&password=password";
connection =
DriverManager.getConnection("jdbcostgresql://localhost/" +
dbname + "?user=username&password=password");
connprob="statement problem";
statement = connection.createStatement();
}
catch(ClassNotFoundException exception)
{
throw new DriverNotFoundException(dbdriver);
}
catch(Exception exception)
{
exception.printStackTrace();
throw new DriverNotFoundException("Connection problem:
"+exception.getMessage()+"<br>"+connprob);
}
}
As you could see, I changed the username & password for security reasons,
any SQL syntax error is captured before the first() method is called. And if
the executeQuery() method returns null which is normally impossible
according to the java docs, it is captured, too. I have tried everything.
Does anybody got any ideas?

Nico.







Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-15-2008, 10:55 PM
Kris Jurka
 
Posts: n/a
Default Re: first() causes NullPointerException



On Thu, 23 Dec 2004, Nico wrote:

> I have a servlet that extracts data from a postgresql database and makes a
> nice menu of it. The connection works fine, I can execute my sql-statement
> without any problems, but when I try the first() method of ResultSet it
> fails: it throws a NullPointerException at line 216.
>
> resultsetL1=getQuery("SELECT * FROM \"qryMenuL1\" ORDER BY "+
> "\"MenuL1Order\"");
> resultsetL1C=getQuery("SELECT COUNT(\"MenuL1ID\") FROM
> \"qryMenuL1\"");


According to the JDBC spec you are only allowed to have one ResultSet open
per Statement. When you create the second ResultSet the first is
automatically closed. This causes the NPE or in the CVS version of the
driver an error message indicating that the result is already closed.

Kris Jurka

---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-15-2008, 10:55 PM
Nico
 
Posts: n/a
Default Re: first() causes NullPointerException

Thanks. I will try it right away.
Nico.
"Kris Jurka" <books@ejurka.com> schreef in bericht
news:Pine.BSO.4.56.0412230526470.22886@leary.csoft .net...
>
>
> On Thu, 23 Dec 2004, Nico wrote:
>
>> I have a servlet that extracts data from a postgresql database and makes
>> a
>> nice menu of it. The connection works fine, I can execute my
>> sql-statement
>> without any problems, but when I try the first() method of ResultSet it
>> fails: it throws a NullPointerException at line 216.
>>
>> resultsetL1=getQuery("SELECT * FROM \"qryMenuL1\" ORDER BY "+
>> "\"MenuL1Order\"");
>> resultsetL1C=getQuery("SELECT COUNT(\"MenuL1ID\") FROM
>> \"qryMenuL1\"");

>
> According to the JDBC spec you are only allowed to have one ResultSet open
> per Statement. When you create the second ResultSet the first is
> automatically closed. This causes the NPE or in the CVS version of the
> driver an error message indicating that the result is already closed.
>
> Kris Jurka
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>



Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 03:16 PM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com