Re: Using Vine in 3-way interactions (was Re: Question on redirectors/whenMoreResolved in the 3-way case, in the middle vat)

Robert Withers <[email protected]> Wed, 18 Nov 2015 15:13:43 -0500
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============5947696094361716303==
Content-Type: multipart/alternative;
 boundary="------------010905080509030902070204"

This is a multi-part message in MIME format.
--------------010905080509030902070204
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Oh Jesus, 8 months ago seems so long. I think I said it wrong because I 
don't mean to do so, burn my bridges.

I have looked back at what you built, Mark, and the diagram showing this 
and it's really fine. I like that it shows that temporal flow as I think 
it is a unique aspect of Elib. Thank you.

Robert


On 11/18/2015 02:40 PM, Mark S. Miller wrote:
> Note that this is an old message that may be redundant with other 
> messages from around the same time. I do not know why this one was 
> stuck in the moderator queue or why I had not noticed it till now. I 
> did just notice it and release it. Sorry for the temporal confusion.
>
>
>
>
> On Sat, Mar 7, 2015 at 7:28 PM, Rob Withers 
> <[email protected] <mailto:[email protected]>> wrote:
>
>     I truly hope not, Mark.  I have this tendency to explicitly burn
>     bridges when I perceive they are burned, to clarify and out of
>     frustration that I keep bouncing.  My apologies for that as it
>     helps no one, as well as my lack of patience for a response.  I
>     had not realized I had posted such a challenging question.
>
>     In consideration, if I may suggest the following.
>
>      1. Carol sends to Alice with a ref to Bob and Alice redirects a
>         call to Bob, returning a RemotePromise both in Carol and in Alice.
>      2. 3-way: Carol sends a provideFor to Bob and Alice sends an
>         AcceptFrom to Bob.
>      3. Carol sends a followOn to Alice's first resolution, which is a
>         RemotePromise to Bob, so this flows to Bob.
>      4. 3-way: In Alice, the followOn should become a 3-way to the
>         followOn Resolver in Carol.  So Alice would send a provideFor
>         to Carol and Bob would send an AcceptFrom to Carol and send
>         the result of the followOn to the gift resolver in Carol.
>
>     I think I am saying this the way I am thinking it.
>
>     Thank you.
>
>
>     On 3/7/2015 5:07 PM, Mark S. Miller wrote:
>>     Wait wait apologies! You did nothing at all to offend! Really!
>>
>>     I was just saying to a current houseguest last night, as close as
>>     I can remember:
>>
>>     "Have you seen the question Rob Withers has asked lately on
>>     e-lang about captp? It relates to race conditions and GC, but I
>>     haven't yet been able to reload enough context to think about it.
>>     Could you have a look?" We then went off on a long discussion on
>>     race conditions in captp-like systems x gc x partition x malice,
>>     how difficult it is to do a full case analysis of the cross
>>     product by hand, and how much automated tools could help. Sadly,
>>     we did not get back to the subject of your question.
>>
>>     True story. I am posting this without first checking with the
>>     houseguest, which is why I'm omitting their name.
>>
>>     I should have said something to explain my lack of response. The
>>     rudeness really is mine.
>>
>>
>>
>>
>>     On Sat, Mar 7, 2015 at 3:28 PM, Rob Withers
>>     <[email protected] <mailto:[email protected]>>
>>     wrote:
>>
>>         Thanks for all the reticent help over the years, everyone. 
>>         It's been fun.  Such a pity that that help seems permanently
>>         revoked, like an untrusted capability.  I must not have
>>         participated well in the social context, but that is par for
>>         the course for folks with Aspergers, I am learning.  I just
>>         can't ever seem to say the right thing and more often than
>>         not, I piss people off.  The issue is I truly just don't get it.
>>
>>         Best regards,
>>         Robert
>>
>>         On 3/4/2015 9:27 AM, Rob Withers wrote:
>>>         Might someone be able to comment on this, please? It would
>>>         help me a great deal.  I do not think it is the
>>>         unimplemented far3Desc situation.
>>>
>>>         Thanks,
>>>         Robert
>>>
>>>         On 3/1/2015 3:12 PM, Rob Withers wrote:
>>>>         I see.  Could you comment on how a Vine (and
>>>>         promise3Desc/far3Desc) get introduced into the machinery
>>>>         when a followOn msg gets forwarded to a third vat?  In my
>>>>         example, redirectForTheAnswer sends getTheAnswer to Bob and
>>>>         returns a RemotePromise, which receives a hashCode followOn
>>>>         msg, forwarded to Bob.
>>>>
>>>>         - Robert
>>>>
>>>>         On 3/1/2015 2:56 PM, Mark S. Miller wrote:
>>>>>         No, the 2-vat interactions never use, or engage in any way
>>>>>         with, vines, promise3Desc or far3Desc.
>>>>>
>>>>>
>>>>>         On Sun, Mar 1, 2015 at 9:37 AM, Robert Withers
>>>>>         <[email protected]
>>>>>         <mailto:[email protected]>> wrote:
>>>>>
>>>>>             I have a question about elib. Do you use promise3Desc
>>>>>             and far3Desc for 2-vat interactions such that a vine
>>>>>             is always in play in any interaction?
>>>>>
>>>>>             - Robert
>>>>>
>>>>>
>>>>>             Rob Withers <[email protected]
>>>>>             <mailto:[email protected]>> wrote:
>>>>>
>>>>>             Mark, your instincts were right on, it seems.  I have
>>>>>             an issue with my use of the Vine and on reflection it
>>>>>             makes perfect sense. I am bending the send from Carol
>>>>>             to Alice over to Bob, so as it is a 3-way interaction,
>>>>>             I need a Vine.  In analyzing ELib code, you have 9
>>>>>             references to the Vine's constructor, while I only
>>>>>             have 7 (minus an extra unused constructor I have).  It
>>>>>             is going to require some digging to unearth what I am
>>>>>             missing, but the direction is clear.  The place it
>>>>>             blows up is in my ProxyResolver.resolve() method, as
>>>>>             the WeakReference has lost the ref.  However, this is
>>>>>             not where the reference is maintained.  I suspect it
>>>>>             may be a lack of an IdentityManager.
>>>>>
>>>>>             I republished my code to:
>>>>>             https://github.com/tooantuh/pauwau. The tests pass,
>>>>>             though there is an issue with the RefTests and
>>>>>             TestPauwau2VatException, as well as this issue
>>>>>             affecting TestPauwau3VatFollowOnSend. Additionally,
>>>>>             the presentation tests need to be run one at a time as
>>>>>             stopping and starting the Introducers can step on each
>>>>>             other.
>>>>>
>>>>>             thank you,
>>>>>             Robert
>>>>>
>>>>>             On 2/22/2015 8:02 PM, Mark S. Miller wrote:
>>>>>>             Have you looked at the Vine? Search for "Vine" at
>>>>>>             http://erights.org/elib/distrib/captp/index.html
>>>>>>             and in the source code of
>>>>>>             https://code.google.com/p/caja-captp/
>>>>>>
>>>>>>             I don't quite understand your question, so I'm not
>>>>>>             sure if this is even relevant to the answer. Is it?
>>>>>>
>>>>>>
>>>>>>
>>>>>>             On Sun, Feb 22, 2015 at 5:51 PM, Rob Withers
>>>>>>             <[email protected]
>>>>>>             <mailto:[email protected]>> wrote:
>>>>>>
>>>>>>                 I found some more info: it looks as if the Ref in
>>>>>>                 Alice's ProxyResolver is being GCed, before
>>>>>>                 resolution from Bob. This is specific to my
>>>>>>                 machinery, but knowing how Elib maintains a
>>>>>>                 reference to the Ref, in this case, may help make
>>>>>>                 mine better. How does Elib handle this?
>>>>>>
>>>>>>                 Thank you,
>>>>>>                 - Robert
>>>>>>
>>>>>>
>>>>>>                 On 2/22/2015 6:19 PM, Rob Withers wrote:
>>>>>>>                 I am stuck, both conceptually, as well as
>>>>>>>                 understanding code I wrote a long while ago.  I
>>>>>>>                 was hoping to gain a little insight from the
>>>>>>>                 list of the insides of resolution redirection in
>>>>>>>                 the 3-way case.  The recent change I have made
>>>>>>>                 results from my thinking I finally understand
>>>>>>>                 the ordering that MirandaMethods ensure.  I made
>>>>>>>                 changes such that a whenMoreResolved directly
>>>>>>>                 follows the message that generates is by adding
>>>>>>>                 to the front of the msg queue.
>>>>>>>
>>>>>>>                 In the 3-way case, Carol is sending a message to
>>>>>>>                 Alice, passing Bob.  Alice receives the message
>>>>>>>                 and executes, which sends a message to Bob, then
>>>>>>>                 returns the result to Carol.  In Alice's vat,
>>>>>>>                 the DelayedRedirector is resolved to the
>>>>>>>                 RemotePromise of the call to Bob, the return of
>>>>>>>                 Alice's computation and I think it sends
>>>>>>>                 whenMoreResolved to the proxy of the new promise
>>>>>>>                 resolver of the send to Bob.  What little
>>>>>>>                 tracing I have I am posting below, as well as
>>>>>>>                 the DelayedRedirector value() and the
>>>>>>>                 ProxyResolver resolve() code, at the bottom.
>>>>>>>                 However, this is my question, what should the
>>>>>>>                 redirector do in Alice's Vat to propagate the
>>>>>>>                 resolution from Bob, back to Carol?
>>>>>>>
>>>>>>>                 Thank you,
>>>>>>>                 - Robert
>>>>>>>
>>>>>>>
>>>>>>>                 // There are 3 messages sent to Bob, from Alice:
>>>>>>>                 //     1) getTheAnswer, which returns 42,
>>>>>>>                 //     2) *hashCode, again 42* and
>>>>>>>                 //     3) *whenMoreResolved*, to forward to the
>>>>>>>                 redirector back in Alice.
>>>>>>>
>>>>>>>                 0 [main] INFO
>>>>>>>                 cc.ganymede.pauwau.presentation.AbstractPauwauTest
>>>>>>>                 - 3 Introducers starting
>>>>>>>                 549 [main] INFO
>>>>>>>                 cc.ganymede.pauwau.presentation.AbstractPauwauTest
>>>>>>>                 - 3 Introducers on the air
>>>>>>>                 4553 [main] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: -1 action: lookupSwiss
>>>>>>>                 args:
>>>>>>>                 [497273074681788564315291637588644948944089734358])
>>>>>>>                 4952 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: null action:
>>>>>>>                 lookupSwiss args:
>>>>>>>                 [497273074681788564315291637588644948944089734358])
>>>>>>>                 4958 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 1 action: value args: [NearRefImpl(hash:
>>>>>>>                 109537538, receiver: TestObject)])
>>>>>>>                 4998 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 1 action: value
>>>>>>>                 args: [FarRefImpl(hash: 68783569)])
>>>>>>>                 5353 [main] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: -1 action: lookupSwiss
>>>>>>>                 args:
>>>>>>>                 [-686254831702855955980329529540587585277617841038])
>>>>>>>                 5593 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: null action:
>>>>>>>                 lookupSwiss args:
>>>>>>>                 [-686254831702855955980329529540587585277617841038])
>>>>>>>                 5593 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 1 action: value args: [NearRefImpl(hash:
>>>>>>>                 1530099003, receiver: TestObject)])
>>>>>>>                 6201 [main] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: -1
>>>>>>>                 answerId: -2 resolverId: -2 action:
>>>>>>>                 redirectForTheAnswer args:
>>>>>>>                 [RemotePromiseRefImpl(hash: 1034568234)])
>>>>>>>                 6203 [main] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -2 resolverId: -2 action: provideFor
>>>>>>>                 args:
>>>>>>>                 [-568687285196004884954480990488973591228663758441,
>>>>>>>                 RemotePromiseRefImpl(hash: 1034568234),
>>>>>>>                 -676914875674370369045480105305401075435688776666])
>>>>>>>                 6239 [main] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: -2
>>>>>>>                 answerId: -3 resolverId: -3 action: hashCode
>>>>>>>                 args: [])
>>>>>>>                 6255 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -2 resolverId: null action: provideFor
>>>>>>>                 args:
>>>>>>>                 [-568687285196004884954480990488973591228663758441,
>>>>>>>                 NearRefImpl(hash: 1530099003, receiver:
>>>>>>>                 TestObject),
>>>>>>>                 -676914875674370369045480105305401075435688776666])
>>>>>>>                 6259 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 2 action: value args: [NearRefImpl(hash:
>>>>>>>                 1323165787, receiver:
>>>>>>>                 cc.ganymede.pauwau.presentation.lib.vat.Vine@4842def1)])
>>>>>>>                 6403 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: -1 action: acceptFrom
>>>>>>>                 args:
>>>>>>>                 [HouseAtreides:10003/-687934017861573292334955567350102524989066643525,
>>>>>>>                 -676914875674370369045480105305401075435688776666,
>>>>>>>                 cc.ganymede.pauwau.presentation.lib.vat.Vine@6a8400ff])
>>>>>>>                 6410 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: -1
>>>>>>>                 answerId: -2 resolverId: null action:
>>>>>>>                 redirectForTheAnswer args:
>>>>>>>                 [RemotePromiseRefImpl(hash: 598908224)])
>>>>>>>                 6411 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: -2
>>>>>>>                 answerId: -3 resolverId: null action: hashCode
>>>>>>>                 args: [])
>>>>>>>                 6411 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: -1
>>>>>>>                 answerId: -2 resolverId: -2 action: getTheAnswer
>>>>>>>                 args: [])
>>>>>>>                 6412 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverMessage(receiverId: -2
>>>>>>>                 answerId: -3 resolverId: -3 action: hashCode
>>>>>>>                 args: [])
>>>>>>>                 6412 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 -2 action: whenMoreResolved args:
>>>>>>>                 [RedirectorProxy: FarRefImpl(hash: 177595052)])
>>>>>>>                 6766 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: 0
>>>>>>>                 answerId: -1 resolverId: null action: acceptFrom
>>>>>>>                 args:
>>>>>>>                 [HouseAtreides:10003/-687934017861573292334955567350102524989066643525,
>>>>>>>                 -676914875674370369045480105305401075435688776666,
>>>>>>>                 FarRefImpl(hash: 690984748)])
>>>>>>>                 6767 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: -1
>>>>>>>                 answerId: -2 resolverId: null action:
>>>>>>>                 getTheAnswer args: [])
>>>>>>>                 6767 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: DeliverMessage(receiverId: -2
>>>>>>>                 answerId: -3 resolverId: null action: hashCode
>>>>>>>                 args: [])
>>>>>>>                 6767 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: -2 action:
>>>>>>>                 whenMoreResolved args: [NearRefImpl(hash:
>>>>>>>                 363771261, receiver: RedirectorProxy:
>>>>>>>                 FarRefImpl(hash: 196981675))])
>>>>>>>                 6768 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 2 action: value args: [NearRefImpl(hash:
>>>>>>>                 1530099003, receiver: TestObject)])
>>>>>>>                 6769 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 3 action: value args: [NearRefImpl(hash:
>>>>>>>                 790206055, receiver: 42)])
>>>>>>>                 *6770 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 4 action: value args: [NearRefImpl(hash:
>>>>>>>                 878991039, receiver: 42)])**
>>>>>>>                 **6771 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 5 action: value args: [NearRefImpl(hash:
>>>>>>>                 790206055, receiver: 42)])**
>>>>>>>                 *6805 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 2 action: value
>>>>>>>                 args: [FarRefImpl(hash: 1332394016)])
>>>>>>>                 6805 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 3 action: value
>>>>>>>                 args: [42])
>>>>>>>                 *6805 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 4 action: value
>>>>>>>                 args: [42])**
>>>>>>>                 **6805 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 5 action: value
>>>>>>>                 args: [42])**
>>>>>>>                 *6806 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: DeliverOnlyMessage(receiverId:
>>>>>>>                 3 action: value args: [42])
>>>>>>>                 19932 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -1)
>>>>>>>                 19934 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -2)
>>>>>>>                 19934 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -3)
>>>>>>>                 19984 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -1)
>>>>>>>                 19984 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -2)
>>>>>>>                 19985 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -3)
>>>>>>>                 29679 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -1)
>>>>>>>                 29680 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 1 action: value
>>>>>>>                 args: [FarRefImpl(hash: 734824022)])
>>>>>>>                 29680 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 2 action: value
>>>>>>>                 args: [FarRefImpl(hash: 1223086084)])
>>>>>>>                 29680 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message:
>>>>>>>                 DeliverOnlyMessage(receiverId: 3 action: value
>>>>>>>                 args: [42])
>>>>>>>                 29681 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -1)
>>>>>>>                 29681 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -2)
>>>>>>>                 29682 [third-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 sending message: GCAnswerMessage(answerId: -2)
>>>>>>>                 29722 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -1)
>>>>>>>                 29722 [second-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -2)
>>>>>>>                 29726 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -1)
>>>>>>>                 29726 [first-vat] DEBUG
>>>>>>>                 cc.ganymede.pauwau.presentation.PauwauTerminal -
>>>>>>>                 receiving message: GCAnswerMessage(answerId: -2)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                 *// DelayedRedirector code:*
>>>>>>>                     public void value(Object obj) throws
>>>>>>>                 NotResolvedException {
>>>>>>>                 if(resolver == null)
>>>>>>>                 return;
>>>>>>>
>>>>>>>                 if(resolver.isFresh()) {
>>>>>>>                 resolver.resolve(obj);
>>>>>>>                 resolver = null;
>>>>>>>                 return;
>>>>>>>                         }
>>>>>>>
>>>>>>>                 if(RefUtil.isLocal(obj)) {
>>>>>>>                 resolver.resolve(obj);
>>>>>>>                 resolver = null;
>>>>>>>                 return;
>>>>>>>                         }
>>>>>>>
>>>>>>>                         Ref ref = (Ref)RefUtil.wrap(obj,
>>>>>>>                 resolver.handler.getVat());
>>>>>>>                 boolean isLocalToResolverScope = false;
>>>>>>>                         try {
>>>>>>>                 isLocalToResolverScope =
>>>>>>>                 RefUtil.isLocalToScope(resolver.handler.scope, ref);
>>>>>>>                 if(isLocalToResolverScope) {
>>>>>>>                 resolver.resolve(obj);
>>>>>>>                     resolver = null;
>>>>>>>                     return;
>>>>>>>                             }
>>>>>>>                         } catch (Exception e) {
>>>>>>>                 reactToLostClient(e);
>>>>>>>                         }
>>>>>>>
>>>>>>>                 Pair<PromiseRefImpl, Resolver> pair =
>>>>>>>                 RefUtil.promise(ref.getVat());
>>>>>>>                 Redirector redirector = new
>>>>>>>                 Redirector((ProxyResolver) pair.second());
>>>>>>>                 resolver.getProxy().whenResolved(redirector);
>>>>>>>                 resolver.resolve(pair.first());
>>>>>>>                 resolver = null;
>>>>>>>                     }
>>>>>>>
>>>>>>>
>>>>>>>                 *// ProxyResolver code:*
>>>>>>>                     public void resolve(final Object result)
>>>>>>>                 throws NotResolvedException {
>>>>>>>                 handler.scope.getVat().sendRunnable(new Runnable() {
>>>>>>>                 public void run() {
>>>>>>>                     if(ref == null)
>>>>>>>                 return;
>>>>>>>                 if(ref.get() == null)
>>>>>>>                 return;
>>>>>>>                 if(Exception.class.isAssignableFrom(result.getClass()))
>>>>>>>                 {
>>>>>>>                     }
>>>>>>>                     Ref newRef = RefUtil.wrap(result,
>>>>>>>                 handler.scope.getVat());
>>>>>>>                     try {
>>>>>>>                         if (newRef == null)
>>>>>>>                 ref.get().getRefImpl().becomeContext(null);
>>>>>>>                         else
>>>>>>>                 ref.get().getRefImpl().becomeContext(newRef.getRefImpl());
>>>>>>>                 if(RefUtil.isResolved(newRef.getRefImpl())) {
>>>>>>>                 handler = null;
>>>>>>>                 ref = null;
>>>>>>>                         }
>>>>>>>                     } catch (NotResolvedException e) {
>>>>>>>                         // TODO Auto-generated catch block
>>>>>>>                 e.printStackTrace();
>>>>>>>                     }
>>>>>>>                 }});
>>>>>>>                     }
>>>>>>>
>>>>>>
>>>>>>
>>>>>>                 _______________________________________________
>>>>>>                 e-lang mailing list
>>>>>>                 [email protected]
>>>>>>                 <mailto:[email protected]>
>>>>>>                 http://www.eros-os.org/mailman/listinfo/e-lang
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>             -- 
>>>>>>                 Cheers,
>>>>>>                 --MarkM
>>>>>>
>>>>>>
>>>>>>             _______________________________________________
>>>>>>             e-lang mailing list
>>>>>>             [email protected] <mailto:[email protected]>
>>>>>>             http://www.eros-os.org/mailman/listinfo/e-lang
>>>>>
>>>>>
>>>>>             _______________________________________________
>>>>>             e-lang mailing list
>>>>>             [email protected] <mailto:[email protected]>
>>>>>             http://www.eros-os.org/mailman/listinfo/e-lang
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>         -- 
>>>>>             Cheers,
>>>>>             --MarkM
>>>>>
>>>>>
>>>>>         _______________________________________________
>>>>>         e-lang mailing list
>>>>>         [email protected] <mailto:[email protected]>
>>>>>         http://www.eros-os.org/mailman/listinfo/e-lang
>>>>
>>>
>>
>>
>>         _______________________________________________
>>         e-lang mailing list
>>         [email protected] <mailto:[email protected]>
>>         http://www.eros-os.org/mailman/listinfo/e-lang
>>
>>
>>
>>
>>     -- 
>>         Cheers,
>>         --MarkM
>>
>>
>>     _______________________________________________
>>     e-lang mailing list
>>     [email protected] <mailto:[email protected]>
>>     http://www.eros-os.org/mailman/listinfo/e-lang
>
>
>     _______________________________________________
>     e-lang mailing list
>     [email protected] <mailto:[email protected]>
>     http://www.eros-os.org/mailman/listinfo/e-lang
>
>
>
>
> -- 
>     Cheers,
>     --MarkM


