[jboss-user] [JBoss jBPM] - BPEL GA on Oracle: ElementType causing problem while running

meghanai_99 do-not-reply at jboss.com
Thu Feb 14 22:40:45 EST 2008


Hi,
 
With Oracle 10G, jBPM/BPEL 1.1 GA.
 
During the running of a BPEL process, I got:


  | 13:58:26,218 ERROR [StartListener] request delivery failed due to non-recoverable exception, givi
  | ng up
  | org.hibernate.exception.GenericJDBCException: could not load an entity: [org.jbpm.bpel.graph.basic.assign.From#15]
  |         at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
  |         at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
  |         at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  |         at org.hibernate.loader.Loader.loadEntity(Loader.java:1798)
  |         at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
  |         at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2977)
  |         at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:393)
  |         at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:374)
  |         at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:137)
  |         at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:96)
  |         at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
  |         at org.hibernate.impl.SessionImpl.immediateLoad(SessionImpl.java:836)
  |         at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:66)
  |         at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
  |         at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:198)
  |         at org.jbpm.bpel.graph.basic.assign.From_$$_javassist_1.extract(From_$$_javassist_1.java)
  |         at org.jbpm.bpel.graph.basic.assign.Copy.execute(Copy.java:34)
  |         at org.jbpm.bpel.graph.basic.Assign.execute(Assign.java:45)
  |         at org.jbpm.bpel.graph.def.Activity.enter(Activity.java:117)
  |         at org.jbpm.graph.def.Transition.take(Transition.java:151)
  |         at org.jbpm.graph.def.Node.leave(Node.java:394)
  |         at org.jbpm.bpel.graph.def.Activity.leave(Activity.java:210)
  |         at org.jbpm.bpel.graph.basic.Receive.messageReceived(Receive.java:53)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  |         at org.jbpm.bpel.graph.basic.Receive_$$_javassist_19.messageReceived(Receive_$$_javassist_19.java)
  |         at org.jbpm.bpel.integration.def.ReceiveAction.deliverMessage(ReceiveAction.java:99)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  |         at org.jbpm.bpel.integration.def.ReceiveAction_$$_javassist_93.deliverMessage(ReceiveAction_$$_javassist_93.java
  | )
  |         at org.jbpm.bpel.integration.jms.StartListener.deliverRequest(StartListener.java:222)
  |         at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.java:168)
  |         at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:696)
  |         at java.lang.Thread.run(Thread.java:595)
  | Caused by: java.sql.SQLException: Stream has already been closed
  |         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
  |         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
  |         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
  |         at oracle.jdbc.driver.LongRawAccessor.getBinaryStream(LongRawAccessor.java:341)
  |         at oracle.jdbc.driver.OracleResultSetImpl.getBinaryStream(OracleResultSetImpl.java:886)
  |         at oracle.jdbc.driver.OracleResultSet.getBinaryStream(OracleResultSet.java:1700)
  |         at org.jboss.resource.adapter.jdbc.WrappedResultSet.getBinaryStream(WrappedResultSet.java:354)
  |         at org.jbpm.bpel.persistence.db.type.ElementType.nullSafeGet(ElementType.java:91)
  |         at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:105)
  |         at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
  |         at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2031)
  |         at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1371)
  |         at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1299)
  |         at org.hibernate.loader.Loader.getRow(Loader.java:1197)
  |         at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
  |         at org.hibernate.loader.Loader.doQuery(Loader.java:689)
  |         at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
  |         at org.hibernate.loader.Loader.loadEntity(Loader.java:1784)
  |         ... 37 more
  | 

In jbpm.ga/bpel/library/src/main/java/org/jbpm/bpel/graph/basic/assign/From.hbm.xml
 
The last two mappings are:

  | <subclass name="org.jbpm.bpel.graph.basic.assign.FromElement" discriminator-value="M">
  | 
  | <property name="literal" type="element" column="ELEMENT_" length="4000" />
  | 
  | </subclass>
  | 
  | 
  | <subclass name="org.jbpm.bpel.graph.basic.assign.FromText" discriminator-value="T">
  | 
  | <property name="literal" column="TEXT_" length="4000" />
  | 
  | </subclass>
  | 
  | 
Once the table is created in Oracle,

ELEMENT_     LONG RAW  
TEXT_     VARCHAR2(4000 CHAR)  


I found some discussion saying the solution is to move the long raw column as the last mapping, which will make it got selected first, thus the stream would not be closed. But that did not work for me.

And suggestion? We know that to use LOB, instead of Long Raw, would be a solution, but we prefer a solution without JBPM source code change. Thanks a lot in advance. 

Jay.




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4129543#4129543

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4129543



More information about the jboss-user mailing list