Hi Norbert,

first, I never used Oracle, so I don't have the foggiest notion.

As far as I can remember we have a similar problem with LONGVARBINARY and fix it by reading data using a stream, see inner class
org.apache.ojb.broker.util.JdbcTypesHelper.T_LongVarBinary


Maybe we need a similar patch in
org.apache.ojb.broker.util.JdbcTypesHelper.T_LongVarChar
too.

Maybe I'm completely wrong ;-)

regards,
Armin


Erhart Norbert, R235 wrote:

Hello folks,

we got some problems using ojb 1.0.1 with Oracle datatype LONG and Sun JDK 1.4.2_05. The problem didn't occur with ojb 1.0.0. Ojb 1.0.1 with JDK 1.3.x is working fine too.

We get the following exception:

org.apache.ojb.broker.PersistenceBrokerException: Error reading class type: 
de.akdb.ok.komm.entity.TraceResponse from result set, current read field was inhalt
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readValuesFrom(Unknown Source)
        at 
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectArrayFrom(Unknown 
Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown 
Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at 
org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship(Unknown Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Unknown Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
        at 
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
        at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
        at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQuery(Unknown 
Source)
[...]
Caused by: java.sql.SQLException: Stream wurde schon geschlossen
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
        at oracle.jdbc.ttc7.LongTTCItem.getChars(LongTTCItem.java:189)
        at 
oracle.jdbc.dbaccess.DBDataSetImpl.getCharsStreamItem(DBDataSetImpl.java:1630)
        at 
oracle.jdbc.driver.OracleStatement.getCharsInternal(OracleStatement.java:3347)
        at oracle.jdbc.driver.OracleStatement.getStringValue(OracleStatement.java:3556)
        at 
oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:434)
        at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1482)
        at 
org.apache.ojb.broker.util.JdbcTypesHelper$T_LongVarChar.readValueFromResultSet(Unknown
 Source)
        at 
org.apache.ojb.broker.util.JdbcTypesHelper$BaseType.getObjectFromColumn(Unknown Source)
        at 
org.apache.ojb.broker.util.JdbcTypesHelper$BaseType.getObjectFromColumn(Unknown Source)
        ... 53 more

The class-descriptor looks like this:

<class-descriptor
        class="de.akdb.ok.komm.entity.TraceResponse"
        schema="kom"
        table="KOMTRACERESP"

    <field-descriptor
         name="id"
         column="ID"
         jdbc-type="BIGINT"
         primarykey="true"
         autoincrement="true"
    />
    <field-descriptor
         name="mandant"
         column="MANDANT"
         jdbc-type="VARCHAR"
         length="30"
    />
    <field-descriptor
         name="inhalt"
         column="INHALT"
         jdbc-type="LONGVARCHAR"
    />
</class-descriptor>

Any Ideas, what we are doing wrong or is there a problem with ojb itself?

Looking forward to your answers.

Regards
Norbert

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to