--------------010905080509030902070204
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Ty=
pe">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    Oh Jesus, 8 months ago seems so long. I think I said it wrong
    because I don't mean to do so, burn my bridges.<br>
    <br>
    I have looked back at what you built, Mark, and the diagram showing
    this and it's really fine. I like that it shows that temporal flow
    as I think it is a unique aspect of Elib. Thank you.<br>
    <br>
    Robert <br>
    <br>
    <br>
    <div class=3D"moz-cite-prefix">On 11/18/2015 02:40 PM, Mark S. Miller
      wrote:<br>
    </div>
    <blockquote
cite=3D"mid:CABHxS9gg5RXPSxmC8xKd2ce+XcFBUm5VZyRqy1qVGyLoe7=3DOwg-Rq2MYuBUFGs@public.gmane.org=
ail.com"
      type=3D"cite">
      <div dir=3D"ltr">Note that this is an old message that may be
        redundant with other messages from around the same time. I do
        not know why this one was stuck in the moderator queue or why I
        had not noticed it till now. I did just notice it and release
        it. Sorry for the temporal confusion.
        <div><br>
        </div>
        <div><br>
          <div><br>
          </div>
        </div>
      </div>
      <div class=3D"gmail_extra"><br>
        <div class=3D"gmail_quote">On Sat, Mar 7, 2015 at 7:28 PM, Rob
          Withers <span dir=3D"ltr">&lt;<a moz-do-not-send=3D"true"
              href=3D"mailto:[email protected]" target=3D"_blank=
