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

"Mark S. Miller" <[email protected]> Wed, 18 Nov 2015 15:30:22 -0500
Newsgroups gmane.comp.lang.e.general
Message-ID <CABHxS9jNhfiJ3-o7mruT7VuNEC31UPS2wyNmdiWTq1qwhkEMAw@mail.gmail.com>
--===============8690072055989658002==
Content-Type: multipart/alternative; boundary=001a1142eda0f498700524d68281

--001a1142eda0f498700524d68281
Content-Type: text/plain; charset=UTF-8

Since it has been so long, as a reminder, the diagram/animation Rob refers
to is at
https://docs.google.com/presentation/d/1FWcSJfZITITckrXyfihpuPnX5xf0e4kOhCnsoRFyLfI/


On Wed, Nov 18, 2015 at 3:13 PM, Robert Withers <[email protected]>
wrote:

> 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]>
> 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]>[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]>[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]>[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>
>>>> 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>
>>>> http://erights.org/elib/distrib/captp/index.html
>>>> and in the source code of  <https://code.google.com/p/caja-captp/>
>>>> 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]>[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]>[email protected]
>>>>> <http://www.eros-os.org/mailman/listinfo/e-lang>
>>>>> http://www.eros-os.org/mailman/listinfo/e-lang
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>>     Cheers,
>>>>     --MarkM
>>>>
>>>>
>>>> _______________________________________________
>>>> e-lang mailing [email protected]://www.eros-os.org/mailman/listinfo/e-lang
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> e-lang mailing list
>>>> [email protected]
>>>> http://www.eros-os.org/mailman/listinfo/e-lang
>>>>
>>>>
>>>
>>>
>>> --
>>>     Cheers,
>>>     --MarkM
>>>
>>>
>>> _______________________________________________
>>> e-lang mailing [email protected]://www.eros-os.org/mailman/listinfo/e-lang
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> e-lang mailing list
>>> [email protected]
>>> http://www.eros-os.org/mailman/listinfo/e-lang
>>>
>>>
>>
>>
>> --
>>     Cheers,
>>     --MarkM
>>
>>
>> _______________________________________________
>> e-lang mailing [email protected]://www.eros-os.org/mailman/listinfo/e-lang
>>
>>
>>
>> _______________________________________________
>> e-lang mailing list
>> [email protected]
>> http://www.eros-os.org/mailman/listinfo/e-lang
>>
>>
>
>
> --
>     Cheers,
>     --MarkM
>
>
>


-- 
    Cheers,
    --MarkM

