The exception is thrown from db2 jcc driver. You might want to collect jdbc 
trace and consult IBM.

-f


--- On Thu, 6/12/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

> From: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> Subject: Getting PersistenceException due to MalformedInputException OR 
> corrupt ResultList
> To: [email protected]
> Date: Thursday, June 12, 2008, 7:44 AM
> We are getting a problem that is only occurring with one
> very large 
> database (over 40,000 rows):  when we make a certain query 
> (org.apache.openjpa.persistence.QueryImpl.getResultList()),
> instead of 
> getting a List of persistent objects, openJPA is throwing a
> 
> PersistenceException which it claims is caused by a 
> MalformedInputException.  OpenJPA seems to think that one
> of the columns 
> on one of the rows has non-UTF-8 data in it. 
> 
> Unfortunately, openJPA does not include any logging code in
> 
> ResultSetResult or in any of the places that might
> illuminate which column 
> or which row is causing this error.  I've had to resort
> to brute force by 
> manipulating the data in the table so different parts of it
> are returned 
> by the query, in order to see if I can narrow it down. 
> (Although in fact 
> I?m not convinced that there really IS invalid data in the
> table -- if you 
> run the SQL query manually you get the results with no
> error). 
> 
> Now that I'm down to only about 2,500 rows, what I?m
> seeing is even 
> weirder:  sometimes when the query runs, it does throw the
> exception 
> below.  Other times (unpredictably), *on the very same data
> set*, when the 
> query runs, it DOES return a list, but the list of objects
> is corrupt: 
> specifically, the first 26 rows seem to be repeated over
> and over again: 
> that is, after you pull the 26th java object out of the
> Collection, you 
> get a java object that is identical to the first one, and
> so on down the 
> line.  I know that the table doesn't contain any
> duplicate rows, so I know 
> that this is a problem in the openJPA logic that converts
> the SQL results 
> into persistent objects. 
> 
> Justin Grunau
> 
> Exception stack trace below:
> 
> <openjpa-1.0.0-r420667:568756 nonfatal general error>
> 
> org.apache.openjpa.persistence.PersistenceException: Input
> length = 24346 
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3849)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:458)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:83)
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:260)
> 
> 
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
> 
> 
>         at 
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> 
> 
>         at 
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
> 
>         at
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
> 
>         at
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.GenericResultObjectProvider.getResultObject(GenericResultObjectProvider.java:93)
> 
> 
>         at 
> org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
> 
> 
>         at 
> org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1223)
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
> 
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
> 
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
> 
> 
>         at 
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:533)
> 
> 
>         at 
> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:235)
> 
>         at 
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:277)
> 
> 
>         at 
> cattail.dao.openjpa.OpenJPACattailDao.fetchAll(OpenJPACattailDao.java:324)
> 
> 
>         at 
> cattail.dao.openjpa.OpenJPACattailDao.getAllUnindexedFilesAsOf(OpenJPACattailDao.java:1861)
> 
> 
>         at
> cattail.lucene.ItemIndexingJob.execute(ItemIndexingJob.java:47)
> 
> 
>         at
> org.quartz.core.JobRunShell.run(JobRunShell.java:202) 
>         at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
> 
> 
> Caused by: 
> com.ibm.db2.jcc.c.SqlException: Input length = 24346 
>         at com.ibm.db2.jcc.c.eb.a(eb.java:1613) 
>         at com.ibm.db2.jcc.c.eb.n(eb.java:451) 
>         at com.ibm.db2.jcc.c.eb.H(eb.java:1156) 
>         at com.ibm.db2.jcc.c.bh.getString(bh.java:870) 
>         at 
> org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:174)
> 
> 
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingResultSet.getString(DelegatingResultSet.java:118)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.getString(DBDictionary.java:712)
> 
>         at 
> org.apache.openjpa.jdbc.sql.ResultSetResult.getStringInternal(ResultSetResult.java:452)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.AbstractResult.getString(AbstractResult.java:724)
> 
> 
>         at 
> org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy.load(StringFieldStrategy.java:155)
> 
> 
>         at 
> org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:789)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
> 
> 
>         ... 20 more 
> Caused by: 
> java.nio.charset.MalformedInputException: Input length =
> 24346 
>         at com.ibm.db2.jcc.c.t.a(t.java:19) 
>         at com.ibm.db2.jcc.c.eb.a(eb.java:1609) 
>         ... 34 more 
> Caused by: 
> sun.io.MalformedInputException 
>         at
> sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:278) 
>         at com.ibm.db2.jcc.c.t.a(t.java:16) 
>         ... 35 more 
> ErrorLogger.schedulerError: Job (Cattail.Lucene Item Change
> Queue Startup 
> threw an exception. 
> org.quartz.SchedulerException: Job threw an unhandled
> exception. [See 
> nested exception: <openjpa-1.0.0-r420667:568756 nonfatal
> general error> 
> org.apache.openjpa.persistence.PersistenceException: Input
> length = 24346] 
> 
>         at
> org.quartz.core.JobRunShell.run(JobRunShell.java:213) 
>         at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
> 
> 
> Caused by: 
> <openjpa-1.0.0-r420667:568756 nonfatal general error>
> 
> org.apache.openjpa.persistence.PersistenceException: Input
> length = 24346 
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3849)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.DB2Dictionary.newStoreException(DB2Dictionary.java:458)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:83)
> 
>         at 
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:260)
> 
> 
>         at 
> org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
> 
> 
>         at 
> org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> 
> 
>         at 
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:843)
> 
>         at
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:801)
> 
>         at
> org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:723)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:776)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.GenericResultObjectProvider.getResultObject(GenericResultObjectProvider.java:93)
> 
> 
>         at 
> org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
> 
> 
>         at 
> org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1223)
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
> 
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:799)
> 
> 
>         at
> org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:769)
> 
> 
>         at 
> org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:533)
> 
> 
>         at 
> org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:235)
> 
>         at 
> org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:277)
> 
> 
>         at 
> cattail.dao.openjpa.OpenJPACattailDao.fetchAll(OpenJPACattailDao.java:324)
> 
> 
>         at 
> cattail.dao.openjpa.OpenJPACattailDao.getAllUnindexedFilesAsOf(OpenJPACattailDao.java:1861)
> 
> 
>         at
> cattail.lucene.ItemIndexingJob.execute(ItemIndexingJob.java:47)
> 
> 
>         at
> org.quartz.core.JobRunShell.run(JobRunShell.java:202) 
>         ... 1 more 
> Caused by: 
> com.ibm.db2.jcc.c.SqlException: Input length = 24346 
>         at com.ibm.db2.jcc.c.eb.a(eb.java:1613) 
>         at com.ibm.db2.jcc.c.eb.n(eb.java:451) 
>         at com.ibm.db2.jcc.c.eb.H(eb.java:1156) 
>         at com.ibm.db2.jcc.c.bh.getString(bh.java:870) 
>         at 
> org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:174)
> 
> 
>         at 
> org.apache.openjpa.lib.jdbc.DelegatingResultSet.getString(DelegatingResultSet.java:118)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.DBDictionary.getString(DBDictionary.java:712)
> 
>         at 
> org.apache.openjpa.jdbc.sql.ResultSetResult.getStringInternal(ResultSetResult.java:452)
> 
> 
>         at 
> org.apache.openjpa.jdbc.sql.AbstractResult.getString(AbstractResult.java:724)
> 
> 
>         at 
> org.apache.openjpa.jdbc.meta.strats.StringFieldStrategy.load(StringFieldStrategy.java:155)
> 
> 
>         at 
> org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:789)
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:336)
> 
> 
>         at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:255)
> 
> 
>         ... 20 more 
> Caused by: 
> java.nio.charset.MalformedInputException: Input length =
> 24346 
>         at com.ibm.db2.jcc.c.t.a(t.java:19) 
>         at com.ibm.db2.jcc.c.eb.a(eb.java:1609) 
>         ... 34 more 
> Caused by: 
> sun.io.MalformedInputException 
>         at
> sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:278) 
>         at com.ibm.db2.jcc.c.t.a(t.java:16) 
>         ... 35 more


      

Reply via email to