Dot product serialization fix.
diff --git a/engine.json b/engine.json
index f978667..06b23a9 100644
--- a/engine.json
+++ b/engine.json
@@ -18,7 +18,7 @@
   },
   "algorithms": [
     {
-      "name": "lr",
+      "name": "nb",
       "params": {
         "lambda": 1
       }
diff --git a/pio.log b/pio.log
index be964e8..28bec3a 100644
--- a/pio.log
+++ b/pio.log
@@ -109461,3 +109461,578 @@
 2015-06-08 17:33:46,318 WARN  io.prediction.workflow.MasterActor [pio-server-akka.actor.default-dispatcher-5] - Nothing at http://0.0.0.0:8000
 2015-06-08 17:33:48,045 INFO  spray.can.server.HttpListener [pio-server-akka.actor.default-dispatcher-4] - Bound to /0.0.0.0:8000
 2015-06-08 17:33:48,046 INFO  io.prediction.workflow.MasterActor [pio-server-akka.actor.default-dispatcher-5] - Engine is deployed and running. Engine API is live at http://0.0.0.0:8000.
+2015-06-09 16:10:09,265 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-09 16:10:09,335 INFO  io.prediction.tools.console.Console$ [main] - Using command '/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt' at the current working directory to build.
+2015-06-09 16:10:09,335 INFO  io.prediction.tools.console.Console$ [main] - If the path above is incorrect, this process will fail.
+2015-06-09 16:10:09,336 INFO  io.prediction.tools.console.Console$ [main] - Uber JAR disabled. Making sure lib/pio-assembly-0.9.4-SNAPSHOT.jar is absent.
+2015-06-09 16:10:09,336 INFO  io.prediction.tools.console.Console$ [main] - Going to run: /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt  package assemblyPackageDependency
+2015-06-09 16:10:23,398 INFO  io.prediction.tools.console.Console$ [main] - Build finished successfully.
+2015-06-09 16:10:23,398 INFO  io.prediction.tools.console.Console$ [main] - Looking for an engine...
+2015-06-09 16:10:23,408 INFO  io.prediction.tools.console.Console$ [main] - Found org-template-textclassification_2.10-0.1-SNAPSHOT.jar
+2015-06-09 16:10:23,408 INFO  io.prediction.tools.console.Console$ [main] - Found org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar
+2015-06-09 16:10:24,167 INFO  io.prediction.tools.RegisterEngine$ [main] - Registering engine IWXc010GfB2IiJT8mdsNGoRHegbLgBCr 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49
+2015-06-09 16:10:24,185 INFO  io.prediction.tools.console.Console$ [main] - Your engine is ready for training.
+2015-06-09 16:10:24,957 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-09 16:10:25,832 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-09 16:10:28,408 INFO  io.prediction.controller.Engine [main] - Extracting datasource params...
+2015-06-09 16:10:28,488 INFO  io.prediction.workflow.WorkflowUtils$ [main] - No 'name' is found. Default empty String will be used.
+2015-06-09 16:10:28,680 INFO  io.prediction.controller.Engine [main] - Datasource params: (,DataSourceParams(MyTextApp,Some(3)))
+2015-06-09 16:10:28,680 INFO  io.prediction.controller.Engine [main] - Extracting preparator params...
+2015-06-09 16:10:28,681 INFO  io.prediction.workflow.WorkflowUtils$ [main] - No 'name' is found. Default empty String will be used.
+2015-06-09 16:10:28,684 INFO  io.prediction.controller.Engine [main] - Preparator params: (,PreparatorParams(1,2,0.0,0.85))
+2015-06-09 16:10:28,691 INFO  io.prediction.controller.Engine [main] - Extracting serving params...
+2015-06-09 16:10:28,693 INFO  io.prediction.controller.Engine [main] - Serving params: (,Empty)
+2015-06-09 16:10:29,670 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Starting remoting
+2015-06-09 16:10:29,910 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@10.0.0.30:56939]
+2015-06-09 16:10:30,914 INFO  io.prediction.controller.Engine$ [main] - EngineWorkflow.train
+2015-06-09 16:10:30,915 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@3ce443f9
+2015-06-09 16:10:30,915 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@62b790a5
+2015-06-09 16:10:30,916 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@2806d6da)
+2015-06-09 16:10:30,916 INFO  io.prediction.controller.Engine$ [main] - Data santiy check is on.
+2015-06-09 16:10:32,070 INFO  io.prediction.controller.Engine$ [main] - org.template.textclassification.TrainingData supports data sanity check. Performing check.
+2015-06-09 16:10:53,020 INFO  io.prediction.controller.Engine$ [main] - org.template.textclassification.PreparedData does not support data sanity check. Skipping check.
+2015-06-09 16:11:36,445 ERROR org.apache.spark.executor.Executor [Executor task launch worker-0] - Exception in task 1.0 in stage 9.0 (TID 37)
+java.lang.OutOfMemoryError: GC overhead limit exceeded
+	at scala.collection.immutable.HashMap$HashTrieMap.updated0(HashMap.scala:328)
+	at scala.collection.immutable.HashMap.updated(HashMap.scala:54)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+2015-06-09 16:11:36,453 ERROR org.apache.spark.util.SparkUncaughtExceptionHandler [Executor task launch worker-0] - Uncaught exception in thread Thread[Executor task launch worker-0,5,main]
+java.lang.OutOfMemoryError: GC overhead limit exceeded
+	at scala.collection.immutable.HashMap$HashTrieMap.updated0(HashMap.scala:328)
+	at scala.collection.immutable.HashMap.updated(HashMap.scala:54)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+2015-06-09 16:11:36,457 WARN  org.apache.spark.scheduler.TaskSetManager [task-result-getter-3] - Lost task 1.0 in stage 9.0 (TID 37, localhost): java.lang.OutOfMemoryError: GC overhead limit exceeded
+	at scala.collection.immutable.HashMap$HashTrieMap.updated0(HashMap.scala:328)
+	at scala.collection.immutable.HashMap.updated(HashMap.scala:54)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+
+2015-06-09 16:11:36,461 ERROR org.apache.spark.scheduler.TaskSetManager [task-result-getter-3] - Task 1 in stage 9.0 failed 1 times; aborting job
+2015-06-09 16:11:53,170 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-09 16:11:54,052 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --driver-memory 2G --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-09 16:11:56,510 INFO  io.prediction.controller.Engine [main] - Extracting datasource params...
+2015-06-09 16:11:56,597 INFO  io.prediction.workflow.WorkflowUtils$ [main] - No 'name' is found. Default empty String will be used.
+2015-06-09 16:11:56,794 INFO  io.prediction.controller.Engine [main] - Datasource params: (,DataSourceParams(MyTextApp,Some(3)))
+2015-06-09 16:11:56,795 INFO  io.prediction.controller.Engine [main] - Extracting preparator params...
+2015-06-09 16:11:56,795 INFO  io.prediction.workflow.WorkflowUtils$ [main] - No 'name' is found. Default empty String will be used.
+2015-06-09 16:11:56,798 INFO  io.prediction.controller.Engine [main] - Preparator params: (,PreparatorParams(1,2,0.0,0.85))
+2015-06-09 16:11:56,803 INFO  io.prediction.controller.Engine [main] - Extracting serving params...
+2015-06-09 16:11:56,804 INFO  io.prediction.controller.Engine [main] - Serving params: (,Empty)
+2015-06-09 16:11:57,821 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-3] - Starting remoting
+2015-06-09 16:11:58,057 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@10.0.0.30:56961]
+2015-06-09 16:11:59,104 INFO  io.prediction.controller.Engine$ [main] - EngineWorkflow.train
+2015-06-09 16:11:59,105 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@18137eab
+2015-06-09 16:11:59,106 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@3f018494
+2015-06-09 16:11:59,106 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@51a18b21)
+2015-06-09 16:11:59,107 INFO  io.prediction.controller.Engine$ [main] - Data santiy check is on.
+2015-06-09 16:12:00,310 INFO  io.prediction.controller.Engine$ [main] - org.template.textclassification.TrainingData supports data sanity check. Performing check.
+2015-06-09 16:12:18,124 INFO  io.prediction.controller.Engine$ [main] - org.template.textclassification.PreparedData does not support data sanity check. Skipping check.
+2015-06-09 16:12:36,945 WARN  com.github.fommil.netlib.BLAS [main] - Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
+2015-06-09 16:12:36,945 WARN  com.github.fommil.netlib.BLAS [main] - Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
+2015-06-09 16:12:36,946 INFO  io.prediction.controller.Engine$ [main] - org.template.textclassification.NBModel does not support data sanity check. Skipping check.
+2015-06-09 16:12:36,946 INFO  io.prediction.controller.Engine$ [main] - EngineWorkflow.train completed
+2015-06-09 16:12:36,948 INFO  io.prediction.controller.Engine [main] - engineInstanceId=ed29cc82-8677-4242-a039-07f7d39f4437
+2015-06-09 16:12:36,965 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Inserting persistent model
+2015-06-09 16:12:40,865 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Updating engine instance
+2015-06-09 16:12:40,880 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Training completed successfully.
+2015-06-09 16:12:45,814 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateServer --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engineInstanceId ed29cc82-8677-4242-a039-07f7d39f4437 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --ip 0.0.0.0 --port 8000 --event-server-ip 0.0.0.0 --event-server-port 7070 --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-09 16:12:48,792 WARN  io.prediction.workflow.WorkflowUtils$ [pio-server-akka.actor.default-dispatcher-2] - Non-empty parameters supplied to org.template.textclassification.Serving, but its constructor does not accept any arguments. Stubbing with empty parameters.
+2015-06-09 16:12:51,364 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-3] - Starting remoting
+2015-06-09 16:12:51,537 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-3] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@10.0.0.30:56979]
+2015-06-09 16:12:52,628 INFO  io.prediction.controller.Engine [pio-server-akka.actor.default-dispatcher-2] - Using persisted model
+2015-06-09 16:12:52,630 INFO  io.prediction.controller.Engine [pio-server-akka.actor.default-dispatcher-2] - Loaded model org.template.textclassification.NBModel for algorithm org.template.textclassification.NBAlgorithm
+2015-06-09 16:12:52,641 INFO  io.prediction.workflow.MasterActor [pio-server-akka.actor.default-dispatcher-3] - Undeploying any existing engine instance at http://0.0.0.0:8000
+2015-06-09 16:12:52,658 WARN  io.prediction.workflow.MasterActor [pio-server-akka.actor.default-dispatcher-3] - Nothing at http://0.0.0.0:8000
+2015-06-09 16:12:54,324 INFO  spray.can.server.HttpListener [pio-server-akka.actor.default-dispatcher-2] - Bound to /0.0.0.0:8000
+2015-06-09 16:12:54,325 INFO  io.prediction.workflow.MasterActor [pio-server-akka.actor.default-dispatcher-5] - Engine is deployed and running. Engine API is live at http://0.0.0.0:8000.
+2015-06-10 20:00:57,175 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:00:57,274 INFO  io.prediction.tools.console.Console$ [main] - Using command '/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt' at the current working directory to build.
+2015-06-10 20:00:57,275 INFO  io.prediction.tools.console.Console$ [main] - If the path above is incorrect, this process will fail.
+2015-06-10 20:00:57,275 INFO  io.prediction.tools.console.Console$ [main] - Uber JAR disabled. Making sure lib/pio-assembly-0.9.4-SNAPSHOT.jar is absent.
+2015-06-10 20:00:57,276 INFO  io.prediction.tools.console.Console$ [main] - Going to run: /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt  package assemblyPackageDependency
+2015-06-10 20:01:29,800 INFO  io.prediction.tools.console.Console$ [main] - Build finished successfully.
+2015-06-10 20:01:29,801 INFO  io.prediction.tools.console.Console$ [main] - Looking for an engine...
+2015-06-10 20:01:29,809 INFO  io.prediction.tools.console.Console$ [main] - Found org-template-textclassification_2.10-0.1-SNAPSHOT.jar
+2015-06-10 20:01:29,809 INFO  io.prediction.tools.console.Console$ [main] - Found org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar
+2015-06-10 20:01:30,751 INFO  io.prediction.tools.RegisterEngine$ [main] - Registering engine IWXc010GfB2IiJT8mdsNGoRHegbLgBCr 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49
+2015-06-10 20:01:30,773 INFO  io.prediction.tools.console.Console$ [main] - Your engine is ready for training.
+2015-06-10 20:01:31,580 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:01:32,499 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassiication.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:02:04,299 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:02:04,366 INFO  io.prediction.tools.console.Console$ [main] - Using command '/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt' at the current working directory to build.
+2015-06-10 20:02:04,366 INFO  io.prediction.tools.console.Console$ [main] - If the path above is incorrect, this process will fail.
+2015-06-10 20:02:04,369 INFO  io.prediction.tools.console.Console$ [main] - Uber JAR disabled. Making sure lib/pio-assembly-0.9.4-SNAPSHOT.jar is absent.
+2015-06-10 20:02:04,369 INFO  io.prediction.tools.console.Console$ [main] - Going to run: /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt  package assemblyPackageDependency
+2015-06-10 20:02:11,221 INFO  io.prediction.tools.console.Console$ [main] - Build finished successfully.
+2015-06-10 20:02:11,221 INFO  io.prediction.tools.console.Console$ [main] - Looking for an engine...
+2015-06-10 20:02:11,230 INFO  io.prediction.tools.console.Console$ [main] - Found org-template-textclassification_2.10-0.1-SNAPSHOT.jar
+2015-06-10 20:02:11,230 INFO  io.prediction.tools.console.Console$ [main] - Found org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar
+2015-06-10 20:02:11,964 INFO  io.prediction.tools.RegisterEngine$ [main] - Registering engine IWXc010GfB2IiJT8mdsNGoRHegbLgBCr 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49
+2015-06-10 20:02:11,989 INFO  io.prediction.tools.console.Console$ [main] - Your engine is ready for training.
+2015-06-10 20:02:12,807 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:02:13,692 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.teemplate.textclassiication.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:02:44,338 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:02:45,187 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassification.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:02:48,072 INFO  io.prediction.workflow.CoreWorkflow$ [main] - runEvaluation started
+2015-06-10 20:02:48,717 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-5] - Starting remoting
+2015-06-10 20:02:48,944 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-4] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@marcos-mbp:51270]
+2015-06-10 20:02:49,433 WARN  org.spark-project.jetty.util.component.AbstractLifeCycle [main] - FAILED SelectChannelConnector@0.0.0.0:4040: java.net.BindException: Address already in use
+java.net.BindException: Address already in use
+	at sun.nio.ch.Net.bind0(Native Method)
+	at sun.nio.ch.Net.bind(Net.java:437)
+	at sun.nio.ch.Net.bind(Net.java:429)
+	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
+	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
+	at org.spark-project.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187)
+	at org.spark-project.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
+	at org.spark-project.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:265)
+	at org.spark-project.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
+	at org.spark-project.jetty.server.Server.doStart(Server.java:293)
+	at org.spark-project.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
+	at org.apache.spark.ui.JettyUtils$.org$apache$spark$ui$JettyUtils$$connect$1(JettyUtils.scala:199)
+	at org.apache.spark.ui.JettyUtils$$anonfun$2.apply(JettyUtils.scala:209)
+	at org.apache.spark.ui.JettyUtils$$anonfun$2.apply(JettyUtils.scala:209)
+	at org.apache.spark.util.Utils$$anonfun$startServiceOnPort$1.apply$mcVI$sp(Utils.scala:1837)
+	at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141)
+	at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:1828)
+	at org.apache.spark.ui.JettyUtils$.startJettyServer(JettyUtils.scala:209)
+	at org.apache.spark.ui.WebUI.bind(WebUI.scala:120)
+	at org.apache.spark.SparkContext$$anonfun$12.apply(SparkContext.scala:309)
+	at org.apache.spark.SparkContext$$anonfun$12.apply(SparkContext.scala:309)
+	at scala.Option.foreach(Option.scala:236)
+	at org.apache.spark.SparkContext.<init>(SparkContext.scala:309)
+	at io.prediction.workflow.WorkflowContext$.apply(WorkflowContext.scala:42)
+	at io.prediction.workflow.CoreWorkflow$.runEvaluation(CoreWorkflow.scala:121)
+	at io.prediction.workflow.Workflow$.runEvaluation(Workflow.scala:126)
+	at io.prediction.workflow.Workflow$.runEvaluationTypeless(Workflow.scala:106)
+	at io.prediction.workflow.Workflow$.runEvaluation(Workflow.scala:86)
+	at io.prediction.workflow.CreateWorkflow$.main(CreateWorkflow.scala:260)
+	at io.prediction.workflow.CreateWorkflow.main(CreateWorkflow.scala)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
+	at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
+	at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
+	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
+	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
+2015-06-10 20:02:49,437 WARN  org.spark-project.jetty.util.component.AbstractLifeCycle [main] - FAILED org.spark-project.jetty.server.Server@3e5d4f6b: java.net.BindException: Address already in use
+java.net.BindException: Address already in use
+	at sun.nio.ch.Net.bind0(Native Method)
+	at sun.nio.ch.Net.bind(Net.java:437)
+	at sun.nio.ch.Net.bind(Net.java:429)
+	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
+	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
+	at org.spark-project.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187)
+	at org.spark-project.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)
+	at org.spark-project.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:265)
+	at org.spark-project.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
+	at org.spark-project.jetty.server.Server.doStart(Server.java:293)
+	at org.spark-project.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
+	at org.apache.spark.ui.JettyUtils$.org$apache$spark$ui$JettyUtils$$connect$1(JettyUtils.scala:199)
+	at org.apache.spark.ui.JettyUtils$$anonfun$2.apply(JettyUtils.scala:209)
+	at org.apache.spark.ui.JettyUtils$$anonfun$2.apply(JettyUtils.scala:209)
+	at org.apache.spark.util.Utils$$anonfun$startServiceOnPort$1.apply$mcVI$sp(Utils.scala:1837)
+	at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141)
+	at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:1828)
+	at org.apache.spark.ui.JettyUtils$.startJettyServer(JettyUtils.scala:209)
+	at org.apache.spark.ui.WebUI.bind(WebUI.scala:120)
+	at org.apache.spark.SparkContext$$anonfun$12.apply(SparkContext.scala:309)
+	at org.apache.spark.SparkContext$$anonfun$12.apply(SparkContext.scala:309)
+	at scala.Option.foreach(Option.scala:236)
+	at org.apache.spark.SparkContext.<init>(SparkContext.scala:309)
+	at io.prediction.workflow.WorkflowContext$.apply(WorkflowContext.scala:42)
+	at io.prediction.workflow.CoreWorkflow$.runEvaluation(CoreWorkflow.scala:121)
+	at io.prediction.workflow.Workflow$.runEvaluation(Workflow.scala:126)
+	at io.prediction.workflow.Workflow$.runEvaluationTypeless(Workflow.scala:106)
+	at io.prediction.workflow.Workflow$.runEvaluation(Workflow.scala:86)
+	at io.prediction.workflow.CreateWorkflow$.main(CreateWorkflow.scala:260)
+	at io.prediction.workflow.CreateWorkflow.main(CreateWorkflow.scala)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
+	at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
+	at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
+	at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
+	at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
+2015-06-10 20:02:49,496 WARN  org.apache.spark.util.Utils [main] - Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
+2015-06-10 20:02:50,876 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Starting evaluation instance ID: 07925253-ee15-42d8-a63f-9c9513830e7f
+2015-06-10 20:02:50,883 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@315f09ef
+2015-06-10 20:02:50,884 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@4596f8f3
+2015-06-10 20:02:50,884 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@51d387d3)
+2015-06-10 20:02:50,885 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@6cf0a747
+2015-06-10 20:03:27,114 ERROR org.apache.spark.executor.Executor [Executor task launch worker-1] - Exception in task 0.0 in stage 10.0 (TID 39)
+java.lang.OutOfMemoryError: Java heap space
+	at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3468)
+	at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3275)
+	at java.io.ObjectInputStream.readString(ObjectInputStream.java:1650)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+2015-06-10 20:03:29,134 ERROR org.apache.spark.util.SparkUncaughtExceptionHandler [Executor task launch worker-1] - Uncaught exception in thread Thread[Executor task launch worker-1,5,main]
+java.lang.OutOfMemoryError: Java heap space
+	at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3468)
+	at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3275)
+	at java.io.ObjectInputStream.readString(ObjectInputStream.java:1650)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+2015-06-10 20:03:29,146 WARN  org.apache.spark.scheduler.TaskSetManager [task-result-getter-3] - Lost task 0.0 in stage 10.0 (TID 39, localhost): java.lang.OutOfMemoryError: Java heap space
+	at java.io.ObjectInputStream$HandleTable.grow(ObjectInputStream.java:3468)
+	at java.io.ObjectInputStream$HandleTable.assign(ObjectInputStream.java:3275)
+	at java.io.ObjectInputStream.readString(ObjectInputStream.java:1650)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1342)
+	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
+	at scala.collection.immutable.HashMap$SerializationProxy.readObject(HashMap.scala:516)
+	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.lang.reflect.Method.invoke(Method.java:497)
+	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1896)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1801)
+	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
+	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1993)
+	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1918)
+
+2015-06-10 20:03:30,166 ERROR org.apache.spark.scheduler.TaskSetManager [task-result-getter-3] - Task 0 in stage 10.0 failed 1 times; aborting job
+2015-06-10 20:03:51,786 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:03:52,641 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --safadsgasd --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassification.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:04:31,299 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:04:32,424 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --driver-memory 8G --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassification.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:04:35,725 INFO  io.prediction.workflow.CoreWorkflow$ [main] - runEvaluation started
+2015-06-10 20:04:36,385 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Starting remoting
+2015-06-10 20:04:36,630 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@marcos-mbp:51296]
+2015-06-10 20:04:38,308 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Starting evaluation instance ID: 1902f6a4-8463-4883-afb7-8eed6942089b
+2015-06-10 20:04:38,313 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@1e253c9d
+2015-06-10 20:04:38,313 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@73844119
+2015-06-10 20:04:38,314 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@46349b95)
+2015-06-10 20:04:38,314 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@1687eb01
+2015-06-10 20:05:14,371 WARN  com.github.fommil.netlib.BLAS [main] - Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
+2015-06-10 20:05:14,372 WARN  com.github.fommil.netlib.BLAS [main] - Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
+2015-06-10 20:09:54,659 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:09:54,725 INFO  io.prediction.tools.console.Console$ [main] - Using command '/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt' at the current working directory to build.
+2015-06-10 20:09:54,726 INFO  io.prediction.tools.console.Console$ [main] - If the path above is incorrect, this process will fail.
+2015-06-10 20:09:54,727 INFO  io.prediction.tools.console.Console$ [main] - Uber JAR disabled. Making sure lib/pio-assembly-0.9.4-SNAPSHOT.jar is absent.
+2015-06-10 20:09:54,727 INFO  io.prediction.tools.console.Console$ [main] - Going to run: /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt  package assemblyPackageDependency
+2015-06-10 20:10:38,203 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error] /Users/Marco/template-scala-parallel-textclassification/src/main/scala/org/template/textclassification/NBAlgorithm.scala:83: too many arguments for method innerProduct: (x: Array[Double], y: Array[Double])Double
+2015-06-10 20:10:38,204 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error]       e => exp(innerProduct(x.size, e._2.toArray, 1, x.toArray, 1) + e._1))
+2015-06-10 20:10:38,207 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error]                            ^
+2015-06-10 20:10:38,291 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error] one error found
+2015-06-10 20:10:38,314 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error] (compile:compile) Compilation failed
+2015-06-10 20:10:38,319 ERROR io.prediction.tools.console.Console$ [Thread-2] - [error] Total time: 37 s, completed Jun 10, 2015 8:10:38 PM
+2015-06-10 20:10:38,436 ERROR io.prediction.tools.console.Console$ [main] - Return code of previous step is 1. Aborting.
+2015-06-10 20:12:50,823 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:12:50,892 INFO  io.prediction.tools.console.Console$ [main] - Using command '/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt' at the current working directory to build.
+2015-06-10 20:12:50,893 INFO  io.prediction.tools.console.Console$ [main] - If the path above is incorrect, this process will fail.
+2015-06-10 20:12:50,894 INFO  io.prediction.tools.console.Console$ [main] - Uber JAR disabled. Making sure lib/pio-assembly-0.9.4-SNAPSHOT.jar is absent.
+2015-06-10 20:12:50,895 INFO  io.prediction.tools.console.Console$ [main] - Going to run: /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/sbt/sbt  package assemblyPackageDependency
+2015-06-10 20:13:24,259 INFO  io.prediction.tools.console.Console$ [main] - Build finished successfully.
+2015-06-10 20:13:24,259 INFO  io.prediction.tools.console.Console$ [main] - Looking for an engine...
+2015-06-10 20:13:24,268 INFO  io.prediction.tools.console.Console$ [main] - Found org-template-textclassification_2.10-0.1-SNAPSHOT.jar
+2015-06-10 20:13:24,269 INFO  io.prediction.tools.console.Console$ [main] - Found org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar
+2015-06-10 20:13:24,961 INFO  io.prediction.tools.RegisterEngine$ [main] - Registering engine IWXc010GfB2IiJT8mdsNGoRHegbLgBCr 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49
+2015-06-10 20:13:24,980 INFO  io.prediction.tools.console.Console$ [main] - Your engine is ready for training.
+2015-06-10 20:13:25,769 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:13:26,609 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassification.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:13:29,569 INFO  io.prediction.workflow.CoreWorkflow$ [main] - runEvaluation started
+2015-06-10 20:13:30,070 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Starting remoting
+2015-06-10 20:13:30,262 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@marcos-mbp:51363]
+2015-06-10 20:13:31,338 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Starting evaluation instance ID: f7fedf2a-12dc-4ea2-abb9-5354d99ac15c
+2015-06-10 20:13:31,345 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@715b886f
+2015-06-10 20:13:31,346 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@350d3f4d
+2015-06-10 20:13:31,347 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@44f24a20)
+2015-06-10 20:13:31,347 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@176996c3
+2015-06-10 20:13:56,193 INFO  io.prediction.tools.console.Console$ [main] - Using existing engine manifest JSON at /Users/Marco/template-scala-parallel-textclassification/manifest.json
+2015-06-10 20:13:57,323 INFO  io.prediction.tools.Runner$ [main] - Submission command: /usr/local/Cellar/apache-spark/1.3.1_1/bin/spark-submit --driver-memory 8G --class io.prediction.workflow.CreateWorkflow --jars file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org-template-textclassification_2.10-0.1-SNAPSHOT.jar,file:/Users/Marco/template-scala-parallel-textclassification/target/scala-2.10/org.template.textclassification-assembly-0.1-SNAPSHOT-deps.jar --files file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf/log4j.properties --driver-class-path /Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf file:/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/lib/pio-assembly-0.9.4-SNAPSHOT.jar --engine-id IWXc010GfB2IiJT8mdsNGoRHegbLgBCr --engine-version 7f7fd057ec1f7fa1ae31d1be8f331b95f933dd49 --engine-variant file:/Users/Marco/template-scala-parallel-textclassification/engine.json --verbosity 0 --evaluation-class org.template.textclassification.AccuracyEvaluation --engine-params-generator-class org.template.textclassification.EngineParamsList --json-extractor Both --env PIO_ENV_LOADED=1,PIO_STORAGE_REPOSITORIES_METADATA_NAME=pio_meta,PIO_FS_BASEDIR=/Users/Marco/.pio_store,PIO_HOME=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT,PIO_FS_ENGINESDIR=/Users/Marco/.pio_store/engines,PIO_STORAGE_SOURCES_PGSQL_URL=jdbc:postgresql://localhost/pio,PIO_STORAGE_REPOSITORIES_METADATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_MODELDATA_SOURCE=PGSQL,PIO_STORAGE_REPOSITORIES_EVENTDATA_NAME=pio_event,PIO_STORAGE_SOURCES_PGSQL_PASSWORD=pio,PIO_STORAGE_SOURCES_PGSQL_TYPE=jdbc,PIO_FS_TMPDIR=/Users/Marco/.pio_store/tmp,PIO_STORAGE_SOURCES_PGSQL_USERNAME=pio,PIO_STORAGE_REPOSITORIES_MODELDATA_NAME=pio_model,PIO_STORAGE_REPOSITORIES_EVENTDATA_SOURCE=PGSQL,PIO_CONF_DIR=/Users/Marco/PredictionIO/PredictionIO-0.9.4-SNAPSHOT/conf
+2015-06-10 20:14:00,685 INFO  io.prediction.workflow.CoreWorkflow$ [main] - runEvaluation started
+2015-06-10 20:14:01,355 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Starting remoting
+2015-06-10 20:14:01,588 INFO  Remoting [sparkDriver-akka.actor.default-dispatcher-2] - Remoting started; listening on addresses :[akka.tcp://sparkDriver@marcos-mbp:51387]
+2015-06-10 20:14:03,362 INFO  io.prediction.workflow.CoreWorkflow$ [main] - Starting evaluation instance ID: 8b08361a-8f5e-4654-bc53-dbd3cc7ec6d4
+2015-06-10 20:14:03,366 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@715b886f
+2015-06-10 20:14:03,367 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@350d3f4d
+2015-06-10 20:14:03,367 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@44f24a20)
+2015-06-10 20:14:03,368 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@176996c3
+2015-06-10 20:15:52,219 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@10eee44f
+2015-06-10 20:15:52,220 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@2ded80fa
+2015-06-10 20:15:52,220 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@2206c6a8)
+2015-06-10 20:15:52,221 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@27c34e78
+2015-06-10 20:17:26,466 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@5e645a7
+2015-06-10 20:17:26,467 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@549e947
+2015-06-10 20:17:26,467 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.NBAlgorithm@152350ca)
+2015-06-10 20:17:26,467 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@1d711fda
+2015-06-10 20:19:24,037 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@60495fdd
+2015-06-10 20:19:24,041 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@37527344
+2015-06-10 20:19:24,041 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.LRAlgorithm@39256507)
+2015-06-10 20:19:24,041 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@532e70e8
+2015-06-10 20:20:57,821 WARN  com.github.fommil.netlib.BLAS [dag-scheduler-event-loop] - Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
+2015-06-10 20:20:57,827 WARN  com.github.fommil.netlib.BLAS [dag-scheduler-event-loop] - Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
+2015-06-10 20:21:02,770 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.1425
+2015-06-10 20:21:02,828 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.255988 (rel: 0.631) 0.492130
+2015-06-10 20:21:15,896 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.500
+2015-06-10 20:21:15,941 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.210195 (rel: 0.179) 0.440701
+2015-06-10 20:21:36,116 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.609715902544323 fval: 0.06131745564547983 rhs: 0.21017161401277448 cdd: -0.040801192177480086
+2015-06-10 20:21:36,140 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.6097
+2015-06-10 20:21:36,186 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0613175 (rel: 0.708) 0.151685
+2015-06-10 20:22:10,218 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.5448941239937963 fval: 0.05249357769764172 rhs: 0.06131560375490546 cdd: 0.0010743399647770364
+2015-06-10 20:22:10,256 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.5449
+2015-06-10 20:22:10,326 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0524936 (rel: 0.144) 0.0708554
+2015-06-10 20:22:18,089 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:22:18,310 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0518066 (rel: 0.0131) 0.0567774
+2015-06-10 20:22:31,534 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:22:31,631 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0509377 (rel: 0.0168) 0.0214776
+2015-06-10 20:22:44,774 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:22:44,834 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0508577 (rel: 0.00157) 0.0160485
+2015-06-10 20:22:56,636 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:22:56,696 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507780 (rel: 0.00157) 0.00578761
+2015-06-10 20:23:01,237 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:01,264 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507723 (rel: 0.000112) 0.00332955
+2015-06-10 20:23:12,063 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:12,090 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507701 (rel: 4.28e-05) 0.00118090
+2015-06-10 20:23:16,265 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:16,292 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507698 (rel: 6.12e-06) 0.000388521
+2015-06-10 20:23:21,577 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:21,615 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 6.30e-07) 0.000115545
+2015-06-10 20:23:27,063 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:27,092 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 6.51e-08) 6.73962e-05
+2015-06-10 20:23:32,486 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:32,516 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 2.39e-08) 3.26768e-05
+2015-06-10 20:23:43,348 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:43,385 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 1.13e-08) 1.14867e-05
+2015-06-10 20:23:48,869 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:48,897 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 1.05e-09) 8.34583e-06
+2015-06-10 20:23:52,561 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:23:52,597 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507697 (rel: 2.82e-10) 2.27686e-06
+2015-06-10 20:25:04,794 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.1419
+2015-06-10 20:25:04,827 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.256032 (rel: 0.631) 0.491901
+2015-06-10 20:25:13,612 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.500
+2015-06-10 20:25:13,643 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.210448 (rel: 0.178) 0.440714
+2015-06-10 20:25:21,735 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.6092746862814546 fval: 0.06155656585426031 rhs: 0.2104240933983146 cdd: -0.04107086857286176
+2015-06-10 20:25:21,748 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.6093
+2015-06-10 20:25:21,774 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0615566 (rel: 0.707) 0.156600
+2015-06-10 20:25:42,127 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.5388334882237402 fval: 0.05240972167009114 rhs: 0.0615546193759322 cdd: 0.00191676382659592
+2015-06-10 20:25:42,146 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.5388
+2015-06-10 20:25:42,182 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0524097 (rel: 0.149) 0.0743530
+2015-06-10 20:25:47,541 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:25:47,565 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0517162 (rel: 0.0132) 0.0587969
+2015-06-10 20:25:51,290 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:25:51,327 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0507738 (rel: 0.0182) 0.0213583
+2015-06-10 20:25:55,234 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:25:55,261 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506904 (rel: 0.00164) 0.0147177
+2015-06-10 20:26:11,432 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:11,534 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506259 (rel: 0.00127) 0.00475798
+2015-06-10 20:26:17,869 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:17,898 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506222 (rel: 7.43e-05) 0.00285035
+2015-06-10 20:26:23,001 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:23,028 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506206 (rel: 3.14e-05) 0.000791068
+2015-06-10 20:26:28,691 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:28,724 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506205 (rel: 2.78e-06) 0.000249392
+2015-06-10 20:26:39,953 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:39,984 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 3.15e-07) 9.87644e-05
+2015-06-10 20:26:45,271 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:45,297 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 8.34e-08) 5.48061e-05
+2015-06-10 20:26:50,004 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:50,035 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 2.63e-08) 3.44446e-05
+2015-06-10 20:26:53,784 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:53,811 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 4.49e-09) 1.89335e-05
+2015-06-10 20:26:57,593 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:26:57,634 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 1.37e-09) 5.60688e-06
+2015-06-10 20:27:01,836 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:27:01,863 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0506204 (rel: 2.35e-10) 2.63557e-06
+2015-06-10 20:28:06,695 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.1423
+2015-06-10 20:28:06,719 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.255491 (rel: 0.631) 0.491985
+2015-06-10 20:28:17,110 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.500
+2015-06-10 20:28:17,142 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.209783 (rel: 0.179) 0.440700
+2015-06-10 20:28:25,354 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.6098003905824927 fval: 0.060570891994097084 rhs: 0.20975982757356107 cdd: -0.04134713411589094
+2015-06-10 20:28:25,363 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.6098
+2015-06-10 20:28:25,389 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0605709 (rel: 0.711) 0.147967
+2015-06-10 20:28:44,053 INFO  breeze.optimize.StrongWolfeLineSearch [main] - Line search t: 0.5503896569707522 fval: 0.05181702934741601 rhs: 0.06056909955494039 cdd: 7.666457112112301E-4
+2015-06-10 20:28:44,070 INFO  breeze.optimize.LBFGS [main] - Step Size: 0.5504
+2015-06-10 20:28:44,099 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0518170 (rel: 0.145) 0.0680803
+2015-06-10 20:28:48,289 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:28:48,312 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0511085 (rel: 0.0137) 0.0540354
+2015-06-10 20:28:51,909 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:28:51,945 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0503388 (rel: 0.0151) 0.0201639
+2015-06-10 20:28:56,420 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:28:56,445 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502979 (rel: 0.000811) 0.0150390
+2015-06-10 20:29:00,456 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:00,483 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502245 (rel: 0.00146) 0.00396706
+2015-06-10 20:29:12,858 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:12,903 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502208 (rel: 7.34e-05) 0.00230468
+2015-06-10 20:29:18,536 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:18,564 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502198 (rel: 1.97e-05) 0.000610888
+2015-06-10 20:29:24,602 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:24,632 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 1.52e-06) 0.000260014
+2015-06-10 20:29:30,378 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:30,403 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 2.35e-07) 0.000111493
+2015-06-10 20:29:43,071 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:43,457 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 6.96e-08) 5.91866e-05
+2015-06-10 20:29:47,667 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:47,695 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 3.71e-08) 2.86256e-05
+2015-06-10 20:29:52,026 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:52,066 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 6.64e-09) 2.04075e-05
+2015-06-10 20:29:56,776 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:29:56,802 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 1.17e-09) 1.09730e-05
+2015-06-10 20:30:00,712 INFO  breeze.optimize.LBFGS [main] - Step Size: 1.000
+2015-06-10 20:30:00,739 INFO  breeze.optimize.LBFGS [main] - Val and Grad Norm: 0.0502197 (rel: 4.39e-10) 2.22388e-06
+2015-06-10 20:30:04,032 INFO  io.prediction.controller.Engine$ [main] - DataSource: org.template.textclassification.DataSource@3a7efb62
+2015-06-10 20:30:04,033 INFO  io.prediction.controller.Engine$ [main] - Preparator: org.template.textclassification.Preparator@765c1d9
+2015-06-10 20:30:04,033 INFO  io.prediction.controller.Engine$ [main] - AlgorithmList: List(org.template.textclassification.LRAlgorithm@2d265b83)
+2015-06-10 20:30:04,033 INFO  io.prediction.controller.Engine$ [main] - Serving: org.template.textclassification.Serving@30716039
diff --git a/src/main/scala/org/template/textclassification/Evaluation.scala b/src/main/scala/org/template/textclassification/Evaluation.scala
index 896e1ac..1365eca 100644
--- a/src/main/scala/org/template/textclassification/Evaluation.scala
+++ b/src/main/scala/org/template/textclassification/Evaluation.scala
@@ -47,9 +47,11 @@
 
   // Set the algorithm params for which we will assess an accuracy score.
   engineParamsList = Seq(
-    baseEP.copy(algorithmParamsList = Seq(("nb", NBAlgorithmParams(0.2)))),
+    baseEP.copy(algorithmParamsList = Seq(("nb", NBAlgorithmParams(0.25)))),
     baseEP.copy(algorithmParamsList = Seq(("nb", NBAlgorithmParams(0.5)))),
+    baseEP.copy(algorithmParamsList = Seq(("nb", NBAlgorithmParams(1.0)))),
     baseEP.copy(algorithmParamsList = Seq(("lr", LRAlgorithmParams(0.5)))),
-    baseEP.copy(algorithmParamsList = Seq(("lr", LRAlgorithmParams(1.0))))
+    baseEP.copy(algorithmParamsList = Seq(("lr", LRAlgorithmParams(1.0)))),
+    baseEP.copy(algorithmParamsList = Seq(("lr", LRAlgorithmParams(1.5))))
   )
 }