--001a1142eda0f498700524d68281
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Since it has been so long, as a reminder, the diagram/anim=
ation Rob refers to is at<div><a href=3D"https://docs.google.com/presentati=
on/d/1FWcSJfZITITckrXyfihpuPnX5xf0e4kOhCnsoRFyLfI/">https://docs.google.com=
/presentation/d/1FWcSJfZITITckrXyfihpuPnX5xf0e4kOhCnsoRFyLfI/</a><br></div>=
<div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Nov 18, 2015 at 3:13 PM, Robert Withers <span dir=3D"ltr">&lt;<=
a href=3D"mailto:[email protected]" target=3D"_blank">robert.w.wit=
[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    Oh Jesus, 8 months ago seems so long. I think I said it wrong
    because I don&#39;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&#39;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><div><div class=3D"h5">
    <br>
    <br>
    <div>On 11/18/2015 02:40 PM, Mark S. Miller
      wrote:<br>
    </div>
    <blockquote 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 href=3D"mailto:robert.w.withers@=
gmail.com" target=3D"_blank">[email protected]</a>&gt;</span>
          wrote:<br>
          <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-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 that
              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&#39;s first resolution,
                  which is a RemotePromise to Bob, so this flows to Bob.</l=
i>
                <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><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>&quot;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&#39;t yet
                        been able to reload enough context to think
                        about it. Could you have a look?&quot; 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&#39;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.</div=
>
                      <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 href=
=3D"mailto:[email protected]" target=3D"_blank"></a><a href=3D"mai=
lto:[email protected]" target=3D"_blank">[email protected]=
m</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"> Thanks
                            for all the reticent help over the years,
                            everyone.=C2=A0 It&#39;s been fun.=C2=A0 Such a=
 pity 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&#39;=
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&#39;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 C=
ould
                                    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 =
href=3D"mailto:[email protected]" target=3D"_blank"></a><a href=3D=
"mailto:[email protected]" target=3D"_blank">robert.w.withers@gmai=
l.com</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 href=3D"=
mailto:[email protected]" target=3D"_blank"></a><a href=3D"mailto:=
[email protected]" target=3D"_blank">[email protected]</a=
>&gt;


                                                wrote:<br>
                                                <br>
                                                Mark, your instincts
                                                were right on, it
                                                seems.=C2=A0 I have an issu=
e
                                                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 EL=
ib
                                                code, you have 9
                                                references to the Vine&#39;=
s
                                                constructor, while I
                                                only have 7 (minus an
                                                extra unused constructor
                                                I have).=C2=A0 It is going =
to
                                                require some digging to
                                                unearth what I am
                                                missing, but the
                                                direction is clear.=C2=A0 T=
he
                                                place it blows up is in
                                                my
                                                ProxyResolver.resolve()
                                                method, as the
                                                WeakReference has lost
                                                the ref.=C2=A0 However, thi=
s
                                                is not where the
                                                reference is
                                                maintained.=C2=A0 I suspect
                                                it may be a lack of an
                                                IdentityManager.<br>
                                                <br>
                                                I republished my code
                                                to: <a href=3D"https://gith=
ub.com/tooantuh/pauwau" target=3D"_blank"></a><a href=3D"https://github.com=
/tooantuh/pauwau" target=3D"_blank">https://github.com/tooantuh/pauwau</a>.=
=C2=A0




                                                The tests pass, though
                                                there is an issue with
                                                the RefTests and
                                                TestPauwau2VatException,
                                                as well as this issue
                                                affecting
                                                TestPauwau3VatFollowOnSend.=
=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
                                                    &quot;Vine&quot; at=C2=
=A0<a href=3D"http://erights.org/elib/distrib/captp/index.html" target=3D"_=
blank"></a><a href=3D"http://erights.org/elib/distrib/captp/index.html" tar=
get=3D"_blank">http://erights.org/elib/distrib/captp/index.html</a>
                                                    <div>and in the
                                                      source code of=C2=A0<=
a href=3D"https://code.google.com/p/caja-captp/" target=3D"_blank"></a><a h=
ref=3D"https://code.google.com/p/caja-captp/" target=3D"_blank">https://cod=
e.google.com/p/caja-captp/</a></div>
                                                    <div><br>
                                                    </div>
                                                    <div>I don&#39;t quite
                                                      understand your
                                                      question, so I&#39;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_quo=
te">On
                                                      Sun, Feb 22, 2015
                                                      at 5:51 PM, Rob
                                                      Withers <span dir=3D"=
ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank"></=
a><a href=3D"mailto:[email protected]" target=3D"_blank">robert.w.=
[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"#FF=
FFFF" text=3D"#000000">
                                                          I found some
                                                          more info: it
                                                          looks as if
                                                          the Ref in
                                                          Alice&#39;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 was
                                                          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
                                                          whenMoreResolved
                                                          directly
                                                          follows the
                                                          message that
                                                          generates is
                                                          by adding to
                                                          the front of
                                                          the msg
                                                          queue.=C2=A0 <br>
                                                          <br>
                                                          In the 3-way
                                                          case, Carol is
                                                          sending a
                                                          message to
                                                          Alice, passing
                                                          Bob.=C2=A0 Alice
                                                          receives the
                                                          message and
                                                          executes,
                                                          which sends a
                                                          message to
                                                          Bob, then
                                                          returns the
                                                          result to
                                                          Carol.=C2=A0 In
                                                          Alice&#39;s vat,
                                                          the
                                                          DelayedRedirector
                                                          is resolved to
                                                          the
                                                          RemotePromise
                                                          of the call to
                                                          Bob, the
                                                          return of
                                                          Alice&#39;s
                                                          computation
                                                          and I think it
                                                          sends
                                                          whenMoreResolved
                                                          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
                                                          DelayedRedirector

                                                          value() and
                                                          the
                                                          ProxyResolver
                                                          resolve()
                                                          code, at the
                                                          bottom.=C2=A0
                                                          However, this
                                                          is my
                                                          question, what
                                                          should the
                                                          redirector do
                                                          in Alice&#39;s Va=
t
                                                          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.pauwa=
u.presentation.AbstractPauwauTest=C2=A0

                                                          - 3
                                                          Introducers
                                                          starting<br>
                                                          549 [main]
                                                          INFO
                                                          cc.ganymede.pauwa=
u.presentation.AbstractPauwauTest=C2=A0
                                                          - 3
                                                          Introducers on
                                                          the air<br>
                                                          4553 [main]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          lookupSwiss
                                                          args:
                                                          [4972730746817885=
64315291637588644948944089734358])<br>
                                                          4952
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          lookupSwiss
                                                          args:
                                                          [4972730746817885=
64315291637588644948944089734358])<br>
                                                          4958
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          1 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          109537538,
                                                          receiver:
                                                          TestObject)])<br>
                                                          4998
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          1 action:
                                                          value args:
                                                          [FarRefImpl(hash:
                                                          68783569)])<br>
                                                          5353 [main]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          lookupSwiss
                                                          args:
                                                          [-686254831702855=
955980329529540587585277617841038])<br>
                                                          5593
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          lookupSwiss
                                                          args:
                                                          [-686254831702855=
955980329529540587585277617841038])<br>
                                                          5593
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          1 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          1530099003,
                                                          receiver:
                                                          TestObject)])<br>
                                                          6201 [main]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          -2 action:
                                                          redirectForTheAns=
