Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: org.hibernate.StaleStateException
PostPosted: Thu May 15, 2008 7:34 am 
Newbie

Joined: Wed May 07, 2008 10:23 am
Posts: 9
Location: Santharavur,Chirala,AP,India
Hi

in the following code i am getting StaleStateException.

HighScores highScores = new HighScores("Ranga");
HashSet setGames = new HashSet();
setGames.add(new GameScore("Cricket",201,1));
setGames.add(new GameScore("FootBall",301,2));
setGames.add(new GameScore("Running",401,3));
setGames.add(new GameScore("VolleyBall",501,4));
setGames.add(new GameScore("SoftBall",61,5));
highScores.setGames(setGames);
getHibernateTemplate().save(highScores);



Here i am providing the stack trace also...

org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
Caused by: org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:24)
at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1146)
at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:26)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:143)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:373)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at hello.HibernateDao.highScoresInsert(HibernateDao.java:30)
at hello.Prasanna.hibernate(Prasanna.java:26)
at hello.Test.testHibernate(Test.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:436)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:311)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)


Thanks in advance...
PurnachandraRao.Bobbepalli.



Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp

Hibernate version:

Mapping documents:

Code between sessionFactory.openSession() and session.close():

Full stack trace of any exception that occurs:

Name and version of the database you are using:

The generated SQL (show_sql=true):

Debug level Hibernate log excerpt:


Problems with Session and transaction handling?

Read this: http://hibernate.org/42.html

_________________
B.PurnachandraRao
Santharavur,Chirala,AP,India


Top
 Profile  
 
 Post subject:
PostPosted: Thu Aug 21, 2008 9:15 am 
Newbie

Joined: Wed Jul 23, 2008 6:19 am
Posts: 4
I believe you get this error when the objects in the Hibernate Session don't match the database.

This can happen due to multiple threads accessing the same objects, database rollbacks etc.

For example, I can cause this error as follows:
1) Let Hibernate transaction time out after 'saving' objects. This causes an exception. Database is rolled back but session still thinks the object has been updated.
2) Do an update on the same objects. Hibernate assumes that the object is in the database and throws the error when it doesn't find it.

To solve the problem, I changed to use merge instead of update. This commits your changes without assuming that the database and session are in line. Alternatively, you could try catching the exception, closing and clearing the session and retrying the transaction.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Aug 22, 2008 4:49 am 
Hibernate Team
Hibernate Team

Joined: Tue Aug 26, 2003 6:10 am
Posts: 8611
Location: Neuchatel, Switzerland (Danish)
Please use the user forum for these questions / this forum is for tooling questions.

_________________
Max
Don't forget to rate


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.