\ No newline at end of file
diff --git a/src/main/scala/org/template/textclassification/LRAlgorithm.scala b/src/main/scala/org/template/textclassification/LRAlgorithm.scala
index 894b61d..bf71824 100644
--- a/src/main/scala/org/template/textclassification/LRAlgorithm.scala
+++ b/src/main/scala/org/template/textclassification/LRAlgorithm.scala
@@ -86,10 +86,9 @@
   )
 
   // 4. Enable vector inner product for prediction.
-  private val f2jBLAS = new F2jBLAS
 
   private def innerProduct (x : Array[Double], y : Array[Double]) : Double = {
-    f2jBLAS.ddot(x.size, x, 1, y, 1)
+    x.zip(y).map(e => e._1 * e._2).sum
   }
 
   // 5. Define prediction rule.
diff --git a/src/main/scala/org/template/textclassification/NBAlgorithm.scala b/src/main/scala/org/template/textclassification/NBAlgorithm.scala
index d0b7042..d64755a 100644
--- a/src/main/scala/org/template/textclassification/NBAlgorithm.scala
+++ b/src/main/scala/org/template/textclassification/NBAlgorithm.scala
@@ -53,13 +53,14 @@
 
   // 2. Set up linear algebra framework.
 
-  val f2jBLAS = new F2jBLAS
+  private def innerProduct (x : Array[Double], y : Array[Double]) : Double = {
+    x.zip(y).map(e => e._1 * e._2).sum
+  }
 
   val normalize = (u: Array[Double]) => {
-    val uArray = u.toArray
-    val uSum = uArray.sum
+    val uSum = u.sum
 
-    uArray.map(e => e / uSum)
+    u.map(e => e / uSum)
   }
 
 
@@ -78,7 +79,7 @@
       nb.pi
       .zip(nb.theta)
       .map(
-      e => exp(f2jBLAS.ddot(x.size, e._2.toArray, 1, x.toArray, 1) + e._1))
+      e => exp(innerProduct(e._2, x.toArray) + e._1))
     )
   }
 
diff --git a/src/main/scala/org/template/textclassification/Preparator.scala b/src/main/scala/org/template/textclassification/Preparator.scala
index 1325ce7..ca8370a 100644
--- a/src/main/scala/org/template/textclassification/Preparator.scala
+++ b/src/main/scala/org/template/textclassification/Preparator.scala
@@ -50,6 +50,7 @@
 val inverseIdfMax : Double
 ) extends Serializable {
 
+
   // 1. Tokenizer: document => token list.
   // Takes an individual document and converts it to
   // a list of allowable tokens.