tiny fixes
[mir.git] / source / mir / producer / ListEnumeratingProducerNode.java
index 0752c57..6dc6d01 100755 (executable)
@@ -54,21 +54,22 @@ public class ListEnumeratingProducerNode extends ProducerNodeDecorator {
 
     try {
       list = ParameterExpander.evaluateExpression(aValueMap, listExpression);
-      if (list instanceof Collection)
-        browser = ((Collection) list).iterator();
-      else if (list instanceof Iterator)
-        browser = (Iterator) list;
-      else
-        throw new ProducerExc("Can't enumarate a " + list.getClass().getName());
+      if (list != null) {
+        if (list instanceof Collection)
+          browser = ( (Collection) list).iterator();
+        else if (list instanceof Iterator)
+          browser = (Iterator) list;
+        else
+          throw new ProducerExc("Can't enumarate a " + list.getClass().getName());
 
+        if (browser instanceof RewindableIterator) {
+          ( (RewindableIterator) browser).rewind();
+        }
 
-      if (browser instanceof RewindableIterator) {
-        ((RewindableIterator) browser).rewind();
-      }
-
-      while (browser.hasNext() && !isAborted(aValueMap)) {
-        ParameterExpander.setValueForKey(aValueMap, key, browser.next());
-        super.produce(aValueMap, aVerb, aLogger);
+        while (browser.hasNext() && !isAborted(aValueMap)) {
+          ParameterExpander.setValueForKey(aValueMap, key, browser.next());
+          super.produce(aValueMap, aVerb, aLogger);
+        }
       }
     }
     catch (Throwable t) {