wer
                                                          args:
                                                          [RemotePromiseRef=
Impl(hash:
                                                          1034568234)])<br>
                                                          6203 [main]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -2
                                                          resolverId: -2
                                                          action:
                                                          provideFor
                                                          args:
                                                          [-568687285196004=
884954480990488973591228663758441,
                                                          RemotePromiseRefI=
mpl(hash:


                                                          1034568234),
-676914875674370369045480105305401075435688776666])<br>
                                                          6239 [main]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          -3 action:
                                                          hashCode args:
                                                          [])<br>
                                                          6255
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -2
                                                          resolverId:
                                                          null action:
                                                          provideFor
                                                          args:
                                                          [-568687285196004=
884954480990488973591228663758441,
                                                          NearRefImpl(hash:

                                                          1530099003,
                                                          receiver:
                                                          TestObject),
                                                          -6769148756743703=
69045480105305401075435688776666])<br>
                                                          6259
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          2 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          1323165787,
                                                          receiver:
cc.ganymede.pauwau.presentation.lib.vat.Vine@4842def1)])<br>
                                                          6403
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId: -1
                                                          action:
                                                          acceptFrom
                                                          args:
                                                          [HouseAtreides:10=
003/-687934017861573292334955567350102524989066643525,
-676914875674370369045480105305401075435688776666,
cc.ganymede.pauwau.presentation.lib.vat.Vine@6a8400ff])<br>
                                                          6410
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          null action:
                                                          redirectForTheAns=