">[email protected]</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor=3D"#FFFFFF" text=3D"#000000"> I truly hope not,
              Mark.=C2=A0 I have this tendency to explicitly burn bridges
              when I perceive they are burned, to clarify and out of
              frustration that I keep bouncing.=C2=A0 My apologies for th=
at
              as it helps no one, as well as my lack of patience for a
              response.=C2=A0 I had not realized I had posted such a
              challenging question.<br>
              <br>
              In consideration, if I may suggest the following.<br>
              <br>
              <ol>
                <li>Carol sends to Alice with a ref to Bob and Alice
                  redirects a call to Bob, returning a RemotePromise
                  both in Carol and in Alice.</li>
                <li>3-way: Carol sends a provideFor to Bob and Alice
                  sends an AcceptFrom to Bob.</li>
                <li>Carol sends a followOn to Alice's first resolution,
                  which is a RemotePromise to Bob, so this flows to Bob.<=
/li>
                <li>3-way: In Alice, the followOn should become a 3-way
                  to the followOn Resolver in Carol.=C2=A0 So Alice would
                  send a provideFor to Carol and Bob would send an
                  AcceptFrom to Carol and send the result of the
                  followOn to the gift resolver in Carol. </li>
              </ol>
              I think I am saying this the way I am thinking it.<br>
              <br>
              Thank you.
              <div>
                <div class=3D"h5"><br>
                  <br>
                  <div>On 3/7/2015 5:07 PM, Mark S. Miller wrote:<br>
                  </div>
                  <blockquote type=3D"cite">
                    <div dir=3D"ltr">Wait wait apologies! You did nothing
                      at all to offend!=C2=A0Really!
                      <div><br>
                      </div>
                      <div>I was just saying to a current houseguest
                        last night, as close as I can remember:</div>
                      <div><br>
                      </div>
                      <div>"Have you seen the question Rob Withers has
                        asked lately on e-lang about captp? It relates
                        to race conditions and GC, but I haven't yet
                        been able to reload enough context to think
                        about it. Could you have a look?" We then went
                        off on a long discussion on race conditions in
                        captp-like systems x gc x partition x malice,
                        how difficult it is to do a full case analysis
                        of the cross product by hand, and how much
                        automated tools could help. Sadly, we did not
                        get back to the subject of your question.</div>
                      <div><br>
                      </div>
                      <div>True story. I am posting this without first
                        checking with the houseguest, which is why I'm
                        omitting their name.</div>
                      <div><br>
                      </div>
                      <div>I should have said something to explain my
                        lack of response. The rudeness really is mine.</d=
