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 "Kristian Waagan (JIRA)" <ji...@apache.org> on 2008/07/28 15:57:32 UTC

[jira] Assigned: (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 ]

Kristian Waagan reassigned DERBY-3799:
--------------------------------------

    Assignee: Kristian Waagan

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