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.
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 |