iv>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                    </div>
                    <div class=3D"gmail_extra"><br>
                      <div class=3D"gmail_quote">On Sat, Mar 7, 2015 at
                        3:28 PM, Rob Withers <span dir=3D"ltr">&lt;<a
                            moz-do-not-send=3D"true"
                            href=3D"mailto:[email protected]"
                            target=3D"_blank"><a class=3D"moz-txt-link-ab=
breviated" href=3D"mailto:[email protected]">robert.w.withers@gm=
ail.com</a></a>&gt;</span>
                        wrote:<br>
                        <blockquote class=3D"gmail_quote" style=3D"margin=
:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div bgcolor=3D"#FFFFFF" text=3D"#000000"> Than=
ks
                            for all the reticent help over the years,
                            everyone.=C2=A0 It's been fun.=C2=A0 Such a p=
ity that
                            that help seems permanently revoked, like an
                            untrusted capability.=C2=A0 I must not have
                            participated well in the social context, but
                            that is par for the course for folks with
                            Aspergers, I am learning.=C2=A0 I just can't =
ever
                            seem to say the right thing and more often
                            than not, I piss people off.=C2=A0 The issue =
is I
                            truly just don't get it.=C2=A0 <br>
                            <br>
                            Best regards, <br>
                            <div>Robert</div>
                            <div>
                              <div> <br>
                                <div>On 3/4/2015 9:27 AM, Rob Withers
                                  wrote:<br>
                                </div>
                                <blockquote type=3D"cite"> Might someone
                                  be able to comment on this, please?=C2=A0
                                  It would help me a great deal.=C2=A0 I =
