Hi All,
I have some problem again regarding with updating of user object in the
database. I could add new records now, but my problem is like this. When
I try to edit a user information it could update the user in database,
and it will go to the same page where i edited the user information. but
after i press the save button to update the user I get an error message
saying
Object of class [com.voxsant.thinkscan.model.User] with identifier
[3]: optimistic locking failed; nested exception is
org.hibernate.StaleObjectStateException: Row was updated or deleted by
another transaction (or unsaved-value mapping was incorrect):
[com.voxsant.thinkscan.model.User#3]
Michael Horwitz wrote:
The key error here is "Duplicate entry 'admin' for key 2". It looks as
if you are trying to save a user who already exists. Normally this
happens because you do not have a field in your form for the user id
(this should be a hidden field). As a result, when your request goes
back to Hibernate it thinks you are persisting a new user rather than
updating an existing one.
Mike.
On 7/12/07, *Mel Pison* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
I am using appfuse 1.9x and webwork as the web framework Regarding
my problem, I'm using the same object (User) from the example on
appfuse. I cant update the information of the User object on the
database on my application and throws some errors. Heres some part
of those errors in tomcat after trigerring the save button to
update the user profile on database.
[Thinkscan] DEBUG [http-8080-Processor24]
UserDaoHibernate.saveUser(49) | user's id: 2
[Thinkscan] WARN [http-8080-Processor24]
JDBCExceptionReporter.logExceptions(71) | SQL Error: 1062,
SQLState: 23000
[Thinkscan] ERROR [http-8080-Processor24]
JDBCExceptionReporter.logExceptions(72) | Duplicate entry 'admin'
for key 2
[Thinkscan] WARN [http-8080-Processor24] UserAction.save(154) |
User 'admin' already exists!
[Thinkscan] WARN [http-8080-Processor24]
DefaultActionInvocation.executeResult(313) |
No result defined for action
com.voxsant.thinkscan.webapp.action.UserAction and result input
I tried to test it for each tier and heres what ive got
* * Dao test**
[Thinkscan] INFO [main] UserDaoTest.loadContextLocations(136) |
Loading context for:
classpath*:/**/dao/applicationContext-*.xml,classpath*:META-INF/applicationContext-*.xml
[Thinkscan] INFO [main] UserDaoTest.startNewTransaction(309) |
Began transaction (1): transaction manager
[EMAIL PROTECTED];
default rollback = true
[Thinkscan] WARN [main] UserDaoHibernate.getUser(30) | uh oh,
user '1000' not found...
[Thinkscan] INFO [main] UserDaoTest.endTransaction(275) |
Rolled back transaction after test execution
[Thinkscan] INFO [main] UserDaoTest.startNewTransaction(309) |
Began transaction (1): transaction manager
[EMAIL PROTECTED];
default rollback = true
[Thinkscan] INFO [main] UserDaoTest.endTransaction(275) |
Rolled back transaction after test execution
[Thinkscan] INFO [main] UserDaoTest.startNewTransaction(309) |
Began transaction (1): transaction manager
[EMAIL PROTECTED]
]; default rollback = true
[Thinkscan] DEBUG [main] UserDaoHibernate.saveUser(49) | user's
id: 1
[Thinkscan] INFO [main] UserDaoTest.endTransaction(275) |
Rolled back transaction after test execution
[Thinkscan] DEBUG [main] UserDaoHibernate.saveUser(49) | user's
id: null
[Thinkscan] WARN [main] JDBCExceptionReporter.logExceptions(71)
| SQL Error: 1062, SQLState: 23000
[Thinkscan] ERROR [main]
JDBCExceptionReporter.logExceptions(72) | Duplicate entry 'user'
for key 2
[Thinkscan] DEBUG [main] UserDaoTest.testUpdateUser(60) |
expected exception: could not insert:
[com.voxsant..voxsant.thinkscan.model.User ]; nested
exception is org.hibernate.exception.ContraintViolationException:
could not insert: [com.voxsant.thinkscan.model.User]
**Action test* -- *UserExistsException was thrown
error on saving user /*** I printed it to console to
test if an error occurred
WARN [main] UserAction.save(154) | User 'user' already exists!
Saving user
DEBUG [main] UserDaoHibernate.saveUser(49) | user's id: 1
DEBUG [main] UserSecurityAdvice.afterReturning(118) |
Removing 'user' from userCache added user
DEBUG [main] UserManagerImpl.removeUser(67) | removing user: 2
* *Service test**
[copy] Copying 2 files to
C:\thinkscan\build\test\service\classes
Testsuite: com.voxsant.thinkscan.service.UserManagerTest
[Thinkscan] DEBUG [main] UserManagerImpl.removeUser(67) |
removing user: 5
[Thinkscan] DEBUG [main]
UserManagerTest.testUserExistsException (124) | expected
exception: User 'admin' already exists!
Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.969 sec
------------- Standard Output ---------------
[Thinkscan] DEBUG [main] UserManagerImpl.removeUser (67) |
removing user: 5
[Thinkscan] DEBUG [main]
UserManagerTest.testUserExistsException(124) | expected exception:
User 'admin' already exists!
* *It seems that my problems are more likely in saving(Dao)
but I already compared my java classes to the original java files
from the appfuse and they look the same. I still dont know the
problem :D. I could add new records to user's table but i cant
update it after inserting a record on my application
Please suggest some solutions. Thanks! :D
Michael Horwitz wrote:
Which version of AppFuse and which web frontend are you using?
Some more details on the exact nature of the problem would also
be useful: when you say can't update, do you mean the data does
not appear in the database or is an exception raised? Have you
got unit tests for each tier and are they passing?
Mike.
On 7/12/07, **Mel Pison** <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]>> wrote:
Hi All,
Good Day everyone!
I'm new here and I'm just starting in j2ee. I'm currently
creating
the
same application from the tutorials(Person and User objects). I
followed
the steps from the tutorial and I already have a User object
and I
want
to manipulate this object but I'm still encountering some
problems. I
just copied all the needed files for the User object from the
myapp
sample and I made some modifications on jsp files for viewing
the user
information. I could add a new record of user to my
application but I
cant update the user information including the new roles for
a user. I
already compared all my java files for users to the tutorials
java
files
and it seems that there are no errors on that. I cant use the
update
functionality.
Please suggest some solutions. Thanks! :D
Regards,
Mel Pison
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]>