You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Luc1fer Hell <lu...@inbox.ru> on 2007/11/22 15:59:01 UTC

java.lang.IndexOutOfBoundsException when commit long transaction

Hello.

I'm trying to implement data replication mechanism base on OpenJPA and WebServices.
I almost solve the problem whit saving big graph of objects (my last letter), but now i have got a new issue.
I'm trying to persist about 200000 objects that references each other.

But on commit i have got an error:

Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:546)
        at java.util.ArrayList.get(ArrayList.java:321)
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1175)
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:653)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:673)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:636)
        at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
        at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317
)
        at org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
        at org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
        at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringCon
nectionDecorator.java:117)
        at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.rollback(ConfiguringConnecti
onDecorator.java:135)
        at org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
        at org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
        at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.rollback(JDBCStoreManager.java:188)
        at org.apache.openjpa.kernel.DelegatingStoreManager.rollback(DelegatingStoreManager.java:98)
        at org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1248)
        at org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2121)
        at org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:1790)
        ... 30 more

I use PostgreSQL as database and openJPA 1.0.1 as ORM.
Can anybody help me?

Re[4]: java.lang.IndexOutOfBoundsException when commit long transaction

Posted by Luc1fer Hell <lu...@inbox.ru>.
I think, it's clear - it is first message of log. But after it there are 30 mb of:

2007-11-22 16:27:59 STATEMENT:  INSERT INTO reg_r_participant_type
R_PARTICIPANT_TYPE_ID, DESCRIPTION, TITLE) VALUES ($1, $2, $3)
2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored
until end of transaction block

So, transaction does't rolle back, before finish. It cause strange errors. What size of default query batch
in OpenJPA? May be it is very big? Or i need to add flush(), to check if there are violation? Now i simple 
parse object tree to find new and detached objects, and update them. Then i commit transaction, and it's 
tries to persist 200000 objects. 

-----Original Message-----
From: plinskey@gmail.com
To: users@openjpa.apache.org, "Luc1fer Hell" <lu...@inbox.ru>
Date: Fri, 23 Nov 2007 03:20:57 -0800
Subject: Re: Re[2]: java.lang.IndexOutOfBoundsException when commit long transaction

> 
> Ah. Are you attempting to persist new instances with null blob values?
> 
> -Patrick
> 
> On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> > If i post the SQL), it would be about 30 mb).
> > I think i found cause of problem in Postgre log file.
> > It starts with:
> > 2007-11-22 16:27:58 ERROR:  null value in column "blob_data" violates
> > not-null constraint
> > 2007-11-22 16:27:58 STATEMENT:  INSERT INTO reg_document (DOCUMENT_ID,
> > BLOB_DATA, FILE_NAME, FILE_TYPE, size) VALUES ($1, $2, $3, $4, $5)
> > 2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored
> > until end of transaction block
> > 2007-11-22 16:27:59 STATEMENT:  INSERT INTO reg_r_participant_type
> > (R_PARTICIPANT_TYPE_ID, DESCRIPTION, TITLE) VALUES ($1, $2, $3)
> > 2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored
> > until end of transaction block
> >
> > And after constraint violation there are 30 mb of insert and abort messages
> > - current transaction is aborted, commands ignored until end of transaction
> > block.
> >
> >
> >
> > -----Original Message-----
> > From: plinskey@gmail.com
> > To: users@openjpa.apache.org, "Luc1fer Hell" <lu...@inbox.ru>
> > Date: Thu, 22 Nov 2007 17:02:59 -0800
> > Subject: Re: java.lang.IndexOutOfBoundsException when commit long
> > transaction
> >
> > >
> > > Hi,
> > >
> > > Can you post the SQL that caused this? You can turn this on by setting
> > > the openjpa.Log property to SQL=TRACE.
> > >
> > > -Patrick
> > >
> > > On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> > > > Hello.
> > > >
> > > > I'm trying to implement data replication mechanism base on OpenJPA and
> > > > WebServices.
> > > > I almost solve the problem whit saving big graph of objects (my last
> > > > letter), but now i have got a new issue.
> > > > I'm trying to persist about 200000 objects that references each other.
> > > >
> > > > But on commit i have got an error:
> > > >
> > > > Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> > > >         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
> > > >         at java.util.ArrayList.get(ArrayList.java:321)
> > > >         at
> > > >
> > org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1175)
> > > >         at
> > > >
> > org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
> > > >         at
> > > >
> > org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:653)
> > > >         at
> > > >
> > org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:673)
> > > >         at
> > > >
> > org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:636)
> > > >         at
> > > >
> > org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
> > > >         at
> > > >
> > org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317
> > > > )
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringCon
> > > > nectionDecorator.java:117)
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.rollback(ConfiguringConnecti
> > > > onDecorator.java:135)
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> > > >         at
> > > >
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> > > >         at
> > > >
> > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.rollback(JDBCStoreManager.java:188)
> > > >         at
> > > >
> > org.apache.openjpa.kernel.DelegatingStoreManager.rollback(DelegatingStoreManager.java:98)
> > > >         at
> > > >
> > org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1248)
> > > >         at
> > > >
> > org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2121)
> > > >         at
> > > >
> > org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:1790)
> > > >         ... 30 more
> > > >
> > > > I use PostgreSQL as database and openJPA 1.0.1 as ORM.
> > > > Can anybody help me?
> > > >
> > >
> > >
> > > --
> > > Patrick Linskey
> > > 202 669 5907
> > >
> >
> 
> 
> -- 
> Patrick Linskey
> 202 669 5907
> 

