1 Reply Latest reply on Sep 28, 2007 12:42 PM by Meghana Joglekar

    named catch branch on scope throws exception

    Meghana Joglekar Novice

      I have a fault handler on scope. The BPEL snippet looks like this -

      <scope name="Scope">
       <faultHandlers>
       <catch faultName="GetQuoteFault" faultVariable="StockQuote-GetQuoteFault">
       <sequence>
       <assign name="Calculate3">
       <copy>
       <from expression="'updated from catch handler'" />
       <to part="parameters" query="/ns9:UpdateItem/ns9:item/ns9:title" variable="aewebservices70_UpdateItem-UpdateItem" />
       </copy>
       </assign>
       </sequence>
       </catch>
       </faultHandlers>
      


      where variable is declared globally as
      <variable name="StockQuote-GetQuoteFault" messageType="ns10:GetQuoteFault" />
      


      The wsdl message is defined as
      <wsdl:fault name="GetQuoteFault">
       <soap:fault use="literal" name="GetQuoteFault"/>
       </wsdl:fault>
      


      However when it reaches to finding the messageType in ImportDefinition class I get following error -
      Caused by: org.hibernate.WrongClassException: Object with id: 3571 was not of th
      e specified subclass: org.jbpm.bpel.variable.def.MessageType (loaded object was
      of wrong class class org.jbpm.bpel.variable.def.SchemaType)
       at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.java:1234)
       at org.hibernate.loader.Loader.getRow(Loader.java:1186)
       at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
       at org.hibernate.loader.Loader.doQuery(Loader.java:689)
       at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lo
      ader.java:224)
       at org.hibernate.loader.Loader.loadCollection(Loader.java:1918)
       at org.hibernate.loader.collection.CollectionLoader.initialize(Collectio
      nLoader.java:36)
       at org.hibernate.persister.collection.AbstractCollectionPersister.initia
      lize(AbstractCollectionPersister.java:565)
       at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onIn
      itializeCollection(DefaultInitializeCollectionEventListener.java:60)
       at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:
      1716)
       at org.hibernate.collection.AbstractPersistentCollection.initialize(Abst
      ractPersistentCollection.java:344)
       at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPe
      rsistentCollection.java:86)
       at org.hibernate.collection.AbstractPersistentCollection.readElementByIn
      dex(AbstractPersistentCollection.java:161)
       at org.hibernate.collection.PersistentMap.get(PersistentMap.java:146)
       at org.jbpm.bpel.graph.def.ImportDefinition.getMessageType(ImportDefinit
      ion.java:270)
      


      I see while debugging that when it is inside the scope the 'messageTypes' map member is null however when it is on global scope, that member has number of QNames for my webservices.

      Is named catch supposed to work? Please let me know if I am doing something wrong. I would appreciate if someone knows a workaround if this is a bug.

      Thank you,
      Meghana.