do
                                  not think it is the unimplemented
                                  far3Desc situation.<br>
                                  <br>
                                  Thanks,<br>
                                  Robert<br>
                                  <br>
                                  <div>On 3/1/2015 3:12 PM, Rob Withers
                                    wrote:<br>
                                  </div>
                                  <blockquote type=3D"cite"> I see.=C2=A0=
 Could
                                    you comment on how a Vine (and
                                    promise3Desc/far3Desc) get
                                    introduced into the machinery when a
                                    followOn msg gets forwarded to a
                                    third vat?=C2=A0 In my example,
                                    redirectForTheAnswer sends
                                    getTheAnswer to Bob and returns a
                                    RemotePromise, which receives a
                                    hashCode followOn msg, forwarded to
                                    Bob.<br>
                                    <br>
                                    - Robert<br>
                                    <br>
                                    <div>On 3/1/2015 2:56 PM, Mark S.
                                      Miller wrote:<br>
                                    </div>
                                    <blockquote type=3D"cite">
                                      <div dir=3D"ltr">No, the 2-vat
                                        interactions never use, or
                                        engage in any way with, vines,
                                        promise3Desc or far3Desc.
                                        <div><br>
                                        </div>
                                      </div>
                                      <div class=3D"gmail_extra"><br>
                                        <div class=3D"gmail_quote">On Sun=
,
                                          Mar 1, 2015 at 9:37 AM, Robert
                                          Withers <span dir=3D"ltr">&lt;<=
a
                                              moz-do-not-send=3D"true"
                                              href=3D"mailto:robert.w.wit=
[email protected]"
                                              target=3D"_blank"><a class=3D=
"moz-txt-link-abbreviated" href=3D"mailto:[email protected]">rob=
[email protected]</a></a>&gt;</span>
                                          wrote:<br>
                                          <blockquote
                                            class=3D"gmail_quote"
                                            style=3D"margin:0 0 0
                                            .8ex;border-left:1px #ccc
                                            solid;padding-left:1ex">I
                                            have a question about elib.
                                            Do you use promise3Desc and
                                            far3Desc for 2-vat
                                            interactions such that a
                                            vine is always in play in
                                            any interaction?<br>
                                            <br>
                                            - Robert
                                            <div>
                                              <div><br>
                                                <br>
                                                Rob Withers &lt;<a
                                                  moz-do-not-send=3D"true=
"
href=3D"mailto:[email protected]" target=3D"_blank"><a class=3D"=
moz-txt-link-abbreviated" href=3D"mailto:[email protected]">robe=
[email protected]</a></a>&gt;


                                                wrote:<br>
                                                <br>
                                                Mark, your instincts
                                                were right on, it
                                                seems.=C2=A0 I have an is=
sue
                                                with my use of the Vine
                                                and on reflection it
                                                makes perfect sense. I
                                                am bending the send from
                                                Carol to Alice over to
                                                Bob, so as it is a 3-way
                                                interaction, I need a
                                                Vine.=C2=A0 In analyzing =
ELib
                                                code, you have 9
                                                references to the Vine's
                                                constructor, while I
                                                only have 7 (minus an
                                                extra unused constructor
                                                I have).=C2=A0 It is goin=
g to
                                                require some digging to
                                                unearth what I am
                                                missing, but the
                                                direction is clear.=C2=A0=
 The
                                                place it blows up is in
                                                my
                                                ProxyResolver.resolve()
                                                method, as the
                                                WeakReference has lost
                                                the ref.=C2=A0 However, t=
his
                                                is not where the
                                                reference is
                                                maintained.=C2=A0 I suspe=
ct
                                                it may be a lack of an
                                                IdentityManager.<br>
                                                <br>
                                                I republished my code
                                                to: <a
                                                  moz-do-not-send=3D"true=
"
href=3D"https://github.com/tooantuh/pauwau" target=3D"_blank"><a class=3D=
"moz-txt-link-freetext" href=3D"https://github.com/tooantuh/pauwau">https=
://github.com/tooantuh/pauwau</a></a>.=C2=A0




                                                The tests pass, though
                                                there is an issue with
                                                the RefTests and
                                                TestPauwau2VatException,
                                                as well as this issue
                                                affecting
                                                TestPauwau3VatFollowOnSen=
d.=C2=A0
                                                Additionally, the
                                                presentation tests need
                                                to be run one at a time
                                                as stopping and starting
                                                the Introducers can step
                                                on each other.<br>
                                                <br>
                                                thank you,<br>
                                                Robert<br>
                                                <br>
                                                <div>On 2/22/2015 8:02
                                                  PM, Mark S. Miller
                                                  wrote:<br>
                                                </div>
                                                <blockquote type=3D"cite"=
