8 Replies Latest reply on Dec 4, 2007 2:10 PM by vsahni

    org.drools.RuntimeDroolsException: Error creating shadow fac

    vsahni

      First of all I would like to convey my thanks to Jeff who helped me resolve previous drool-custom class issue.

      Now, while redeploying and rerunning application the a drool run time shadow object creation exception is thrown as shown below.

      This does not happen if the server is restared.

      I would prefer not to do this because it would restrict our ability to deploy rules at run time. I am also listing the ErrorLIst class below.

      Thanks for your help.

      canonical-order-xml]]
      13:27:06,377 WARN [ActionProcessingPipeline] Unexpected exception caught while
      processing the action pipeline
      org.drools.RuntimeDroolsException: Error creating shadow fact for object: com.ol
      dlane.esb.util.ErrorList@18a1295
       at org.drools.reteoo.Rete$ClassObjectTypeConf.getShadow(Rete.java:628)
       at org.drools.reteoo.Rete.assertObject(Rete.java:166)
       at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192
      )
       at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.ja
      va:71)
       at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.
      java:886)
       at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.
      java:858)
       at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.
      java:659)
       at org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter.rout
      e(JBossRulesRouter.java:140)
       at org.jboss.soa.esb.actions.ContentBasedWiretap.routeMessage(ContentBas
      edWiretap.java:132)
       at org.jboss.soa.esb.actions.ContentBasedWiretap.process(ContentBasedWir
      etap.java:98)
       at org.jboss.soa.esb.actions.ContentBasedRouter.process(ContentBasedRout
      er.java:50)
       at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(
      ActionProcessingPipeline.java:265)
       at org.jboss.soa.esb.listeners.message.MessageAwareListener$1.run(Messag
      eAwareListener.java:297)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
      utor.java:650)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
      .java:675)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: java.lang.ClassCastException: com.oldlane.esb.util.ErrorList
      

      ErrorList Class:
      public class ErrorList implements Serializable,java.lang.Cloneable
      {
       private static final long serialVersionUID = 1L;
       private ArrayList<String> errorList = (new ArrayList<String>());
      
       public ErrorList() {
       }
       public synchronized void setError(String error) {
       errorList.add(error);
       }
       public synchronized ArrayList<String> getErrorlist() {
       return errorList;
       }
      
       public Object clone() {
       try {
       return super.clone();
       }
       catch (CloneNotSupportedException e) {
       throw new InternalError(e.toString());
       }
       }
      
       public synchronized int getSize() {
       return errorList.size();
       }
       public synchronized void setSize(int size) {
       }
      }