diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java index 1f8bda07e41d5cdd96cf3d8a5afe52ad97307196..11cd9e372a10f85a97942c1217b7f3bc8540f890 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConditionFunctions.java @@ -177,8 +177,15 @@ public class ConditionFunctions { } @Specialization - protected RNull signalCondition(RList condition, RAbstractStringVector msg, Object call) { - RErrorHandling.signalCondition(condition, msg.getDataAt(0), call); + protected RNull signalCondition(RList condition, Object msg, Object call) { + String msgStr = ""; + if (msg instanceof RAbstractStringVector) { + RAbstractStringVector msgVec = (RAbstractStringVector) msg; + if (msgVec.getLength() > 0) { + msgStr = ((RAbstractStringVector) msg).getDataAt(0); + } + } + RErrorHandling.signalCondition(condition, msgStr, call); return RNull.instance; } }