felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From db...@apache.org
Subject svn commit: r943079 - in /felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime: Activator.java shell/Closure.java shell/CommandProcessorImpl.java shell/CommandProxy.java
Date Tue, 11 May 2010 10:57:59 GMT
Author: dbaum
Date: Tue May 11 10:57:58 2010
New Revision: 943079

URL: http://svn.apache.org/viewvc?rev=943079&view=rev
Log:
fix NPE in session.execute("a = $b x") when $b evaluates to null;
fix session.get(".commands") to be list of command names, rather than map.


Modified:
    felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Activator.java
    felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/Closure.java
    felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProcessorImpl.java
    felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProxy.java

Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Activator.java?rev=943079&r1=943078&r2=943079&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Activator.java (original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Activator.java Tue
May 11 10:57:58 2010
@@ -53,6 +53,11 @@ public class Activator implements Bundle
     private OSGiCommands commands;
     private OSGiConverters converters;
     private ServiceRegistration convertersRegistration;
+    
+    protected CommandProcessorImpl newProcessor(ThreadIO tio)
+    {
+        return new CommandProcessorImpl(threadio);
+    }
 
     public void start(final BundleContext context) throws Exception
     {
@@ -61,7 +66,7 @@ public class Activator implements Bundle
         threadioRegistration = context.registerService(ThreadIO.class.getName(),
             threadio, null);
 
-        processor = new CommandProcessorImpl(threadio);
+        processor = newProcessor(threadio);
         processorRegistration = context.registerService(CommandProcessor.class.getName(),
             processor, null);
         

Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/Closure.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/Closure.java?rev=943079&r1=943078&r2=943079&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/Closure.java
(original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/Closure.java
Tue May 11 10:57:58 2010
@@ -45,6 +45,7 @@ public class Closure extends Reflective 
     private final Object script;
 
     private Token errTok;
+    private Token errTok2;
     private List<Object> parms = null;
     private List<Object> parmv = null;
 
@@ -289,6 +290,11 @@ public class Closure extends Reflective 
 
         List<Object> values = new ArrayList<Object>();
         errTok = statement.get(0);
+        
+        if ((statement.size() > 3) && Type.ASSIGN.equals(statement.get(1).type))
+        {
+            errTok2 = statement.get(2);
+        }
 
         for (Token t : statement)
         {
@@ -352,7 +358,12 @@ public class Closure extends Reflective 
                 }
                 else
                 {
-                    value = execute(values.get(1), values.subList(2, values.size()));
+                    cmd = values.get(1);
+                    if (null == cmd)
+                    {
+                        throw new RuntimeException("Command name evaluates to null: " + errTok2);
+                    }
+                    value = execute(cmd, values.subList(2, values.size()));
                 }
 
                 return assignment(scmd, value);

Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProcessorImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProcessorImpl.java?rev=943079&r1=943078&r2=943079&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProcessorImpl.java
(original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProcessorImpl.java
Tue May 11 10:57:58 2010
@@ -62,9 +62,9 @@ public class CommandProcessorImpl implem
         converters.remove(c);
     }
     
-    public Map<String, Object> getCommands()
+    public Set<String> getCommands()
     {
-        return commands;
+        return commands.keySet();
     }
 
     public Function getCommand(String name)

Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProxy.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProxy.java?rev=943079&r1=943078&r2=943079&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProxy.java
(original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/shell/CommandProxy.java
Tue May 11 10:57:58 2010
@@ -44,11 +44,16 @@ public class CommandProxy extends Reflec
         this.function = function;
         this.target = target;
     }
+    
+    public Object getTarget()
+    {
+        return (context != null ? context.getService(reference) : target);
+    }
 
     public Object execute(CommandSession session, List<Object> arguments)
         throws Exception
     {
-        Object tgt = (context != null ? context.getService(reference) : target);
+        Object tgt = getTarget();
         
         try
         {



Mime
View raw message