Author: gnodet
Date: Mon Mar 21 16:58:56 2016
New Revision: 1736048

URL: http://svn.apache.org/viewvc?rev=1736048&view=rev
Log:
Make sure parmv is not an ArgList and parms always is

Modified:
    
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java

Modified: 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java?rev=1736048&r1=1736047&r2=1736048&view=diff
==============================================================================
--- 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
 (original)
+++ 
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
 Mon Mar 21 16:58:56 2016
@@ -167,14 +167,14 @@ public class Closure implements Function
     {
         if (null != values)
         {
-            parmv = values;
+            parmv = new ArrayList<>(values);
             parms = new ArgList(parmv);
         }
         else if (null != parent)
         {
             // inherit parent closure parameters
-            parms = parent.parms;
-            parmv = parent.parmv;
+            parmv = parent.parmv != null ? new ArrayList<>(parent.parmv) : 
null;
+            parms = parmv != null ? new ArgList(parmv) : null;
         }
         else
         {
@@ -182,7 +182,7 @@ public class Closure implements Function
             Object args = session.get("args");
             if (null != args && args instanceof List<?>)
             {
-                parmv = (List<Object>) args;
+                parmv = new ArrayList<>((List<Object>) args);
                 parms = new ArgList(parmv);
             }
         }


Reply via email to