Oracle and all are varchar2.

SQL> desc table2;
 Name                            Null?    Type
 ------------------------------- -------- ----
 A                                        VARCHAR2(10)
 B                                        VARCHAR2(10)
 C                                        VARCHAR2(10)


-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED]
Sent: Thursday, December 01, 2005 2:26 PM
To: [email protected]
Subject: Re: [castor-user] ObjectModifiedException


Shiva,

what database are you using ? And what column types to the three columns
a,b and c have ?

Werner

Shiva P. Kodityala wrote:
> Ralf
> 
> I created a sample web application with different classes and a table. I 
> could reproduce this behaviour again. This time, I have observed a pattern.
> 
> Table Name: Table2 has three fields:a, b, c
> I have a class mapping to table: Table2DTO.java: having corresponding fields: 
> a, b, c
> 
> I am getting ObjectModifiedException when some of the columns have "" value
> 
> For example: 
> 
> I insert a row into Table2 with b and c value blanks. Printed the values of b 
> and c of Table2DTO object - shows empty strings
> 
> Next time, when I try to modify the column which is blank, I am getting 
> ObjectModifiedException. Further modifications of this blank columns are 
> successful.
> 
> I insert a row
> a1 (b and c are blanks)
> 
> modify b where a = a1 -------->ObjectModifiedException
> modify b where a = a1 ---------> success
> modify b where a = a1 ---------> success
> 
> 
> How do I avoid it? By inserting some default value if nothing is supplied?
> 
> 
> Thanks
> Shiva.
> 
> 
> 
> 
> 
> 
> -----Original Message-----
> From: Shiva P. Kodityala [mailto:[EMAIL PROTECTED]
> Sent: Thursday, December 01, 2005 1:23 PM
> To: [email protected]
> Subject: RE: [castor-user] ObjectModifiedException
> 
> 
> Ralf, Thanks for your suggestions.
> 
> Do you configure time-period somewhere to make an object available for 
> certain time?
> 
> "According to my experience I expect 
> the problem happend at the last write operation before the failing one."
> 
> I too feel the same.. I am doing commit and close resultset and database 
> objects after insert; :(
> 
> Thanks
> Shiva.
> 
> -----Original Message-----
> From: Ralf Joachim [mailto:[EMAIL PROTECTED]
> Sent: Thursday, December 01, 2005 12:11 PM
> To: [email protected]
> Subject: Re: [castor-user] ObjectModifiedException
> 
> 
> Hi Shiva
> 
> 
> I'm really sorry but according to the stacktrace it is not possible to 
> find out what caused the exception. According to my experience I expect 
> the problem happend at the last write operation before the failing one. 
> In most cases it is quite difficult to track this as you may have 
> recognized yourself. I suggest you to prepare a test case that allows me 
> to reproduce the problem. At least with the information I have at the 
> moment I am not able to help you.
> 
> There is one other thing that came to my mind being the reason for the 
> problem. If the object you want to change has been expired from cache 
> you may also get this ObjectModifiedException.
> 
> Regards
> Ralf
> 
> 
> Shiva P. Kodityala schrieb:
> 
> 
>>Ralf,
>>
>>I am still not able to figure out what is happening...
>>
>>Could you help me figuring out what is the problem by looking at the 
>>exception? Is it because of nulls?
>>
>>exception was logged org.exolab.castor.jdo.ObjectModifiedException: 
>>Transaction aborted: Object of type test.tables.User with identity hk has 
>>been modified by a concurrent transaction (cache entry is different from 
>>database row). The following fields have been changed [actual/expected 
>>value]: (test.tables.User).address1: [/null](test.tables.User).address2: 
>>[/null](test.tables.User).address3: [null/null](test.tables.User).city: 
>>[null/null](test.tables.User).state: [/null]
>>
>>Thanks
>>
>>
>>-----Original Message-----
>>From: Ralf Joachim [mailto:[EMAIL PROTECTED]
>>Sent: Tuesday, November 29, 2005 11:31 PM
>>To: [email protected]
>>Subject: Re: [castor-user] ObjectModifiedException
>>
>>
>>Hi Shiva,
>>
>>a ObjectModifiedException is thrown by Castor if the object in cache 
>>differs from the objects representation in the database. There is a 
>>various number of reasons that can cause that:
>>
>>- another application changes the values in the database
>>- you have mapped the same table with 2 mappings and change the values 
>>through both of them
>>- your database does change values when storing (e.g. convert null to 
>>empty String, clip String to column length)
>>
>>Castor is only able to recognize that changes when you try to modify the 
>>object the next time after one of the above situation happend.
>>
>>Regards
>>Ralf
>>
>>
>>Shiva P. Kodityala schrieb:
>>
>> 
>>
>>
>>>I am trying to modify one of the columns of an obtained row. 
>>>
>>>Problem seems to be something to do with nulls.
>>>
>>>Here is the code:
>>>
>>>for(int i=0; i<numberOfSelectedUsers;i++)
>>>
>>>{
>>>
>>>database = connectionPool.getJDOConnection();
>>>
>>>database.begin();
>>>
>>>String oqlString = "select p from test.tables.User p where userid=$1";
>>>
>>>oql = database.getOQLQuery(oqlString);
>>>
>>>oql.bind( selectedUserIds[i]);
>>>
>>>results = oql.execute();
>>>
>>>User user = null;
>>>
>>>while (results.hasMore()) {
>>>
>>>user = (User) results.next();
>>>
>>>}
>>>
>>>user.setActivationstatus(toStatus);
>>>
>>>database.commit();
>>>
>>>database.close();
>>>
>>>database = null;
>>>
>>>}
>>>
>>>Here is error. It is not  happening always.. I don't know why.
>>>
>>>following fields have been changed [actual/expected value]: 
>>>(test.tables.User).address1: [/null](test.tables.User).address2: 
>>>[/null](test.tables.User).address3: [null/null](test.tables.User).city: 
>>>[null/null](test.tables.User).state: [/null](test.tables.User).country: 
>>>[null/null](test.tables.User).ZIP: [/null]
>>>[11/29/05 22:25:06:609 PST] 7e116486 DatabaseImpl  E 
>>>org.exolab.castor.jdo.engine.DatabaseImpl  TRAS0014I: The following 
>>>exception was logged org.exolab.castor.jdo.ObjectModifiedException: 
>>>Transaction aborted: Object of type test.tables.User with identity hk has 
>>>been modified by a concurrent transaction (cache entry is different from 
>>>database row). The following fields have been changed [actual/expected 
>>>value]: (test.tables.User).address1: [/null](test.tables.User).address2: 
>>>[/null](test.tables.User).address3: [null/null](test.tables.User).city: 
>>>[null/null](test.tables.User).state: [/null](test.tables.User).country: 
>>>[null/null](test.tables.User).ZIP: [/null]
>>>at org.exolab.castor.jdo.engine.SQLEngine.store(SQLEngine.java:1013)
>>>at org.exolab.castor.persist.ClassMolder.store(ClassMolder.java:834)
>>>at org.exolab.castor.persist.LockEngine.store(LockEngine.java:779)
>>>at 
>>>org.castor.persist.TransactionContext.prepareForCreate(TransactionContext..java:1654)
>>>at 
>>>org.castor.persist.TransactionContext.prepare(TransactionContext.java:1618)
>>>at org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:521)
>>>at test.actions.ChangeStatusAction.changeStatus(ChangeStatusAction.java:226)
>>>at test.actions.ChangeStatusAction.active(ChangeStatusAction.java:120)
>>>at test.actions.ChangeStatusAction.execute(ChangeStatusAction.java:47)
>>>at 
>>>org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>>>at 
>>>org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>>>at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>>at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>>at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:983)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:564)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
>>>at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
>>>at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
>>>at 
>>>com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
>>>at 
>>>com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
>>>at 
>>>com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
>>>at 
>>>com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
>>>at 
>>>com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
>>>at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
>>>at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
>>>..
>>>                               
>>> org.exolab.castor.jdo.ObjectModifiedException: Transaction aborted: Object 
>>> of type test.tables.User with identity hk has been modified by a concurrent 
>>> transaction (cache entry is different from database row). The following 
>>> fields have been changed [actual/expected value]: 
>>> (test.tables.User).address1: [/null](test.tables.User).address2: 
>>> [/null](test.tables.User).address3: [null/null](test.tables.User).city: 
>>> [null/null](test.tables.User).state: [/null](test.tables.User).country: 
>>> [null/null](test.tables.User).ZIP: [/null]
>>>at org.exolab.castor.jdo.engine.SQLEngine.store(SQLEngine.java:1013)
>>>at org.exolab.castor.persist.ClassMolder.store(ClassMolder.java:834)
>>>at org.exolab.castor.persist.LockEngine.store(LockEngine.java:779)
>>>at 
>>>org.castor.persist.TransactionContext.prepareForCreate(TransactionContext..java:1654)
>>>at 
>>>org.castor.persist.TransactionContext.prepare(TransactionContext.java:1618)
>>>at org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:521)
>>>at test.actions.ChangeStatusAction.changeStatus(ChangeStatusAction.java:226)
>>>at test.actions.ChangeStatusAction.active(ChangeStatusAction.java:120)
>>>at test.actions.ChangeStatusAction.execute(ChangeStatusAction.java:47)
>>>at 
>>>org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>>>at 
>>>org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>>>at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>>at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>>at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>>at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
>>>at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:983)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:564)
>>>at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
>>>at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
>>>at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
>>>at 
>>>com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
>>>at 
>>>com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
>>>at 
>>>com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
>>>at 
>>>com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
>>>at 
>>>com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
>>>at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
>>>at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
>>>
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R 
>>>org.exolab.castor.jdo.ObjectModifiedException: Transaction aborted: Object 
>>>of type test.tables.User with identity hk has been modified by a concurrent 
>>>transaction (cache entry is different from database row). The following 
>>>fields have been changed [actual/expected value]: 
>>>(test.tables.User).address1: [/null](test.tables.User).address2: 
>>>[/null](test.tables.User).address3: [null/null](test.tables.User).city: 
>>>[null/null](test.tables.User).state: [/null](test.tables.User).country: 
>>>[null/null](test.tables.User).ZIP: [/null]
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.exolab.castor.jdo.engine.SQLEngine.store(SQLEngine.java:1013)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.exolab.castor.persist.ClassMolder.store(ClassMolder.java:834)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.exolab.castor.persist.LockEngine.store(LockEngine.java:779)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.castor.persist.TransactionContext.prepareForCreate(TransactionContext..java:1654)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.castor.persist.TransactionContext.prepare(TransactionContext.java:1618)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:521)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>test.actions.ChangeStatusAction.changeStatus(ChangeStatusAction.java:226)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>test.actions.ChangeStatusAction.active(ChangeStatusAction.java:120)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>test.actions.ChangeStatusAction.execute(ChangeStatusAction.java:47)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>>>[11/29/05 22:25:06:656 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:983)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:564)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
>>>[11/29/05 22:25:06:672 PST] 7e116486 SystemErr     R  at 
>>>com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>-------------------------------------------------
>>>If you wish to unsubscribe from this list, please 
>>>send an empty message to the following address:
>>>
>>>[EMAIL PROTECTED]
>>>-------------------------------------------------
>>>
>>>   
>>>
>>
>>
>>-------------------------------------------------
>>If you wish to unsubscribe from this list, please 
>>send an empty message to the following address:
>>
>>[EMAIL PROTECTED]
>>-------------------------------------------------
>>
>>
>>-------------------------------------------------
>>If you wish to unsubscribe from this list, please 
>>send an empty message to the following address:
>>
>>[EMAIL PROTECTED]
>>-------------------------------------------------
>>
>> 
>>
> 
> 
> 
> -------------------------------------------------
> If you wish to unsubscribe from this list, please 
> send an empty message to the following address:
> 
> [EMAIL PROTECTED]
> -------------------------------------------------
> 
> 
> -------------------------------------------------
> If you wish to unsubscribe from this list, please 
> send an empty message to the following address:
> 
> [EMAIL PROTECTED]
> -------------------------------------------------
> 
> 
> -------------------------------------------------
> If you wish to unsubscribe from this list, please 
> send an empty message to the following address:
> 
> [EMAIL PROTECTED]
> -------------------------------------------------
> 
> 


-------------------------------------------------
If you wish to unsubscribe from this list, please 
send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------


-------------------------------------------------
If you wish to unsubscribe from this list, please
send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------

Reply via email to