You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Stephen Ting <st...@shinyang.com.my> on 2002/11/29 10:23:45 UTC

One-to-many update error

What cause the following errors being thrown?
The following code is used, where prUpdate is of class PrBO and have one
to many relationship with PrItemBO class.
 
 
            db.open(site.getRepository(), Database.OPEN_READ_WRITE);
            tx = odmg.newTransaction();
            tx.begin();
            tx.lock(prUpdate,tx.WRITE);
            tx.commit();
 
Can someone please help??? 
 
Thanks in advance!
 
regards,
Stephen
 
[DEFAULT] ERROR: Error in operation [set] of object
[PersistentFieldPropertyImpl], java.lang.IllegalArgumentException
[DEFAULT] ERROR: Declaring class
[my.com.shinyang.einout.business.bo.PrItemBO]
[DEFAULT] ERROR: Property Name [prNo]
[DEFAULT] ERROR: Property Type [java.lang.String]
[DEFAULT] ERROR: anObject was class
[my.com.shinyang.einout.purchase.requisition.view.PrItemView]
[DEFAULT] ERROR: aValue was class [java.lang.String]
[org.apache.ojb.odmg.TransactionImpl] ERROR: Locking obj
my.com.shinyang.einout.business.bo.PrBO@694f12 with lock mode 4 failed
null
org.apache.ojb.broker.PersistenceBrokerException
 at
org.apache.ojb.broker.metadata.PersistentFieldPropertyImpl.set(Unknown
Source)
 at org.apache.ojb.odmg.TransactionImpl.lockCollections(Unknown Source)
 at org.apache.ojb.odmg.TransactionImpl.register(Unknown Source)
 at org.apache.ojb.odmg.TransactionImpl.lock(Unknown Source)
 at
my.com.shinyang.einout.business.PurchaseRequisitionDelegateImpl.updatePR
(PurchaseRequisitionDelegateImpl.java:334)
 at
my.com.shinyang.einout.purchase.requisition.PurchaseApprovalEditAction.u
pdate(PurchaseApprovalEditAction.java:129)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j
ava:280)
 at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:220
)
 at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr
ocessor.java:446)
 at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
266)
 at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
 at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:247)
 at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:193)
 at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:260)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:191)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
 at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
Base.java:527)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:235
0)
 at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:180)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
 at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
lve.java:170)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
 at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:171)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:641)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:174)
 at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
nvokeNext(StandardPipeline.java:643)
 at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
80)
 at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
 at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40
5)
 at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:380)
 at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50
8)
 at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:533)
 at java.lang.Thread.run(Thread.java:536)
Caused by: java.lang.IllegalArgumentException: object is not an instance
of declaring class
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 ... 49 more

Re: One-to-many update error

Posted by Thomas Mahler <th...@apache.org>.
Hi STephen,

This is a mapping error as indicated by the ERROR messages.
AFAIK PrItemBO does have a property prNo.
The (derived ?) class PrItemView does not have the respective 
getter/setter method?

Try to add these getter/setter on PrItemView.
You could also try to use a different PersistentField Implementation in 
  OJB.properties.

cheers,
Thomas

Stephen Ting wrote:
> What cause the following errors being thrown?
> The following code is used, where prUpdate is of class PrBO and have one
> to many relationship with PrItemBO class.
>  
>  
>             db.open(site.getRepository(), Database.OPEN_READ_WRITE);
>             tx = odmg.newTransaction();
>             tx.begin();
>             tx.lock(prUpdate,tx.WRITE);
>             tx.commit();
>  
> Can someone please help??? 
>  
> Thanks in advance!
>  
> regards,
> Stephen
>  
> [DEFAULT] ERROR: Error in operation [set] of object
> [PersistentFieldPropertyImpl], java.lang.IllegalArgumentException
> [DEFAULT] ERROR: Declaring class
> [my.com.shinyang.einout.business.bo.PrItemBO]
> [DEFAULT] ERROR: Property Name [prNo]
> [DEFAULT] ERROR: Property Type [java.lang.String]
> [DEFAULT] ERROR: anObject was class
> [my.com.shinyang.einout.purchase.requisition.view.PrItemView]
> [DEFAULT] ERROR: aValue was class [java.lang.String]
> [org.apache.ojb.odmg.TransactionImpl] ERROR: Locking obj
> my.com.shinyang.einout.business.bo.PrBO@694f12 with lock mode 4 failed
> null
> org.apache.ojb.broker.PersistenceBrokerException
>  at
> org.apache.ojb.broker.metadata.PersistentFieldPropertyImpl.set(Unknown
> Source)
>  at org.apache.ojb.odmg.TransactionImpl.lockCollections(Unknown Source)
>  at org.apache.ojb.odmg.TransactionImpl.register(Unknown Source)
>  at org.apache.ojb.odmg.TransactionImpl.lock(Unknown Source)
>  at
> my.com.shinyang.einout.business.PurchaseRequisitionDelegateImpl.updatePR
> (PurchaseRequisitionDelegateImpl.java:334)
>  at
> my.com.shinyang.einout.purchase.requisition.PurchaseApprovalEditAction.u
> pdate(PurchaseApprovalEditAction.java:129)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>  at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>  at java.lang.reflect.Method.invoke(Method.java:324)
>  at
> org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.j
> ava:280)
>  at
> org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:220
> )
>  at
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestPr
> ocessor.java:446)
>  at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
> 266)
>  at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1292)
>  at
> org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
> tionFilterChain.java:247)
>  at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
> erChain.java:193)
>  at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.java:260)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.java:191)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator
> Base.java:527)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:235
> 0)
>  at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :180)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa
> lve.java:170)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>  at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
> :171)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:641)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
> java:174)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i
> nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4
> 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
>  at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:40
> 5)
>  at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
> onnection(Http11Protocol.java:380)
>  at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:50
> 8)
>  at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
> .java:533)
>  at java.lang.Thread.run(Thread.java:536)
> Caused by: java.lang.IllegalArgumentException: object is not an instance
> of declaring class
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
> a:39)
>  at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
> Impl.java:25)
>  at java.lang.reflect.Method.invoke(Method.java:324)
>  ... 49 more
>