diff truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java @ 22141:46384e637592

Make sure the proper TruffleVM execution context is re-set before invoking an operation on a JavaInterop wrapper obtained via Symbol.as method.
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Mon, 14 Sep 2015 11:02:52 +0200
parents 92906003d607
children cf604b9633c9
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java	Thu Sep 10 16:26:31 2015 +0200
+++ b/truffle/com.oracle.truffle.tck/src/com/oracle/truffle/tck/TruffleTCK.java	Mon Sep 14 11:02:52 2015 +0200
@@ -583,10 +583,13 @@
         }
         TruffleVM.Symbol s = vm().findGlobalSymbol(compoundObjectName);
         assert s != null : "Symbol " + compoundObjectName + " is not found!";
-        CompoundObject obj = s.invoke(null).as(CompoundObject.class);
+        final TruffleVM.Symbol value = s.invoke(null);
+        CompoundObject obj = value.as(CompoundObject.class);
+        assertNotNull("Compound object for " + value + " found", obj);
         int traverse = RANDOM.nextInt(10);
-        while (traverse-- >= 0) {
+        for (int i = 1; i <= traverse; i++) {
             obj = obj.returnsThis();
+            assertNotNull("Remains non-null even after " + i + " iteration", obj);
         }
         return obj;
     }