You'll remember I said orderlyshutdown doesn't work. I
just rebuilt my test case, it doesn't work, but maybe
the problem is, I don't understand orderlyShutdown.
orderlyShutdown requires an argument, it looks from the
docs like null is ok, but perhaps not. As a minimum,
better documentation of the argument is required in the
javadoc at erights.org
here is both a rune script and the trace it creates
---- rune script -----
? def makeServer :=
<elang:interp.makeServerAuthor>.boot(<unsafe>)
# value: <makeServer>
? def source := "def adder(a,b) :any {return a + b}"
# value: "def adder(a,b) :any {return a + b}"
? def [farAdder, farScope, farVat] := makeServer(source)
# value: [<Promise>, <Promise>, <Promise>]
? def result := farAdder <- (2,3)
# value: <Remote Promise>
? result
# value: 5
? farVat
# value: <Vat newServerVat in <runs in newServerVat>>
? def shutResult := farVat <- orderlyShutdown(null)
# value: <Promise>
***-----------------------***
*** Trace data written to ***
'C:/Documents and Settings/MARCSTGR/Local
Settings/Temp/etrace/etrace.2005-01-18
T18_35_41.843Z.txt'
***-----------------------***
? shutResult
# value: <ref broken by problem: <NullPointerException:
Missing problem>>
? def r2 := farAdder <- (3,4)
# value: <Remote Promise>
? r2
# value: 7
----- trace -----
=== 2005-01-18T18:39:22.961Z
(PendingEvent.report:PendingEvent.java:109) WRN
causality: Problem in turn <<Vat start in <runs in
start>>,115>:
--vvvv--
Missing problem
- Vat#orderlyShutdown(Throwable)
. <Vat newServerVat in <runs in
newServerVat>>.orderlyShutdown(null)
java.lang.NullPointerException: Missing problem
at org.erights.e.develop.assertion.T.notNull(T.java:498)
at
org.erights.e.elib.ref.UnconnectedRef.<init>(UnconnectedRef.java:68)
at org.erights.e.elib.ref.Ref.broken(Ref.java:159)
at
org.erights.e.elib.vat.DeadRunner.<init>(DeadRunner.java:33)
at org.erights.e.elib.vat.Vat.orderlyShutdown(Vat.java:559)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.erights.e.elib.prim.InstanceMethodNode.innerExecute(InstanceMethodNode.java:113)
at
org.erights.e.elib.prim.JavaMemberNode.execute(JavaMemberNode.java:183)
at org.erights.e.elib.prim.E.callAll(E.java:167)
at
org.erights.e.elib.vat.PendingDelivery.innerRun(PendingDelivery.java:102)
at
org.erights.e.elib.vat.PendingEvent.run(PendingEvent.java:76)
at
org.erights.e.elib.vat.HeadlessRunner.run(HeadlessRunner.java:176)
at java.lang.Thread.run(Unknown Source)
--^^^^--