diff options
author | Joe George <joe@zeroc.com> | 2020-07-07 16:57:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-07 16:57:51 -0400 |
commit | 6c0e7e6fcabde691e7c38a814b6171f9f4e77d09 (patch) | |
tree | aed41fdff6561e134c73da214e580be0910e6f6a /js/test/Ice/objects/Client.js | |
parent | Copy python dependencies to the extension directory - Close #926 (#927) (diff) | |
download | ice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.tar.bz2 ice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.tar.xz ice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.zip |
Add class cycle detection during unmarshaling (#946)
Add support for detection of class cycles during unmarshaling in
languages which do no have garbage collection: C++, Swift, and Objective-C.
A `MarshalException` is thrown when a cycle is detected.
The property `Ice.AcceptClassCycles` can be set to a value greater than `0`
to change this behavior.
Diffstat (limited to 'js/test/Ice/objects/Client.js')
-rw-r--r-- | js/test/Ice/objects/Client.js | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/js/test/Ice/objects/Client.js b/js/test/Ice/objects/Client.js index 0f5e5cb730b..76697dc3d17 100644 --- a/js/test/Ice/objects/Client.js +++ b/js/test/Ice/objects/Client.js @@ -491,6 +491,23 @@ } out.writeLine("ok"); + out.write("testing sending class cycle... "); + { + const rec = new Test.Recursive(); + rec.v = rec; + const acceptsCycles = await initial.acceptsClassCycles(); + try + { + await initial.setCycle(rec); + test(acceptsCycles); + } + catch (error) + { + test(!acceptsCycles); + } + } + out.writeLine("ok"); + await initial.shutdown(); } |