I fiddled a little and found that it works as you expect if you modify
ExData's constructor to clone() its Fact arguments. That says to me
that writeUnshared isn't transitive -- the members of the unshared
object are, in fact, shared.

So it's definitely not a Jess problem.  You might try asking about this
on JavaRanch (www.javaranch.com) -- it's a really good place to get
answers to general Java questions.


I think Nik wrote:
> I changed writeObject to writeUnshared on the server side, and changed readObject to
> readUnshared on the client side, and it didn't work.  I tried different combinations,
> with and without "getIcon", and none of them worked.  Any ideas?
> 
> - Nik.
> 
> 
> --- [EMAIL PROTECTED] wrote:
> > I think Nik Joshi wrote:
> > [Charset iso-8859-1 unsupported, filtering to ASCII...]
> > > Hi all,
> > > 
> > > I posted this question a while ago without any code, and I got some replies
> > > which I tried, but to no avail.  So I've coded a simplified version of my
> > > problem to demonstrate.  I don't know if I can send attachments to this
> > > list, so I guess I'll have to put the code inline.  Basically, I have a java
> > > server and client where the server has a Rete object running a JESS batch
> > > file.   The JESS code periodically calls Userfunctions which, in turn,
> > > serialize the Fact data and send it to the client.   The problem is that the
> > > data in the facts does not get sent over properly.   When I de-serialize the
> > > data on the client end, some of the slot data in the facts is
> > > missing.
> > 
> > Ah, OK, thanks for the example -- it reveals the true problem. Nothing
> > to do with Jess, everything to do with Java serialization.
> > 
> > When you write an object to an ObjectOutputStream the first time using
> > writeObject, the OOS "remembers" the object by storing a reference to
> > it. If you write it a second time, the data is *not* written
> > again. Instead, a token representing that reference is
> > written. This is what lets the OOS send a graph of objects without
> > worrying about cycles.
> > 
> > Therefore, once you've sent an object through an OOS, you can't send a
> > version of that same object with different member variables using
> > writeObject. Instead, you can use the writeUnshared method, which
> > sends an object as if it had never been sent before. You need to
> > rewrite your program using writeUnshared.
> > 
> > 
> > 
> > 
> > 
> > ---------------------------------------------------------
> > Ernest Friedman-Hill  
> > Science and Engineering PSEs        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]
> > --------------------------------------------------------------------
> > 
> 
> 
> =====
> ------------------------------------------------------
> 
> You gotta dream like you're gonna live forever,
> And you gotta live like you're gonna die tomorrow...
> 
> --------------------------------------------------------------------
> 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  
Science and Engineering PSEs        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]
--------------------------------------------------------------------

Reply via email to