Re: Re[2]: java.lang.IndexOutOfBoundsException when commit long transaction

Posted by pl...@gmail.com.
Ah. Are you attempting to persist new instances with null blob values?

-Patrick

On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> If i post the SQL), it would be about 30 mb).
> I think i found cause of problem in Postgre log file.
> It starts with:
> 2007-11-22 16:27:58 ERROR:  null value in column "blob_data" violates
> not-null constraint
> 2007-11-22 16:27:58 STATEMENT:  INSERT INTO reg_document (DOCUMENT_ID,
> BLOB_DATA, FILE_NAME, FILE_TYPE, size) VALUES ($1, $2, $3, $4, $5)
> 2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored
> until end of transaction block
> 2007-11-22 16:27:59 STATEMENT:  INSERT INTO reg_r_participant_type
> (R_PARTICIPANT_TYPE_ID, DESCRIPTION, TITLE) VALUES ($1, $2, $3)
> 2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored
> until end of transaction block
>
> And after constraint violation there are 30 mb of insert and abort messages
> - current transaction is aborted, commands ignored until end of transaction
> block.
>
>
>
> -----Original Message-----
> From: plinskey@gmail.com
> To: users@openjpa.apache.org, "Luc1fer Hell" <lu...@inbox.ru>
> Date: Thu, 22 Nov 2007 17:02:59 -0800
> Subject: Re: java.lang.IndexOutOfBoundsException when commit long
> transaction
>
> >
> > Hi,
> >
> > Can you post the SQL that caused this? You can turn this on by setting
> > the openjpa.Log property to SQL=TRACE.
> >
> > -Patrick
> >
> > On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> > > Hello.
> > >
> > > I'm trying to implement data replication mechanism base on OpenJPA and
> > > WebServices.
> > > I almost solve the problem whit saving big graph of objects (my last
> > > letter), but now i have got a new issue.
> > > I'm trying to persist about 200000 objects that references each other.
> > >
> > > But on commit i have got an error:
> > >
> > > Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> > >         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
> > >         at java.util.ArrayList.get(ArrayList.java:321)
> > >         at
> > >
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1175)
> > >         at
> > >
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
> > >         at
> > >
> org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:653)
> > >         at
> > >
> org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:673)
> > >         at
> > >
> org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:636)
> > >         at
> > >
> org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
> > >         at
> > >
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317
> > > )
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringCon
> > > nectionDecorator.java:117)
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.rollback(ConfiguringConnecti
> > > onDecorator.java:135)
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> > >         at
> > >
> org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> > >         at
> > >
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.rollback(JDBCStoreManager.java:188)
> > >         at
> > >
> org.apache.openjpa.kernel.DelegatingStoreManager.rollback(DelegatingStoreManager.java:98)
> > >         at
> > >
> org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1248)
> > >         at
> > >
> org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2121)
> > >         at
> > >
> org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:1790)
> > >         ... 30 more
> > >
> > > I use PostgreSQL as database and openJPA 1.0.1 as ORM.
> > > Can anybody help me?
> > >
> >
> >
> > --
> > Patrick Linskey
> > 202 669 5907
> >
>


-- 
Patrick Linskey
202 669 5907

Re[2]: java.lang.IndexOutOfBoundsException when commit long transaction

