You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Ralf Lovec (JIRA)" <ji...@apache.org> on 2008/08/03 22:43:44 UTC
[jira] Closed: (DERBY-3799) NullPointerException when accessing a
clob through a pooled connection
[ https://issues.apache.org/jira/browse/DERBY-3799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ralf Lovec closed DERBY-3799.
-----------------------------
Problem has been resolved.
> NullPointerException when accessing a clob through a pooled connection
> ----------------------------------------------------------------------
>
> Key: DERBY-3799
> URL: https://issues.apache.org/jira/browse/DERBY-3799
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.4.1.3, 10.5.0.0
> Environment: ------------------ Java-Informationen ------------------
> Java-Version: 1.6.0
> Java-Anbieter: Sun Microsystems Inc.
> Java-Home: C:\Program Files\Java\jdk1.6.0\jre
> Java-Klassenpfad: C:\PHS\db-derby\db-derby-10.4.1.3-bin\lib\derbyclient.jar;C:\PHS\db-derby\db-derby-10.4.1.3-bin\lib\derbytools.jar;C:\PHS\Dvlp\Schop\derby-err\build\classes
> Name des Betriebssystems: Windows XP
> Architektur des Betriebssystems: x86
> Betriebssystemversion: 5.1
> Java-Benutzername: Ralf Lovec
> Java-Benutzerausgangsverzeichnis: C:\Documents and Settings\Ralf Lovec
> Java-Benutzerverzeichnis: C:\PHS\Dvlp\Schop\derby-err
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby-Informationen --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [C:\PHS\db-derby\db-derby-10.4.1.3-bin\lib\derbytools.jar] 10.4.1.3 - (648739)
> [C:\PHS\db-derby\db-derby-10.4.1.3-bin\lib\derbyclient.jar] 10.4.1.3 - (648739)
> ------------------------------------------------------
> ----------------- Informationen zur L�ndereinstellung -----------------
> Aktuelle L�ndereinstellung: [Deutsch/Deutschland [de_DE]]
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [cs]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [de_DE]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [es]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [fr]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [hu]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [it]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [ja_JP]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [ko_KR]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [pl]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [pt_BR]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [ru]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [zh_CN]
> Version: 10.4.1.3 - (648739)
> Es wurde Unterst�tzung f�r die folgende L�ndereinstellung gefunden: [zh_TW]
> Version: 10.4.1.3 - (648739)
> ------------------------------------------------------
> Reporter: Ralf Lovec
> Assignee: Kristian Waagan
> Fix For: 10.4.1.4, 10.5.0.0
>
> Attachments: derby-3799-1a-checkIfClosed.diff
>
>
> After returning a pooled connection to the pool and getting it again a NullPointerException is thrown when a clob field is accessed again. This may be related to the following post: http://mail-archives.apache.org/mod_mbox/db-derby-user/200803.mbox/%3C47CD3431.5020205@sun.com%3E
> Here is the stack trace:
> java.lang.NullPointerException
> at org.apache.derby.client.am.PreparedStatement.setIntX(Unknown Source)
> at org.apache.derby.client.am.CallableLocatorProcedures.clobGetLength(Unknown Source)
> at org.apache.derby.client.am.Clob.getLocatorLength(Unknown Source)
> at org.apache.derby.client.am.Lob.sqlLength(Unknown Source)
> at org.apache.derby.client.am.Clob.length(Unknown Source)
> at org.apache.derby.client.am.Cursor.getString(Unknown Source)
> at org.apache.derby.client.am.ResultSet.getString(Unknown Source)
> at derbyerr.Main.main(Main.java:65)
> Here is the code to reproduce the problem:
> package derbyerr;
> import java.sql.Connection;
> import java.sql.PreparedStatement;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import javax.sql.PooledConnection;
> import org.apache.derby.jdbc.ClientConnectionPoolDataSource;
> public class Main {
>
> public static void main (String[] args) {
> org.apache.derby.tools.sysinfo.main (args) ;
>
> ClientConnectionPoolDataSource creator = new ClientConnectionPoolDataSource () ;
> // There should be an empty db named testdb
> creator.setDatabaseName ("testdb") ;
>
> try {
> PooledConnection pc = creator.getPooledConnection () ;
>
> Connection c = pc.getConnection () ;
> PreparedStatement ps ;
> ResultSet rs ;
> String s ;
> // Drop the table "test", if it exsists
> try {
> ps = c.prepareStatement ("drop table test") ;
> ps.execute () ;
> ps.close () ;
> } catch (Exception e) {
> }
>
> // Create a test table with a clob field
> ps = c.prepareStatement ("create table test (pkey varchar(255) not null primary key, value clob)") ;
> ps.execute () ;
> ps.close () ;
>
> // Insert a record
> ps = c.prepareStatement ("insert into test values ('123', 'abc')") ;
> ps.execute () ;
> ps.close () ;
> // Query the record and...
> ps = c.prepareStatement ("select * from test") ;
> rs = ps.executeQuery () ;
> rs.next () ;
> // ...access the clob field - this works
> s = rs.getString (2) ;
> assert s.equals ("abc") ;
> rs.close () ;
> ps.close () ;
>
> // Simulate connection pooling: close the connection and get it again
> c.close () ;
> c = pc.getConnection () ;
> // Now again query the record...
> ps = c.prepareStatement ("select * from test") ;
> rs = ps.executeQuery () ;
> rs.next () ;
> // ...and access the clob - this fails
> s = rs.getString (2) ;
> assert s.equals ("abc") ;
> rs.close () ;
> ps.close () ;
>
> } catch (Exception e) {
> e.printStackTrace () ;
> }
> }
>
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.