 		private function describePromise():String { return lang("Running script {0}", scriptName.value); }
 		private const outputCSV:CSVDataSource = newLinkableChild(this, CSVDataSource);
 		private var _service:AMF3Servlet;
-
+		
 		override protected function initialize():void
 		{
 			super.initialize();

/* ***** BEGIN LICENSE BLOCK *****
*
* This file is part of Weave.
*
* The Initial Developer of Weave is the Institute for Visualization
* and Perception Research at the University of Massachusetts Lowell.
* Portions created by the Initial Developer are Copyright (C) 2008-2015
* the Initial Developer. All Rights Reserved.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
* 
* ***** END LICENSE BLOCK ***** */

package weave.data.DataSources
{

				return;
			// force retrieval of referenced columns
			for each (var refCol:ReferencedColumn in getLinkableDescendants(inputs, ReferencedColumn))
			refCol.getInternalColumn();
			if (linkableObjectIsBusy(inputs))
				return;
			
			var keyType:String;
			var simpleInputs:Object = {};
			var columnsByKeyType:Object = {}; // Object(keyType -> Array of IAttributeColumn)
			for each (var obj:ILinkableObject in inputs.getObjects())
			{
				var name:String = inputs.getName(obj);
				var column:IAttributeColumn = obj as IAttributeColumn;
				if (column)
				{
					keyType = column.getMetadata(ColumnMetadata.KEY_TYPE);
					var columnArray:Array = columnsByKeyType[keyType] || (columnsByKeyType[keyType] = [])
					columnArray.push(column);
				}
				else
				{
					simpleInputs[name] = getSessionState(inputs.getObject(name));
				}
			}
			
			var columnData:Object = {}; // Object(keyType -> {keys: [], columns: Object(name -> Array) })
			for (keyType in columnsByKeyType)
			{
				var cols:Array = columnsByKeyType[keyType];
				var joined:Array = ColumnUtils.joinColumns(cols, null, true);
				var keys:Array = VectorUtils.pluck(joined.shift() as Array, 'localName');
				var colMap:Object = {};
				for (var i:int = 0; i <  joined.length; i++)
					colMap[ inputs.getName(cols[i]) ] = joined[i];
				columnData[keyType] = {keys: keys, columns: colMap};
			}
			
			outputCSV.setCSVData(null);
			outputCSV.metadata.setSessionState(null);
			
			addAsyncResponder(
				_service.invokeAsyncMethod('runScriptWithInputs', [scriptName.value, simpleInputs, columnData]),
				handleScriptResult,
				handleScriptError,
				getSessionState(this)
