db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5852) dblook fails with client if derby.jar is not in classpath with java.sql.SQLException: Error marshalling or unmarshalling a user defined type
Date Tue, 18 Sep 2012 15:15:07 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5852?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-5852:
--------------------------------------

    Urgency: Normal
    
> dblook fails with client if derby.jar is not in classpath with java.sql.SQLException:
Error marshalling or unmarshalling a user defined type
> --------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5852
>                 URL: https://issues.apache.org/jira/browse/DERBY-5852
>             Project: Derby
>          Issue Type: Bug
>          Components: Tools
>    Affects Versions: 10.6.2.1, 10.7.1.1, 10.8.2.2, 10.9.1.0, 10.10.0.0
>            Reporter: Kathey Marsden
>              Labels: derby_triage10_10
>
> With Derby 10.6 and higher, dblook fails if derby.jar is not in the classpath because
of  DERBY-4688. It cannot execute the queries against the system catalogs that have UDT's.
  Users can work around this issue by adding derby.jar to the classpath before running dblook.
> This could be fixed in dblook by  casting UDT fields in its queries to long varchar,
per the release note attached to DERBY-4688.
> To reproduce.
> Start network server 
> java org.apache.derby.drda.NetworkServerControl start
> In another window set classpath to contain only derbyclient.jar and derbytools.jar but
not derby.jar
> e.g. 
> export CLASSPATH=".;C:/cygwin/svn2/trunk/jars/sane/derbyclient.jar;C:/cygwin/svn2/trunk/jars/sane/derbytools.jar"
> Create a database with ij
> java org.apache.derby.tools.ij
> ij version 10.10
> ij> connect 'jdbc:derby://localhost:1527/wombat;create=true';
> ij> create table mytab (i int);
> 0 rows inserted/updated/deleted
> ij> insert into mytab values(1);
> 1 row inserted/updated/deleted
> ij> exit;
> run dblook
> java org.apache.derby.tools.dblook -d 'jdbc:derby://localhost:1527/wombat'
> The output is:
> -- Timestamp: 2012-07-10 11:08:36.829
> -- Source database is: wombat
> -- Connection URL is: jdbc:derby://localhost:1527/wombat
> -- appendLogs: false
> -- ----------------------------------------------
> -- DDL Statements for tables
> -- ----------------------------------------------
> CREATE TABLE "APP"."MYTAB" (-- Note: At least one unexpected error/warning message was
> -- encountered during DDL generation.  See dblook.log
> -- to review the message(s).
> The dblook.log contains
> ~/repro/dblookclient $cat dblook.log
> java.sql.SQLException: Error marshalling or unmarshalling a user defined type: org.apache.derby.catalog.types.TypeDescri
> ptorImpl
>         at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:108)
>         at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:364)
>         at org.apache.derby.client.am.ResultSet.getString(ResultSet.java:1079)
>         at org.apache.derby.impl.tools.dblook.DB_Table.createColumn(DB_Table.java:151)
>         at org.apache.derby.impl.tools.dblook.DB_Table.doTables(DB_Table.java:104)
>         at org.apache.derby.tools.dblook.go(dblook.java:538)
>         at org.apache.derby.tools.dblook.<init>(dblook.java:142)
>         at org.apache.derby.tools.dblook.main(dblook.java:97)
> Caused by: org.apache.derby.client.am.SqlException: Error marshalling or unmarshalling
a user defined type: org.apache.d
> erby.catalog.types.TypeDescriptorImpl
>         at org.apache.derby.client.am.SqlException.<init>(SqlException.java:167)
>         at org.apache.derby.client.am.SqlException.<init>(SqlException.java:231)
>         at org.apache.derby.client.am.Cursor.get_UDT(Cursor.java:651)
>         at org.apache.derby.client.am.Cursor.getString(Cursor.java:1059)
>         at org.apache.derby.client.am.ResultSet.getString(ResultSet.java:1069)
>         ... 5 more
> Caused by: java.lang.ClassNotFoundException: org.apache.derby.catalog.types.TypeDescriptorImpl
>         at java.lang.Class.forName(Class.java:174)
>         at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:636)
>         at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1607)
>         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1528)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1764)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1361)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:383)
>         at org.apache.derby.client.am.Cursor.get_UDT(Cursor.java:647)
>         ... 7 more
> -- **--> DEBUG: Error marshalling or unmarshalling a user defined type: org.apache.derby.catalog.types.TypeDescriptorImp
> l

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message