>
                                                  <div dir=3D"ltr">Have
                                                    you looked at the
                                                    Vine? Search for
                                                    "Vine" at=C2=A0<a
                                                      moz-do-not-send=3D"=
true"
href=3D"http://erights.org/elib/distrib/captp/index.html" target=3D"_blan=
k"><a class=3D"moz-txt-link-freetext" href=3D"http://erights.org/elib/dis=
trib/captp/index.html">http://erights.org/elib/distrib/captp/index.html</=
a></a>
                                                    <div>and in the
                                                      source code of=C2=A0=
<a
moz-do-not-send=3D"true" href=3D"https://code.google.com/p/caja-captp/"
                                                        target=3D"_blank"=
><a class=3D"moz-txt-link-freetext" href=3D"https://code.google.com/p/caj=
a-captp/">https://code.google.com/p/caja-captp/</a></a></div>
                                                    <div><br>
                                                    </div>
                                                    <div>I don't quite
                                                      understand your
                                                      question, so I'm
                                                      not sure if this
                                                      is even relevant
                                                      to the answer. Is
                                                      it?</div>
                                                    <div><br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                  </div>
                                                  <div
                                                    class=3D"gmail_extra"=
><br>
                                                    <div
                                                      class=3D"gmail_quot=
e">On
                                                      Sun, Feb 22, 2015
                                                      at 5:51 PM, Rob
                                                      Withers <span
                                                        dir=3D"ltr">&lt;<=
a
moz-do-not-send=3D"true" href=3D"mailto:[email protected]"
                                                          target=3D"_blan=
k"><a class=3D"moz-txt-link-abbreviated" href=3D"mailto:robert.w.withers@=
gmail.com">[email protected]</a></a>&gt;</span>
                                                      wrote:<br>
                                                      <blockquote
                                                        class=3D"gmail_qu=
ote"
                                                        style=3D"margin:0
                                                        0 0
                                                        .8ex;border-left:=
1px
                                                        #ccc
                                                        solid;padding-lef=
t:1ex">
                                                        <div
                                                          bgcolor=3D"#FFF=
FFF"
                                                          text=3D"#000000=
">
                                                          I found some
                                                          more info: it
                                                          looks as if
                                                          the Ref in
                                                          Alice's
                                                          ProxyResolver
                                                          is being GCed,
                                                          before
                                                          resolution
                                                          from Bob.=C2=A0
                                                          This is
                                                          specific to my
                                                          machinery, but
                                                          knowing how
                                                          Elib maintains
                                                          a reference to
                                                          the Ref, in
                                                          this case, may
                                                          help make mine
                                                          better. How
                                                          does Elib
                                                          handle this?<br=
>
                                                          <br>
                                                          Thank you,<br>
                                                          - Robert
                                                          <div>
                                                          <div><br>
                                                          <br>
                                                          <div>On
                                                          2/22/2015 6:19
                                                          PM, Rob
                                                          Withers wrote:<=
br>
                                                          </div>
                                                          <blockquote
                                                          type=3D"cite"> =
I
                                                          am stuck, both
                                                          conceptually,
                                                          as well as
                                                          understanding
                                                          code I wrote a
                                                          long while
                                                          ago.=C2=A0 I wa=
s
                                                          hoping to gain
                                                          a little
                                                          insight from
                                                          the list of
                                                          the insides of
                                                          resolution
                                                          redirection in
                                                          the 3-way
                                                          case.=C2=A0 The
                                                          recent change
                                                          I have made
                                                          results from
                                                          my thinking I
                                                          finally
                                                          understand the
                                                          ordering that
                                                          MirandaMethods
                                                          ensure.=C2=A0 I
                                                          made changes
                                                          such that a
                                                          whenMoreResolve=
d
                                                          directly
                                                          follows the
                                                          message that
                                                          generates is
                                                          by adding to
                                                          the front of
                                                          the msg
                                                          queue.=C2=A0 <b=
r>
                                                          <br>
                                                          In the 3-way
                                                          case, Carol is
                                                          sending a
                                                          message to
                                                          Alice, passing
                                                          Bob.=C2=A0 Alic=
e
                                                          receives the
                                                          message and
                                                          executes,
                                                          which sends a
                                                          message to
                                                          Bob, then
                                                          returns the
                                                          result to
                                                          Carol.=C2=A0 In
                                                          Alice's vat,
                                                          the
                                                          DelayedRedirect=
or
                                                          is resolved to
                                                          the
                                                          RemotePromise
                                                          of the call to
                                                          Bob, the
                                                          return of
                                                          Alice's
                                                          computation
                                                          and I think it
                                                          sends
                                                          whenMoreResolve=
d
                                                          to the proxy
                                                          of the new
                                                          promise
                                                          resolver of
                                                          the send to
                                                          Bob.=C2=A0 What
                                                          little tracing
                                                          I have I am
                                                          posting below,
                                                          as well as the
                                                          DelayedRedirect=
or

                                                          value() and
                                                          the
                                                          ProxyResolver
                                                          resolve()
                                                          code, at the
                                                          bottom.=C2=A0
                                                          However, this
                                                          is my
                                                          question, what
                                                          should the
                                                          redirector do
                                                          in Alice's Vat
                                                          to propagate
                                                          the resolution
                                                          from Bob, back
                                                          to Carol?<br>
                                                          <br>
                                                          Thank you,<br>
                                                          - Robert<br>
                                                          <br>
                                                          <br>
                                                          // There are 3
                                                          messages sent
                                                          to Bob, from
                                                          Alice:<br>
                                                          // =C2=A0=C2=A0=
=C2=A0 1)
                                                          getTheAnswer,
                                                          which returns
                                                          42, <br>
                                                          // =C2=A0=C2=A0=
=C2=A0 2) <b>hashCode,

                                                          again 42</b>
                                                          and <br>
                                                          //=C2=A0=C2=A0 =
=C2=A0 3) <b>whenMoreResolved</b>,
                                                          to forward to
                                                          the redirector
                                                          back in Alice.<=
br>
                                                          <br>
                                                          0 [main] INFO
                                                          cc.ganymede.pau=
wau.presentation.AbstractPauwauTest=C2=A0

                                                          - 3
                                                          Introducers
                                                          starting<br>
                                                          549 [main]
                                                          INFO
                                                          cc.ganymede.pau=
wau.presentation.AbstractPauwauTest=C2=A0
                                                          - 3
                                                          Introducers on
                                                          the air<br>
                                                          4553 [main]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          lookupSwiss
                                                          args:
                                                          [49727307468178=
8564315291637588644948944089734358])<br>
                                                          4952
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          lookupSwiss
                                                          args:
                                                          [49727307468178=
8564315291637588644948944089734358])<br>
                                                          4958
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          1 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          109537538,
                                                          receiver:
                                                          TestObject)])<b=
