Attached. 

-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 10, 2004 3:17 AM
To: [EMAIL PROTECTED]
Subject: Re: [castor-user] DuplicateIdentityException Problem...


Paul,

can you please post the code as it stands currently. There's a couple of
small issues I would want to assess first, before asking you to submit a bug

report.

Regards
Werner

On Tue, 9 Nov 2004 18:00:46 +0800, PAUL CHAN NCSI HK NCS wrote:

>
>I added db.rollback(); at the catch clause.. the problem still exists.
>
>-----Original Message-----
>From: Bruce Snyder [mailto:[EMAIL PROTECTED] 
>Sent: Tuesday, November 09, 2004 4:05 PM
>To: '[EMAIL PROTECTED]'
>Subject: Re: [castor-user] DuplicateIdentityException Problem...
>
>
>PAUL CHAN NCSI HK NCS wrote:
>
>> I have a problem need your help. The problem exist when JDO is used at
web
>> application server.
>> 
>> The problem is similar to following JSP example
>> 
>>  
>> 
>> The OBDiseaseBean has one-to-many mapping to a child
>> 
>> table OBClinicalPresentation as a ArrayList inside OBDiseaseBean. 
>> 
>> The following code is try to add OBClinicalPresentation record to
>> 
>> the OBDiseaseBean, but the remark field size of of OBDiseaseBean
>> 
>> is too large Following exception is thrown
>> 
>>  
>> 
>> [code]
>> 
>> Nested error: org.exolab.castor.jdo.PersistenceException: Nested error:
>> java.sql.SQLException: ORA-01401: inserted value too large for column
>> 
>> [/code]
>> 
>>  
>> 
>> Therefore, I remark the [b]bean.setRemk(b.toString());[/b] method on
>coding
>> and try to add the OBClinicalPresentation record again (Reload the JSP).
>> Following Exception is thrown. 
>> 
>>  
>> 
>>  
>> 
>> [code]
>> 
>> Nested error: org.exolab.castor.jdo.DuplicateIdentityException: Duplicate
>> identity found for object of type OBClinicalPresentation with identity :
>an
>> object with the same identity already exists in persistent storage
>> 
>> [/code]
>> 
>>  
>> 
>> Note that there is no [b]duplicated record[/b] exist at Database, but
>> 
>> JDO continues to throw DuplicateIdentityException until
>> 
>> I restart  web application server.
>> 
>> Therefore, how can i solve this [b]problem/error/bug ??[/b] :( 
>.
>>        // try to commmit
>> 
>>        db.commit();         
>> 
>>        db.close();
>> 
>>        out.println("Success");
>> 
>>                      
>> 
>>            } catch (Exception e) {
>> 
>>                      out.println(e.getMessage());
>> 
>>                      e.printStackTrace();
>> 
>>                      
>> 
>>            } finally {                 
>> 
>>                      
>> 
>>                      if( rs != null )
>> 
>>                                 rs.close();
>> 
>>                                 
>> 
>>                      if( query != null )
>> 
>>                                 query.close();
>> 
>>                                 
>> 
>>                      if( db != null && db.isActive() )
>> 
>> 
>>                                 db.rollback(); 
>> 
>>                      else if( db != null )
>> 
>>                                 db.close();
>> 
>>            }
>> 
>
>Paul,
>
>I believe that the DuplicateIdentityException is because the cache 
>contains an item with the same identity because the failed commit is not 
>properly rolled back. In the code aobve, the db.rollback() call should 
>be taking place in the catch clause so that when an exception occurs 
>during commit, the tx will be properly rolled back. The code above is 
>calling db.rollback() in the finally clause and this is incorrect. 
>Unless there's some other process calling db.close(), the db.isActive() 
>call will always return true so it will try to call db.rollback() but 
>there will be nothing to be rolled back. Try calling db.rollback() in 
>the finally clause instead.
>
>Bruce
>-- 
>perl -e 'print 
>unpack("u30","<0G)[EMAIL PROTECTED]&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");'
>
>The Castor Project
>http://www.castor.org/
>
>Apache Geronimo
>http://geronimo.apache.org/
>
>
>
>----------------------------------------------------------- 
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-user
>
>
>
>----------------------------------------------------------- 
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-user
>



----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Attachment: sample_prog.jsp
Description: Binary data

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-user

Reply via email to