Class HeapIsolationException

All Implemented Interfaces:
Serializable

public final class HeapIsolationException extends InteropException
Exception thrown when a TruffleObject cannot unbox a host object because the object resides in a foreign heap.
Since:
25.1
See Also:
  • Method Details

    • getMessage

      public String getMessage()
      Overrides:
      getMessage in class Throwable
      Since:
      25.1
    • create

      public static HeapIsolationException create()
      Creates a new HeapIsolationException indicating that a host object cannot be unboxed because it was allocated in a foreign heap. For example, when InteropLibrary.asHostObject(Object) is invoked from within a polyglot isolate.

      This factory method is intended for use in compiled code paths.

      Since:
      25.1
    • create

      public static HeapIsolationException create(Throwable cause)
      Creates a new HeapIsolationException indicating that a host object cannot be unboxed because it was allocated in a foreign heap. For example, when InteropLibrary.asHostObject(Object) is invoked from within a polyglot isolate.

      In addition, a cause may be provided. The cause should only be set if the guest language code caused this problem. An example for this is a language specific proxy mechanism that invokes guest language code to describe an object. If the guest language code fails to execute and this interop exception is a valid interpretation of the error, then the error should be provided as cause. The cause can then be used by the source language as new exception cause if the InteropException is translated to a source language error. If the InteropException is discarded, then the cause will most likely get discarded by the source language as well. Note that the cause must be of type AbstractTruffleException otherwise an IllegalArgumentException is thrown.

      This factory method is intended for use in compiled code paths.

      Since:
      25.1