r>
                                                          4998
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          1 action:
                                                          value args:
                                                          [FarRefImpl(has=
h:
                                                          68783569)])<br>
                                                          5353 [main]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          lookupSwiss
                                                          args:
                                                          [-6862548317028=
55955980329529540587585277617841038])<br>
                                                          5593
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          lookupSwiss
                                                          args:
                                                          [-6862548317028=
55955980329529540587585277617841038])<br>
                                                          5593
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          1 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          1530099003,
                                                          receiver:
                                                          TestObject)])<b=
r>
                                                          6201 [main]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          -2 action:
                                                          redirectForTheA=
nswer
                                                          args:
                                                          [RemotePromiseR=
efImpl(hash:
                                                          1034568234)])<b=
r>
                                                          6203 [main]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -2
                                                          resolverId: -2
                                                          action:
                                                          provideFor
                                                          args:
                                                          [-5686872851960=
04884954480990488973591228663758441,
                                                          RemotePromiseRe=
fImpl(hash:


                                                          1034568234),
-676914875674370369045480105305401075435688776666])<br>
                                                          6239 [main]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          -3 action:
                                                          hashCode args:
                                                          [])<br>
                                                          6255
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -2
                                                          resolverId:
                                                          null action:
                                                          provideFor
                                                          args:
                                                          [-5686872851960=
04884954480990488973591228663758441,
                                                          NearRefImpl(has=
h:

                                                          1530099003,
                                                          receiver:
                                                          TestObject),
                                                          -67691487567437=
0369045480105305401075435688776666])<br>
                                                          6259
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          2 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          1323165787,
                                                          receiver:
cc.ganymede.pauwau.presentation.lib.vat.Vine@4842def1)])<br>
                                                          6403
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          acceptFrom
                                                          args:
                                                          [HouseAtreides:=
10003/-687934017861573292334955567350102524989066643525,
-676914875674370369045480105305401075435688776666,
cc.ganymede.pauwau.presentation.lib.vat.Vine@6a8400ff])<br>
                                                          6410
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          null action:
                                                          redirectForTheA=
nswer
                                                          args:
                                                          [RemotePromiseR=
efImpl(hash:
                                                          598908224)])<br=
>
                                                          6411
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          null action:
                                                          hashCode args:
                                                          [])<br>
                                                          6411
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          -2 action:
                                                          getTheAnswer
                                                          args: [])<br>
                                                          6412
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          -3 action:
                                                          hashCode args:
                                                          [])<br>
                                                          6412
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          -2 action:
                                                          whenMoreResolve=
d
                                                          args:
                                                          [RedirectorProx=
y:
                                                          FarRefImpl(hash=
:

                                                          177595052)])<br=
>
                                                          6766
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          acceptFrom
                                                          args:
                                                          [HouseAtreides:=
10003/-687934017861573292334955567350102524989066643525,
                                                          -67691487567437=
0369045480105305401075435688776666,





                                                          FarRefImpl(hash=
:

                                                          690984748)])<br=
>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          null action:
                                                          getTheAnswer
                                                          args: [])<br>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(=
receiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          null action:
                                                          hashCode args:
                                                          [])<br>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          -2 action:
                                                          whenMoreResolve=
d
                                                          args:
                                                          [NearRefImpl(ha=
sh:
                                                          363771261,
                                                          receiver:
                                                          RedirectorProxy=
:
                                                          FarRefImpl(hash=
:

                                                          196981675))])<b=
r>
                                                          6768
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          2 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          1530099003,
                                                          receiver:
                                                          TestObject)])<b=
r>
                                                          6769
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          3 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          790206055,
                                                          receiver:
                                                          42)])<br>
                                                          <b>6770
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          4 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          878991039,
                                                          receiver:
                                                          42)])</b><b><br=
>
                                                          </b><b>6771
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          5 action:
                                                          value args:
                                                          [NearRefImpl(ha=
sh:
                                                          790206055,
                                                          receiver:
                                                          42)])</b><b><br=
>
                                                          </b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          2 action:
                                                          value args:
                                                          [FarRefImpl(has=
h:
                                                          1332394016)])<b=
r>
                                                          6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          <b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          4 action:
                                                          value args:
                                                          [42])</b><b><br=
>
                                                          </b><b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          5 action:
                                                          value args:
                                                          [42])</b><b><br=
>
                                                          </b>6806
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          19932
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          19934
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          19934
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -3)<br>
                                                          19984
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          19984
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          19985
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -3)<br>
                                                          29679
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          1 action:
                                                          value args:
                                                          [FarRefImpl(has=
h:
                                                          734824022)])<br=
>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          2 action:
                                                          value args:
                                                          [FarRefImpl(has=
h:
                                                          1223086084)])<b=
r>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMess=
age(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          29681
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          29681
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          29682
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          29722
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          29722
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          29726
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -1)<br>
                                                          29726
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pau=
wau.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage=
(answerId:
                                                          -2)<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <b>//
                                                          DelayedRedirect=
or
                                                          code:</b><br>
                                                          =C2=A0=C2=A0=C2=
=A0 public
                                                          void
                                                          value(Object
                                                          obj) throws
                                                          NotResolvedExce=
ption
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          if(resolver =3D=
=3D
                                                          null)<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          return;<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          if(resolver.isF=
resh())
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolv=
e(obj);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver =3D
                                                          null;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          return;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 }<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          if(RefUtil.isLo=
cal(obj))
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolv=
e(obj);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver =3D
                                                          null;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          return;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 }<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 Ref
                                                          ref =3D
                                                          (Ref)RefUtil.wr=
ap(obj,
resolver.handler.getVat());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          boolean
                                                          isLocalToResolv=
erScope
                                                          =3D false;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 try {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          isLocalToResolv=
erScope
                                                          =3D
                                                          RefUtil.isLocal=
ToScope(resolver.handler.scope,
                                                          ref);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          if(isLocalToRes=
olverScope)
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          resolver.resolv=
e(obj);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 resolver =3D
                                                          null;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 return;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 }<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 }
                                                          catch
                                                          (Exception e)
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          reactToLostClie=
nt(e);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 }<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          Pair&lt;Promise=
RefImpl,
                                                          Resolver&gt;
                                                          pair =3D
                                                          RefUtil.promise=
(ref.getVat());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          Redirector
                                                          redirector =3D
                                                          new
                                                          Redirector((Pro=
xyResolver)
pair.second());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.getPro=
xy().whenResolved(redirector);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolv=
e(pair.first());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver =3D
                                                          null;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 }<br>
                                                          <br>
                                                          <br>
                                                          <b>//
                                                          ProxyResolver
                                                          code:</b><br>
                                                          =C2=A0=C2=A0=C2=
