Oracle driver throws exception due to incorrect mapping of XMLType column
-------------------------------------------------------------------------

                 Key: OPENJPA-1289
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1289
             Project: OpenJPA
          Issue Type: Bug
    Affects Versions: 2.0.0
         Environment: Oracle 10i and 11 server.  10.x and 11.2.0.1.0 thin JDBC 
driver
            Reporter: Jeremy Bauer
            Assignee: Jeremy Bauer


Many variations of 
org.apache.openjpa.persistence.xmlmapping.query.TestXMLCustomerOrder are 
failing on Oracle with this exception:

<openjpa-2.0.0-SNAPSHOT-rexported nonfatal general error> 
org.apache.openjpa.persistence.PersistenceException: Invalid column type: 
getCLOB not implemented for class oracle.jdbc.driver.T4CVarcharAccessor
<snip/>
Caused by: java.sql.SQLException: Invalid column type: getCLOB not implemented 
for class oracle.jdbc.driver.T4CVarcharAccessor
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.Accessor.unimpl(Accessor.java:358)
at oracle.jdbc.driver.Accessor.getCLOB(Accessor.java:1328)
at oracle.jdbc.driver.OracleResultSetImpl.getCLOB(OracleResultSetImpl.java:1305)
at oracle.jdbc.driver.OracleResultSetImpl.getClob(OracleResultSetImpl.java:1471)
at 
org.apache.commons.dbcp.DelegatingResultSet.getClob(DelegatingResultSet.java:515)
at 
org.apache.openjpa.lib.jdbc.DelegatingResultSet.getClob(DelegatingResultSet.java:612)
at org.apache.openjpa.jdbc.sql.DBDictionary.getClob(DBDictionary.java:690)
at 
org.apache.openjpa.jdbc.sql.OracleDictionary.getClobString(OracleDictionary.java:562)
at 
org.apache.openjpa.jdbc.sql.ResultSetResult.getStringInternal(ResultSetResult.java:471)
at 
org.apache.openjpa.jdbc.sql.ResultSetResult.getObjectInternal(ResultSetResult.java:399)
at org.apache.openjpa.jdbc.sql.AbstractResult.getObject(AbstractResult.java:696)
at 
org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadDataStore(HandlerStrategies.java:220)
at 
org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:186)
at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:913)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:1021)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:973)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:393)
at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:292)
<snip/>
The Oracle driver does not allow the clob operations to operate on fields of 
XMLType.  OpenJPA maps fields of type XMLType to CLOB and uses CLOB 
getter/setters, resulting in the exception above.  The mapping should be 
changed such that the CLOB operations are not used for XML data.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to