Well I had half of the equation right. Wasn't aware of the ActivationSemaphore. I assume that pertains to the agenda. I made the modifications and am no longer getting the exception. Thanks for you assistance with this issue.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of friedman_hill ernest j Sent: Thursday, June 22, 2006 12:18 PM To: [email protected] Subject: Re: JESS: Help with error I think Krasnigor, Scott L (N-AST) wrote: > Not a problem. Is there a simple fix I can implement. I am trying to > prototype a failover capability and I am dead in the water without the > bsave/bload functionality working. I have the source code. I will be > happy to figure out a temporary fix if you can just point me in the > right direction. Thanks. I am thinking of something like this (jess/Rete.java. around like 1800): public void bsave(OutputStream os) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(os); synchronized (getActivationSemaphore()) { synchronized (getCompiler()) { oos.writeObject(m_globalContext); ... The order of the two nested locks is, of course, significant. > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of friedman_hill ernest j > Sent: Thursday, June 22, 2006 9:43 AM > To: [email protected] > Subject: Re: JESS: Help with error > > I think Krasnigor, Scott L (N-AST) wrote: > > I am getting the following exception when trying to do a bsave. It > > is occurring when the bsave method is executing oss.writeObject(m_rules). > > > I don't understand what could be causing this and am looking for any > > insight into the issue. I am running Jess version 70b7 from a java > > application. I will be happy to provide more detail if needed. Thanks. > > Looks like this is caused by new rules being activated during the call > to "bsave," presumably because working memory is being modified on > another thread. I'm surprised this has never come up before, because > thinking of it, it seems that bsave() should probably lock the agenda > and working memory while it runs -- but it does not. Thanks for > reporting this. > > > > > > > Jess reported an error in routine bsave > > while executing (bsave enginedata). > > Message: Error during execution. > > Program text: ( bsave enginedata ) at line 1. > > at jess.Funcall.execute(Funcall.java:328) > > at jess.Jesp.parseAndExecuteFuncall(Jesp.java:2261) > > at jess.Jesp.parseExpression(Jesp.java:436) > > at jess.Jesp.promptAndParseOneExpression(Jesp.java:291) > > at jess.Jesp.parse(Jesp.java:270) > > at jess.Rete.eval(Rete.java:2051) > > at jess.Rete.eval(Rete.java:2006) > > at control.Controller.run(Controller.java:67) > > at java.lang.Thread.run(Unknown Source) Caused by: > > java.util.ConcurrentModificationException > > at java.util.HashMap$HashIterator.nextEntry(Unknown Source) > > at java.util.HashMap$EntryIterator.next(Unknown Source) > > at java.util.HashMap$EntryIterator.next(Unknown Source) > > at java.util.HashMap.writeObject(Unknown Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown > > Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown > > Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.writeObject(Unknown Source) > > at java.util.TreeMap.writeObject(Unknown Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown > > Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) > > at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) > > at java.util.Collections$SynchronizedMap.writeObject(Unknown > > Source) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > Source) > > at java.lang.reflect.Method.invoke(Unknown Source) > > at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) > > at java.io.ObjectOutputStream.writeSerialData(Unknown Source) > > at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown > > Source) > > at java.io.ObjectOutputStream.writeObject0(Unknown Source) > > at java.io.ObjectOutputStream.writeObject(Unknown Source) > > at jess.Rete.bsave(Rete.java:1768) > > at jess.Dumper.call(DumpFunctions.java:43) > > at jess.FunctionHolder.call(FunctionHolder.java:31) > > at jess.Funcall.execute(Funcall.java:320) > > ... 8 more > > > > Scott L. Krasnigor > > Principal Engineer/Scientist > > Advanced Sciences & Technologies, LLC. > > Lockheed Martin - MS2 > > ' 856-359-3094 > > * [EMAIL PROTECTED] > > * 780-1A > > > > > > --------------------------------------------------------- > Ernest Friedman-Hill > Advanced Software Research Phone: (925) 294-2154 > Sandia National Labs FAX: (925) 294-2234 > PO Box 969, MS 9012 [EMAIL PROTECTED] > Livermore, CA 94550 http://herzberg.ca.sandia.gov > -------------------------------------------------------------------- > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' > in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use > your own address!) List problems? Notify [EMAIL PROTECTED] > -------------------------------------------------------------------- > -------------------------------------------------------------------- > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' > in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use > your own address!) List problems? Notify [EMAIL PROTECTED] > -------------------------------------------------------------------- > --------------------------------------------------------- Ernest Friedman-Hill Advanced Software Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 PO Box 969, MS 9012 [EMAIL PROTECTED] Livermore, CA 94550 http://herzberg.ca.sandia.gov -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] -------------------------------------------------------------------- -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------