=A0 public
                                                          void
                                                          resolve(final
                                                          Object result)
                                                          throws
                                                          NotResolvedExce=
ption
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          handler.scope.g=
etVat().sendRunnable(new
                                                          Runnable() {<br=
>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          public void
                                                          run() {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 if(ref =3D=3D
                                                          null)<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          return;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          if(ref.get()
                                                          =3D=3D null)<br=
>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          return;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          if(Exception.cl=
ass.isAssignableFrom(result.getClass()))
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 }<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 Ref newRef
                                                          =3D
                                                          RefUtil.wrap(re=
sult,
handler.scope.getVat());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 try {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 if
                                                          (newRef =3D=3D
                                                          null)<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          ref.get().getRe=
fImpl().becomeContext(null);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 else<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          ref.get().getRe=
fImpl().becomeContext(newRef.getRefImpl());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          if(RefUtil.isRe=
solved(newRef.getRefImpl()))
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          handler =3D
                                                          null;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          ref =3D null;<b=
r>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 }<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 } catch
                                                          (NotResolvedExc=
eption
                                                          e) {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 //
                                                          TODO
                                                          Auto-generated
                                                          catch block<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          e.printStackTra=
ce();<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0 }<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          }});<br>
                                                          =C2=A0=C2=A0=C2=
=A0 }<br>
                                                          <br>
                                                          </blockquote>
                                                          <br>
                                                          </div>
                                                          </div>
                                                        </div>
                                                        <br>
_______________________________________________<br>
                                                        e-lang mailing
                                                        list<br>
                                                        <a
                                                          moz-do-not-send=
=3D"true"
href=3D"mailto:[email protected]" target=3D"_blank"><a class=3D"moz=
-txt-link-abbreviated" href=3D"mailto:[email protected]">e-lang@mai=
l.eros-os.org</a></a><br>
                                                        <a
                                                          moz-do-not-send=
=3D"true"
href=3D"http://www.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank"=
><a class=3D"moz-txt-link-freetext" href=3D"http://www.eros-os.org/mailma=
n/listinfo/e-lang">http://www.eros-os.org/mailman/listinfo/e-lang</a></a>=
<br>
                                                        <br>
                                                      </blockquote>
                                                    </div>
                                                    <br>
                                                    <br clear=3D"all">
                                                    <div><br>
                                                    </div>
                                                    -- <br>
                                                    <div>=C2=A0 =C2=A0 Ch=
eers,<br>
                                                      =C2=A0 =C2=A0 --Mar=
kM</div>
                                                  </div>
                                                  <br>
                                                  <fieldset></fieldset>
                                                  <br>
                                                  <pre>__________________=
_____________________________
e-lang mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>
<a moz-do-not-send=3D"true" href=3D"http://www.eros-os.org/mailman/listin=
fo/e-lang" target=3D"_blank">http://www.eros-os.org/mailman/listinfo/e-la=
ng</a>
</pre>
                                                </blockquote>
                                                <br>
                                              </div>
                                            </div>
                                            <br>
_______________________________________________<br>
                                            e-lang mailing list<br>
                                            <a moz-do-not-send=3D"true"
                                              href=3D"mailto:e-lang@mail.=
eros-os.org"
                                              target=3D"_blank">e-lang@ma=
il.eros-os.org</a><br>
                                            <a moz-do-not-send=3D"true"
                                              href=3D"http://www.eros-os.=
org/mailman/listinfo/e-lang"
                                              target=3D"_blank">http://ww=
w.eros-os.org/mailman/listinfo/e-lang</a><br>
                                            <br>
                                          </blockquote>
                                        </div>
                                        <br>
                                        <br clear=3D"all">
                                        <div><br>
                                        </div>
                                        -- <br>
                                        <div>=C2=A0 =C2=A0 Cheers,<br>
                                          =C2=A0 =C2=A0 --MarkM</div>
                                      </div>
                                      <br>
                                      <fieldset></fieldset>
                                      <br>
                                      <pre>______________________________=
_________________
e-lang mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>
<a moz-do-not-send=3D"true" href=3D"http://www.eros-os.org/mailman/listin=
fo/e-lang" target=3D"_blank">http://www.eros-os.org/mailman/listinfo/e-la=
ng</a>
</pre>
                                    </blockquote>
                                    <br>
                                  </blockquote>
                                  <br>
                                </blockquote>
                                <br>
                              </div>
                            </div>
                          </div>
                          <br>
_______________________________________________<br>
                          e-lang mailing list<br>
                          <a moz-do-not-send=3D"true"
                            href=3D"mailto:[email protected]"
                            target=3D"_blank">[email protected]</a>=
<br>
                          <a moz-do-not-send=3D"true"
                            href=3D"http://www.eros-os.org/mailman/listin=
fo/e-lang"
                            target=3D"_blank">http://www.eros-os.org/mail=
man/listinfo/e-lang</a><br>
                          <br>
                        </blockquote>
                      </div>
                      <br>
                      <br clear=3D"all">
                      <div><br>
                      </div>
                      -- <br>
                      <div>=C2=A0 =C2=A0 Cheers,<br>
                        =C2=A0 =C2=A0 --MarkM</div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
e-lang mailing list
<a moz-do-not-send=3D"true" href=3D"mailto:[email protected]" targe=
t=3D"_blank">[email protected]</a>
<a moz-do-not-send=3D"true" href=3D"http://www.eros-os.org/mailman/listin=
fo/e-lang" target=3D"_blank">http://www.eros-os.org/mailman/listinfo/e-la=
ng</a>
</pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            e-lang mailing list<br>
            <a moz-do-not-send=3D"true"
              href=3D"mailto:[email protected]">[email protected]=
.org</a><br>
            <a moz-do-not-send=3D"true"
              href=3D"http://www.eros-os.org/mailman/listinfo/e-lang"
              rel=3D"noreferrer" target=3D"_blank">http://www.eros-os.org=
/mailman/listinfo/e-lang</a><br>
            <br>
          </blockquote>
        </div>
        <br>
        <br clear=3D"all">
        <div><br>
        </div>
        -- <br>
        <div class=3D"gmail_signature">=C2=A0 =C2=A0 Cheers,<br>
          =C2=A0 =C2=A0 --MarkM</div>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------010905080509030902070204--

--===============5947696094361716303==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
e-lang mailing list
[email protected]
http://www.eros-os.org/mailman/listinfo/e-lang

--===============5947696094361716303==--