From 71ac97addc4ccbc48d414e5e8d3fe6c78004c913 Mon Sep 17 00:00:00 2001
From: Florian Angerer <florian.angerer@oracle.com>
Date: Mon, 21 Aug 2017 14:35:08 +0200
Subject: [PATCH] Fix: NPE due to multi slot data.

---
 .../src/com/oracle/truffle/r/runtime/env/REnvironment.java     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java
index dcb01ee548..eb109fbe93 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/REnvironment.java
@@ -930,7 +930,8 @@ public abstract class REnvironment extends RAttributeStorage {
         slots = namespacesFrame.getFrameDescriptor().getSlots().toArray(slots);
         for (int i = 0; i < slots.length; i++) {
             REnvironment namespaceEnv = (REnvironment) FrameSlotChangeMonitor.getValue(slots[i], namespacesFrame);
-            if (namespaceEnv != Base.baseNamespaceEnv()) {
+            // Could be 'null' due to multi slot data and an error during package loading
+            if (namespaceEnv != Base.baseNamespaceEnv() && namespaceEnv != null) {
                 // base namespace frame redirects all accesses to base frame and this would
                 // result in processing the slots twice
                 fun.apply(namespaceEnv.getFrame(), true);
-- 
GitLab