Posted by Luc1fer Hell <lu...@inbox.ru>.
If i post the SQL), it would be about 30 mb).
I think i found cause of problem in Postgre log file.
It starts with:
2007-11-22 16:27:58 ERROR:  null value in column "blob_data" violates not-null constraint
2007-11-22 16:27:58 STATEMENT:  INSERT INTO reg_document (DOCUMENT_ID, BLOB_DATA, FILE_NAME, FILE_TYPE, size) VALUES ($1, $2, $3, $4, $5)
2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored until end of transaction block
2007-11-22 16:27:59 STATEMENT:  INSERT INTO reg_r_participant_type (R_PARTICIPANT_TYPE_ID, DESCRIPTION, TITLE) VALUES ($1, $2, $3)
2007-11-22 16:27:59 ERROR:  current transaction is aborted, commands ignored until end of transaction block

And after constraint violation there are 30 mb of insert and abort messages - current transaction is aborted, commands ignored until end of transaction block.



-----Original Message-----
From: plinskey@gmail.com
To: users@openjpa.apache.org, "Luc1fer Hell" <lu...@inbox.ru>
Date: Thu, 22 Nov 2007 17:02:59 -0800
Subject: Re: java.lang.IndexOutOfBoundsException when commit long transaction

> 
> Hi,
> 
> Can you post the SQL that caused this? You can turn this on by setting
> the openjpa.Log property to SQL=TRACE.
> 
> -Patrick
> 
> On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> > Hello.
> >
> > I'm trying to implement data replication mechanism base on OpenJPA and
> > WebServices.
> > I almost solve the problem whit saving big graph of objects (my last
> > letter), but now i have got a new issue.
> > I'm trying to persist about 200000 objects that references each other.
> >
> > But on commit i have got an error:
> >
> > Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> >         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
> >         at java.util.ArrayList.get(ArrayList.java:321)
> >         at
> > org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1175)
> >         at
> > org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
> >         at
> > org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:653)
> >         at
> > org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:673)
> >         at
> > org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:636)
> >         at
> > org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
> >         at
> > org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317
> > )
> >         at
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> >         at
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
> >         at
> > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringCon
> > nectionDecorator.java:117)
> >         at
> > org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.rollback(ConfiguringConnecti
> > onDecorator.java:135)
> >         at
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> >         at
> > org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
> >         at
> > org.apache.openjpa.jdbc.kernel.JDBCStoreManager.rollback(JDBCStoreManager.java:188)
> >         at
> > org.apache.openjpa.kernel.DelegatingStoreManager.rollback(DelegatingStoreManager.java:98)
> >         at
> > org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1248)
> >         at
> > org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2121)
> >         at
> > org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:1790)
> >         ... 30 more
> >
> > I use PostgreSQL as database and openJPA 1.0.1 as ORM.
> > Can anybody help me?
> >
> 
> 
> -- 
> Patrick Linskey
> 202 669 5907
> 

Re: java.lang.IndexOutOfBoundsException when commit long transaction

Posted by pl...@gmail.com.
Hi,

Can you post the SQL that caused this? You can turn this on by setting
the openjpa.Log property to SQL=TRACE.

-Patrick

On 11/22/07, Luc1fer Hell <lu...@inbox.ru> wrote:
> Hello.
>
> I'm trying to implement data replication mechanism base on OpenJPA and
> WebServices.
> I almost solve the problem whit saving big graph of objects (my last
> letter), but now i have got a new issue.
> I'm trying to persist about 200000 objects that references each other.
>
> But on commit i have got an error:
>
> Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
>         at java.util.ArrayList.RangeCheck(ArrayList.java:546)
>         at java.util.ArrayList.get(ArrayList.java:321)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1175)
>         at
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:653)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Connection.commit(AbstractJdbc2Connection.java:673)
>         at
> org.postgresql.jdbc2.AbstractJdbc2Connection.setAutoCommit(AbstractJdbc2Connection.java:636)
>         at
> org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
>         at
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317
> )
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.setAutoCommit(DelegatingConnection.java:196)
>         at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.setAutoCommit(ConfiguringCon
> nectionDecorator.java:117)
>         at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.rollback(ConfiguringConnecti
> onDecorator.java:135)
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.rollback(DelegatingConnection.java:208)
>         at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.rollback(JDBCStoreManager.java:188)
>         at
> org.apache.openjpa.kernel.DelegatingStoreManager.rollback(DelegatingStoreManager.java:98)
>         at
> org.apache.openjpa.kernel.BrokerImpl.endStoreManagerTransaction(BrokerImpl.java:1248)
>         at
> org.apache.openjpa.kernel.BrokerImpl.endTransaction(BrokerImpl.java:2121)
>         at
> org.apache.openjpa.kernel.BrokerImpl.afterCompletion(BrokerImpl.java:1790)
>         ... 30 more
>
> I use PostgreSQL as database and openJPA 1.0.1 as ORM.
> Can anybody help me?
>


-- 
Patrick Linskey
202 669 5907