Bugs item #562004, was opened at 2002-05-29 14:11 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=376685&aid=562004&group_id=22866
Category: JBossCMP Group: CVS HEAD Status: Open Resolution: None Priority: 5 Submitted By: Justin Casp (jcasp) Assigned to: Nobody/Anonymous (nobody) Summary: 'Error setting column value' using dependent value classes with existing db records Initial Comment: I posted this problem a few weeks ago on jboss.org forums, but it's down right now so I can't reference that post. I figured out how to create a simple test case that reliably reproduces the problem. The error message 'Error setting column value' occurs when I have an existing CMP bean that reads existing records from a datasource. The bean uses a dependent value class, although I'm not sure if this problem is specific to dependent value classes or just any cmp bean with fields mapped to columns. If I create the record externally (e.g., using psql, the postgres command line tool) and only set a few of the columns to non-null values, when I attempt to load that bean instance with a finder, jboss throws the following exception on the server: 12:03:56,650 ERROR [STDERR] java.lang.NullPointerException 12:03:56,652 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 12:03:56,652 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 12:03:56,653 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 12:03:56,653 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:324) 12:03:56,653 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeComplexProperty.setColumnValue(JDBCTypeComplexProperty.java:142) 12:03:56,654 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeComplex.setColumnValue(JDBCTypeComplex.java:158) 12:03:56,654 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeComplex.setColumnValue(JDBCTypeComplex.java:133) 12:03:56,654 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.loadArgumentResults(JDBCAbstractCMPFieldBridge.java:352) 12:03:56,655 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.loadInstanceResults(JDBCAbstractCMPFieldBridge.java:304) 12:03:56,655 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:140) 12:03:56,655 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:62) 12:03:56,655 ERROR [STDERR] at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:496) 12:03:56,656 ERROR [STDERR] at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistenceManager.java:410) 12:03:56,656 ERROR [STDERR] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.loadEntity(CachedConnectionInterceptor.java:314) 12:03:56,656 ERROR [STDERR] at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:310) 12:03:56,657 ERROR [STDERR] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:147) 12:03:56,657 ERROR [STDERR] at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:193) 12:03:56,657 ERROR [STDERR] at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:107) 12:03:56,658 ERROR [STDERR] at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:69) 12:03:56,658 ERROR [STDERR] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96) 12:03:56,658 ERROR [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:167) 12:03:56,659 ERROR [STDERR] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61) 12:03:56,659 ERROR [STDERR] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129) 12:03:56,659 ERROR [STDERR] at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166) 12:03:56,659 ERROR [STDERR] at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:145) 12:03:56,660 ERROR [STDERR] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:482) 12:03:56,660 ERROR [STDERR] at org.jboss.ejb.Container.invoke(Container.java:694) 12:03:56,660 ERROR [STDERR] at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1024) 12:03:56,661 ERROR [STDERR] at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549) 12:03:56,661 ERROR [STDERR] at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:321) 12:03:56,661 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source) 12:03:56,699 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 12:03:56,700 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:324) 12:03:56,700 ERROR [STDERR] ================================================ and this stack trace on the client: Beginning Example: result size: 1 java.lang.reflect.UndeclaredThrowableException at $Proxy1.getOrderID(Unknown Source) at examples.local_objects.ClientDemoDependentObject.main(Unknown Source) Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.ServerException: Error setting column value Embedded Exception null; nested exception is: javax.ejb.EJBException: Error setting column value Embedded Exception null at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:292) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:536) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:127) at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:92) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:51) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:48) at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:115) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:83) ... 2 more Caused by: java.rmi.ServerException: Error setting column value Embedded Exception null; nested exception is: javax.ejb.EJBException: Error setting column value Embedded Exception null at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:119) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:167) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:61) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:129) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:166) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:145) at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:482) at org.jboss.ejb.Container.invoke(Container.java:694) at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1024) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:321) at sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:536) Caused by: javax.ejb.EJBException: Error setting column value Embedded Exception null at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeComplex.setColumnValue(JDBCTypeComplex.java:161) at org.jboss.ejb.plugins.cmp.jdbc.JDBCTypeComplex.setColumnValue(JDBCTypeComplex.java:133) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.loadArgumentResults(JDBCAbstractCMPFieldBridge.java:352) at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.loadInstanceResults(JDBCAbstractCMPFieldBridge.java:304) at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:140) at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoadEntityCommand.java:62) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreManager.java:496) at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistenceManager.java:410) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.loadEntity(CachedConnectionInterceptor.java:314) at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:310) at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:147) at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:193) at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:107) at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:69) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:96) ... 20 more ===================================== instructions to reproduce this error: 1) deploy the attached ear (dvc-bug.ear, uses java:/PostgresDS as the datasource) 2) execute the following sql commands with psql or a similar tool: insert into orders (order_id) values ('100'); ( 'ant run-client' at this point to confirm the app is working if you want) update orders set address_state='FL' where order_id='100'; 3) run the client using the ant script provided ('ant run-client') let me know what I can do to help resolve this bug, as it is stopping my project right now. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=376685&aid=562004&group_id=22866 _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development