wer
                                                          args:
                                                          [RemotePromiseRef=
Impl(hash:
                                                          598908224)])<br>
                                                          6411
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          null action:
                                                          hashCode args:
                                                          [])<br>
                                                          6411
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          -2 action:
                                                          getTheAnswer
                                                          args: [])<br>
                                                          6412
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          -3 action:
                                                          hashCode args:
                                                          [])<br>
                                                          6412
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          -2 action:
                                                          whenMoreResolved
                                                          args:
                                                          [RedirectorProxy:
                                                          FarRefImpl(hash:

                                                          177595052)])<br>
                                                          6766
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          0 answerId: -1
                                                          resolverId:
                                                          null action:
                                                          acceptFrom
                                                          args:
                                                          [HouseAtreides:10=
003/-687934017861573292334955567350102524989066643525,
                                                          -6769148756743703=
69045480105305401075435688776666,





                                                          FarRefImpl(hash:

                                                          690984748)])<br>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -1 answerId:
                                                          -2 resolverId:
                                                          null action:
                                                          getTheAnswer
                                                          args: [])<br>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverMessage(re=
ceiverId:
                                                          -2 answerId:
                                                          -3 resolverId:
                                                          null action:
                                                          hashCode args:
                                                          [])<br>
                                                          6767
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          -2 action:
                                                          whenMoreResolved
                                                          args:
                                                          [NearRefImpl(hash=
:
                                                          363771261,
                                                          receiver:
                                                          RedirectorProxy:
                                                          FarRefImpl(hash:

                                                          196981675))])<br>
                                                          6768
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          2 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          1530099003,
                                                          receiver:
                                                          TestObject)])<br>
                                                          6769
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          3 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          790206055,
                                                          receiver:
                                                          42)])<br>
                                                          <b>6770
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          4 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          878991039,
                                                          receiver:
                                                          42)])</b><b><br>
                                                          </b><b>6771
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          5 action:
                                                          value args:
                                                          [NearRefImpl(hash=
:
                                                          790206055,
                                                          receiver:
                                                          42)])</b><b><br>
                                                          </b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          2 action:
                                                          value args:
                                                          [FarRefImpl(hash:
                                                          1332394016)])<br>
                                                          6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          <b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          4 action:
                                                          value args:
                                                          [42])</b><b><br>
                                                          </b><b>6805
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          5 action:
                                                          value args:
                                                          [42])</b><b><br>
                                                          </b>6806
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          19932
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          19934
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          19934
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -3)<br>
                                                          19984
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          19984
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          19985
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -3)<br>
                                                          29679
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          1 action:
                                                          value args:
                                                          [FarRefImpl(hash:
                                                          734824022)])<br>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          2 action:
                                                          value args:
                                                          [FarRefImpl(hash:
                                                          1223086084)])<br>
                                                          29680
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          DeliverOnlyMessag=
e(receiverId:
                                                          3 action:
                                                          value args:
                                                          [42])<br>
                                                          29681
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          29681
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          29682
                                                          [third-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - sending
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          29722
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          29722
                                                          [second-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          29726
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -1)<br>
                                                          29726
                                                          [first-vat]
                                                          DEBUG
                                                          cc.ganymede.pauwa=
u.presentation.PauwauTerminal=C2=A0
                                                          - receiving
                                                          message:
                                                          GCAnswerMessage(a=
nswerId:
                                                          -2)<br>
                                                          <br>
                                                          <br>
                                                          <br>
                                                          <b>//
                                                          DelayedRedirector
                                                          code:</b><br>
                                                          =C2=A0=C2=A0=C2=
=A0 public
                                                          void
                                                          value(Object
                                                          obj) throws
                                                          NotResolvedExcept=
ion
                                                          {<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.isFre=
sh())
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolve(=
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.isLoca=
l(obj))
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolve(=
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.wrap=
(obj,
resolver.handler.getVat());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          boolean
                                                          isLocalToResolver=
Scope
                                                          =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
                                                          isLocalToResolver=
Scope
                                                          =3D
                                                          RefUtil.isLocalTo=
Scope(resolver.handler.scope,
                                                          ref);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          if(isLocalToResol=
verScope)
                                                          {<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.resolve(=
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
                                                          reactToLostClient=
(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;PromiseRe=
fImpl,
                                                          Resolver&gt;
                                                          pair =3D
                                                          RefUtil.promise(r=
ef.getVat());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          Redirector
                                                          redirector =3D
                                                          new
                                                          Redirector((Proxy=
Resolver)
pair.second());<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.getProxy=
().whenResolved(redirector);<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          resolver.resolve(=
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
                                                          NotResolvedExcept=
ion
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          handler.scope.get=
Vat().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.clas=
s.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(resu=
lt,
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().getRefI=
mpl().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().getRefI=
mpl().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.isReso=
lved(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;<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 }<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
                                                          (NotResolvedExcep=
tion
                                                          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.printStackTrace=
();<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 href=3D"mailto:e=
[email protected]" target=3D"_blank"></a><a href=3D"mailto:e-lang@mail=
.eros-os.org" target=3D"_blank">[email protected]</a><br>
                                                        <a href=3D"http://w=
ww.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank"></a><a href=3D"ht=
tp://www.eros-os.org/mailman/listinfo/e-lang" 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>=C2=A0 =C2=A0 Chee=
rs,<br>
                                                      =C2=A0 =C2=A0 --MarkM=
</div>
                                                  </div>
                                                  <br>
                                                  <fieldset></fieldset>
                                                  <br>
                                                  <pre>____________________=
___________________________
e-lang mailing list
<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
os-os.org</a>
<a href=3D"http://www.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank=
">http://www.eros-os.org/mailman/listinfo/e-lang</a>
</pre>
                                                </blockquote>
                                                <br>
                                              </div>
                                            </div>
                                            <br>
_______________________________________________<br>
                                            e-lang mailing list<br>
                                            <a href=3D"mailto:[email protected]=
ros-os.org" target=3D"_blank">[email protected]</a><br>
                                            <a href=3D"http://www.eros-os.o=
rg/mailman/listinfo/e-lang" target=3D"_blank">http://www.eros-os.org/mailma=
n/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 href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
os-os.org</a>
<a href=3D"http://www.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank=
">http://www.eros-os.org/mailman/listinfo/e-lang</a>
</pre>
                                    </blockquote>
                                    <br>
                                  </blockquote>
                                  <br>
                                </blockquote>
                                <br>
                              </div>
                            </div>
                          </div>
                          <br>
_______________________________________________<br>
                          e-lang mailing list<br>
                          <a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a><br>
                          <a href=3D"http://www.eros-os.org/mailman/listinf=
o/e-lang" 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>=C2=A0 =C2=A0 Cheers,<br>
                        =C2=A0 =C2=A0 --MarkM</div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
e-lang mailing list
<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]=
os-os.org</a>
<a href=3D"http://www.eros-os.org/mailman/listinfo/e-lang" target=3D"_blank=
">http://www.eros-os.org/mailman/listinfo/e-lang</a>
</pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            e-lang mailing list<br>
            <a href=3D"mailto:[email protected]" target=3D"_blank">e-=
[email protected]</a><br>
            <a 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>=C2=A0 =C2=A0 Cheers,<br>
          =C2=A0 =C2=A0 --MarkM</div>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</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>

--001a1142eda0f498700524d68281--

--===============8690072055989658002==
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

--===============8690072055989658002==--