Servlet problems

From: "Nikola Milutinovic" <Nikola(dot)Milutinovic(at)ev(dot)co(dot)yu>
To: "PostgreSQL JDBC" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Servlet problems
Date: 2001-12-17 14:32:08
Message-ID: 001901c18707$9b9d9080$0a3ea8c0@ev.co.yu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi all.

I'm a bit confused here. I'm using Tomcat JSP/Servlet engine. I have a database in PostgreSQL, which holds a table describing an n-tree structure (hierarchy). I would like my JSP page to able to display (if parameter "print" is present) a complete sub-tree of a given node. This is a simple recursion. What I'm trying to do is make our coroporate E-Mail address book, so I have organizational units and users.

Without recursion everything works fine, all the direct subnodes are displayed. When I use recusrion to include all subnodes, I get strange errors.

First, it was killing the response in the middile of a table, in the middle of a row. Now it dies with "NullPointerException: next()". In other words, in one of the "ResultSet.next()" methods, it runs into a non existant ResultSet.

I have tried putting a "breakpoint" (throwing a ServletException) on all lines of my JSP page. When there is a "breakpoint" I do not run into a NullPointerException. When I remove it, I have exception.

My conclusion was that I get the error AFTER my JSP page starts emerging from the recursion (if it was inside recursion, it would have been stopped by the "breakpoint"). So, after a page calls itself once, the "insider" does it's thing and then exits and releases control to it's caller, the the exception occurs.

I must admit that JSP page closes it's JDBC objects, I thought it would be OK, since the page creates them.

This is the flow of events:

OUDisplay.jsp [instance 1]:
----------------------------
DriverManager.getConnection()
Connection.createStatement()
Statement.executeQuery()
while( ResultSet.next() ) {
...
<jsp.include page="OUDisplay.jsp" />

OUDisplay.jsp [instance 2]:
----------------------------
DriverManager.getConnection()
Connection.createStatement()
Statement.executeQuery()
while( ResultSet.next() ) {
...
}
ResultSet.close()
Statement.close()
Connection.close()
--------------[instance 2]-

}
ResultSet.close()
Statement.close()
Connection.close()
--------------[instance 1]-

The problem occurs inside the outer "next() {...}", which leads me to believe that Some objects in the "instance 1" get screwed up, but I don't know how.

Any insight?

Nix.

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Antonio Fiol Bonnín 2001-12-17 14:54:30 Re: Servlet problems
Previous Message Jens Kießling 2001-12-17 10:03:04