diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 3f7d6dd..fc164df 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -41,6 +41,7 @@
 [MRQL-60] Fix building dependencies for hadoop 1.x
 [MRQL-61] Fix bug on select over union queries
 [MRQL-62] Fix Map-Reduce mode on MultipleInput sources
+[MRQL-67]: Fix maven build errors for JDK 1.8
 
 Improvements
 
diff --git a/bsp/pom.xml b/bsp/pom.xml
index a9b940a..b16db03 100644
--- a/bsp/pom.xml
+++ b/bsp/pom.xml
@@ -29,7 +29,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
   
   <dependencies>
diff --git a/conf/mrql-env.sh b/conf/mrql-env.sh
index 8c67824..9d83e45 100644
--- a/conf/mrql-env.sh
+++ b/conf/mrql-env.sh
@@ -23,10 +23,10 @@
 # To rebuild Apache MRQL from sources:
 #
 # build MRQL on Hadoop 1.x:
-# mvn -Dhadoop.version=1.0.3 install
+# mvn -Dhadoop.version=1.0.3 clean install
 #
 # build MRQL on Hadoop 2.x (yarn):
-# mvn -Pyarn -Dyarn.version=2.2.0 -Dhadoop.version=1.2.1 install
+# mvn -Dyarn -Dyarn.version=2.2.0 -Dhadoop.version=1.2.1 clean install
 #
 #--------------------------------------------------------------------------------
 #
diff --git a/core/pom.xml b/core/pom.xml
index 03f4426..6251883 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -28,7 +28,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
   
   <dependencies>
diff --git a/core/src/main/java/org/apache/mrql/Evaluator.java b/core/src/main/java/org/apache/mrql/Evaluator.java
index 73aad03..39333ae 100644
--- a/core/src/main/java/org/apache/mrql/Evaluator.java
+++ b/core/src/main/java/org/apache/mrql/Evaluator.java
@@ -127,6 +127,11 @@
     public void dump_text ( String file, Tree type, MRData data ) throws Exception {
 	int ps = Config.max_bag_size_print;
 	Config.max_bag_size_print = -1;
+        if (!Config.hadoop_mode) {
+            File parent = new File(file).getParentFile();
+            if (parent != null && !parent.exists())
+                parent.mkdirs();
+        };
 	final PrintStream out = (Config.hadoop_mode)
 	                         ? Plan.print_stream(file)
 	                         : new PrintStream(file);
diff --git a/core/src/main/java/org/apache/mrql/Main.java b/core/src/main/java/org/apache/mrql/Main.java
index 5607a19..74aaed4 100644
--- a/core/src/main/java/org/apache/mrql/Main.java
+++ b/core/src/main/java/org/apache/mrql/Main.java
@@ -126,7 +126,7 @@
             else System.out.println("Hadoop MapReduce mode)");
         } else if (Config.bsp_mode)
             System.out.println("in-memory BSP mode)");
-        else System.out.println("in-memory MapReduce mode)");
+        else System.out.println("in-memory Java mode)");
         if (Config.interactive) {
             System.out.println("Type quit to exit");
             ConsoleReader reader = new ConsoleReader();
diff --git a/core/src/main/java/org/apache/mrql/MapReduceAlgebra.java b/core/src/main/java/org/apache/mrql/MapReduceAlgebra.java
index beaad27..68eccda 100644
--- a/core/src/main/java/org/apache/mrql/MapReduceAlgebra.java
+++ b/core/src/main/java/org/apache/mrql/MapReduceAlgebra.java
@@ -763,6 +763,10 @@
      *  The type is dumped to a separate file.type
      */
     public static void dump ( String file, Tree type, MRData value ) throws IOException {
+        File f = new File(file);
+        File parent = f.getParentFile();
+        if (parent != null && !parent.exists())
+            parent.mkdirs();
         PrintStream ftp = new PrintStream(file+".type");
         ftp.print("1@"+type.toString()+"\n");
         ftp.close();
diff --git a/dist/pom.xml b/dist/pom.xml
index dbad12a..0789372 100644
--- a/dist/pom.xml
+++ b/dist/pom.xml
@@ -24,7 +24,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
 
   <build>
diff --git a/flink/pom.xml b/flink/pom.xml
index 795a96e..bd3b8d7 100644
--- a/flink/pom.xml
+++ b/flink/pom.xml
@@ -29,7 +29,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
 
   <dependencies>
diff --git a/flink/src/main/java/org/apache/mrql/FlinkParsedInputFormat.java b/flink/src/main/java/org/apache/mrql/FlinkParsedInputFormat.java
index 937ba91..be304a5 100644
--- a/flink/src/main/java/org/apache/mrql/FlinkParsedInputFormat.java
+++ b/flink/src/main/java/org/apache/mrql/FlinkParsedInputFormat.java
@@ -51,8 +51,6 @@
             restore_data_sources(data_sources);
             String path = split.getPath().toString();
             try {
-                URI uri = new URI(path);
-                path = uri.getScheme()+":"+uri.getPath(); // ignore host
                 ParsedDataSource ds = (ParsedDataSource)DataSource.get(path,Plan.conf);
                 parser = (FlinkParser)ds.parser.newInstance();
                 parser.initialize(ds.args);
diff --git a/flink/src/main/java/org/apache/mrql/MR_flink.java b/flink/src/main/java/org/apache/mrql/MR_flink.java
index 511cfb9..d191de5 100644
--- a/flink/src/main/java/org/apache/mrql/MR_flink.java
+++ b/flink/src/main/java/org/apache/mrql/MR_flink.java
@@ -23,7 +23,7 @@
 import org.apache.flink.api.java.DataSet;
 
 
-/** a wrapper of a DataSet<FData> as an MRData */
+/** a wrapper of a DataSet&lt;FData&gt; as an MRData */
 final public class MR_flink extends MRData {
     public DataSet<FData> flink;
 
diff --git a/gen/pom.xml b/gen/pom.xml
index 438fe3e..8382fb1 100644
--- a/gen/pom.xml
+++ b/gen/pom.xml
@@ -29,7 +29,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
 
   <build>
diff --git a/mapreduce/pom.xml b/mapreduce/pom.xml
index a54799c..eeab001 100644
--- a/mapreduce/pom.xml
+++ b/mapreduce/pom.xml
@@ -29,7 +29,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
   
   <dependencies>
diff --git a/mapreduce/src/main/java/org/apache/mrql/GroupByJoinPlan.java b/mapreduce/src/main/java/org/apache/mrql/GroupByJoinPlan.java
index 5b860a9..52901ba 100644
--- a/mapreduce/src/main/java/org/apache/mrql/GroupByJoinPlan.java
+++ b/mapreduce/src/main/java/org/apache/mrql/GroupByJoinPlan.java
@@ -30,7 +30,7 @@
 
 
 /**
- *   A map-reduce job that captures a join with group-by. Similar to matrix multiplication.<br/>
+ *   A map-reduce job that captures a join with group-by. Similar to matrix multiplication.<br>
  *   It captures queries of the form:
  * <pre>
  *      select r((kx,ky),sum(z))
@@ -38,29 +38,29 @@
  *       where jx(x) = jy(y)
  *       group by (kx,ky): (gx(x),gy(y));
  * </pre>
- *   where:<br/>
- *      jx: left join key function from a to k<br/>
- *      jy: right join key function from b to k<br/>
- *      gx: group-by key function from a to k1<br/>
- *      gy: group-by key function from b to k2<br/>
+ *   where:<br>
+ *      jx: left join key function from a to k<br>
+ *      jy: right join key function from b to k<br>
+ *      gx: group-by key function from a to k1<br>
+ *      gy: group-by key function from b to k2<br>
  *      sum: a summation from {(a,b)} to c based on the accumulator
- *           acc from (c,(a,b)) to c with a left zero of type c<br/>
- *      r: reducer from ((k1,k2),c) to d<br/>
- *      X: left input of type {a}<br/>
- *      Y: right input of type {b}<br/>
- *      It returns a value of type {d}<br/>
- * <br/>
+ *           acc from (c,(a,b)) to c with a left zero of type c<br>
+ *      r: reducer from ((k1,k2),c) to d<br>
+ *      X: left input of type {a}<br>
+ *      Y: right input of type {b}<br>
+ *      It returns a value of type {d}<br>
+ * <br>
  *   Example: matrix multiplication:
  * <pre>
  *      select ( s(z), i, j )
  *        from (x,i,k) in X, (y,k,j) in Y, z = (x,y)
  *       group by (i,j);
  * </pre>
- *   where the summation s is based on the accumulator acc(c,(x,y))=c+x*y and zero=0<br/>
+ *   where the summation s is based on the accumulator acc(c,(x,y))=c+x*y and zero=0<br>
  *   It uses m*n partitions, so that n/m=|X|/|Y| and a hash table of size |X|/n*|Y|/m can fit in memory M.
  *   That is, n = |X|/sqrt(M), m = |Y|/sqrt(M).
  *   Each partition generates |X|/n*|Y|/m data. It replicates X n times and Y m times.
- *   Uses a hash-table H of size |X|/n*|Y|/m.<br/>
+ *   Uses a hash-table H of size |X|/n*|Y|/m.<br>
  *   MapReduce pseudo-code:
  * <pre>
  *   mapX ( x )
@@ -71,10 +71,10 @@
  *     for i = 0,m-1
  *        emit ( ((hash(gy(y)) % n)*m+i, jy(y), 2), (2,y) )
  * </pre>
- *   mapper output key: (partition,joinkey,tag),  value: (tag,data) <br/>
- *   Partitioner: over partition                                    <br/>
- *   GroupingComparator: over partition and joinkey                 <br/>
- *   SortComparator: major partition, minor joinkey, sub-minor tag  <br/>
+ *   mapper output key: (partition,joinkey,tag),  value: (tag,data) <br>
+ *   Partitioner: over partition                                    <br>
+ *   GroupingComparator: over partition and joinkey                 <br>
+ *   SortComparator: major partition, minor joinkey, sub-minor tag  <br>
  * <pre>
  *   reduce ( (p,_,_), s )
  *     if p != current_partition
diff --git a/pom.xml b/pom.xml
index 6fc296f..1f6d68d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
 
   <groupId>org.apache.mrql</groupId>
   <artifactId>mrql-parent</artifactId>
-  <version>0.9.6-incubating-SNAPSHOT</version>
+  <version>0.9.4-incubating-SNAPSHOT</version>
   <packaging>pom</packaging>
   <name>Apache MRQL parent POM</name>
   <description>Apache MRQL is a query processing and optimization system for large-scale, distributed data analysis, built on top of Apache Hadoop, Hama, Spark, and Flink</description>
@@ -43,17 +43,6 @@
     <relativePath />
   </parent>
 
-  <repositories>
-    <!-- Needed for flink snapshots -->
-    <repository>
-      <id>apache.snapshots</id>
-      <name>Apache Development Snapshot Repository</name>
-      <url>https://repository.apache.org/content/repositories/snapshots/</url>
-      <releases><enabled>false</enabled></releases>
-      <snapshots><enabled>true</enabled></snapshots>
-    </repository>
-  </repositories>
-
   <properties>
     <hadoop.version>1.2.1</hadoop.version>
     <yarn.version>2.2.0</yarn.version>
@@ -218,9 +207,8 @@
     <profile>
       <id>hadoop1</id>
       <activation>
-        <activeByDefault>true</activeByDefault>
         <property>
-          <name>hadoop1</name>
+          <name>!yarn</name>
         </property>
       </activation>
       <dependencies>
diff --git a/spark/pom.xml b/spark/pom.xml
index 4c7ce91..a12af11 100644
--- a/spark/pom.xml
+++ b/spark/pom.xml
@@ -29,7 +29,7 @@
   <parent>
     <groupId>org.apache.mrql</groupId>
     <artifactId>mrql-parent</artifactId>
-    <version>0.9.6-incubating-SNAPSHOT</version>
+    <version>0.9.4-incubating-SNAPSHOT</version>
   </parent>
   
   <dependencies>
diff --git a/spark/src/main/java/org/apache/mrql/MR_rdd.java b/spark/src/main/java/org/apache/mrql/MR_rdd.java
index 48f4f92..4bf5a3b 100644
--- a/spark/src/main/java/org/apache/mrql/MR_rdd.java
+++ b/spark/src/main/java/org/apache/mrql/MR_rdd.java
@@ -25,7 +25,7 @@
 import org.apache.spark.api.java.JavaRDD;
 
 
-/** a wrapper of a JavaRDD<MRData> (stored in HDFS) as an MRData */
+/** a wrapper of a JavaRDD&lt;MRData&gt; (stored in HDFS) as an MRData */
 final public class MR_rdd extends MRData {
     public JavaRDD<MRData> rdd;
 
diff --git a/src/site/site.xml b/src/site/site.xml
index 5c95ef5..881e610 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -73,7 +73,7 @@
       <item name="Hadoop" href="http://hadoop.apache.org/" />
       <item name="Hama" href="http://hama.apache.org/" />
       <item name="Spark" href="http://spark.apache.org/" />
-      <item name="Flink" href="http://flink.incubator.apache.org/" />
+      <item name="Flink" href="http://flink.apache.org/" />
     </menu>
 
     <menu name="ASF">
diff --git a/src/site/xdoc/getting_started.xml b/src/site/xdoc/getting_started.xml
index fee1480..1232ef5 100644
--- a/src/site/xdoc/getting_started.xml
+++ b/src/site/xdoc/getting_started.xml
@@ -25,10 +25,10 @@
     <section name="Installation Instructions"></section>
 
 <p>
-Apache MRQL can run in three modes: in Map-Reduce mode using Apache Hadoop, in BSP mode (Bulk Synchronous Parallel mode) using Apache Hama, and in Spark mode using Apache Spark.
+Apache MRQL can run in four modes: in Map-Reduce mode using Apache Hadoop, in BSP mode (Bulk Synchronous Parallel mode) using Apache Hama, in Spark mode using Apache Spark, and in Flink mode using Apache Flink.
 </p>
 <p>
-The MRQL MapReduce mode has been tested on Apache Hadoop MapReduce releases 1.x, and 2.x (Yarn). You can download the latest tarball from <a href="http://hadoop.apache.org/releases.html">Apache Hadoop</a>. The BSP and Spark modes are optional. The BSP mode has been tested on Apache Hama 0.6.2, 0.6.3, and 0.6.4. You can download the latest tarball from <a href="http://hama.apache.org/">Apache Hama</a>. The Spark mode has been tested on Apache Spark 1.0.0 and 1.0.2 in local, standalone deploy, and Yarn modes. You can download the latest tarball prebuilt for Hadoop1 or Hadoop2 from <a href="http://spark.apache.org/">Apache Spark</a>. The Flink mode has been tested on Apache Flink 0.6-incubating in local and Yarn modes. You can download the latest tarball prebuilt for Hadoop2 from <a href="http://flink.incubator.apache.org/downloads.html">Apache Flink</a>.
+The MRQL MapReduce mode has been tested on Apache Hadoop MapReduce releases 1.x, and 2.x (Yarn). You can download the latest tarball from <a href="http://hadoop.apache.org/releases.html">Apache Hadoop</a>. The BSP and Spark modes are optional. The BSP mode has been tested on Apache Hama 0.6.2, 0.6.3, and 0.6.4. You can download the latest tarball from <a href="http://hama.apache.org/">Apache Hama</a>. The Spark mode has been tested on Apache Spark 1.0.0 through 1.2.0 in local, standalone deploy, and Yarn modes. You can download the latest tarball prebuilt for Hadoop1 or Hadoop2 from <a href="http://spark.apache.org/">Apache Spark</a>. The Flink mode has been tested on Apache Flink 0.6-incubating through 0.8.0 in local and Yarn modes. You can download the latest tarball prebuilt for Hadoop2 from <a href="http://flink.apache.org/downloads.html">Apache Flink</a>.
 </p>
 <p>
 The following instructions assume that you have already installed Apache Hadoop MapReduce and you have deployed it on your cluster successfully.
@@ -58,7 +58,7 @@
 </p>
     <subsection name="How to run MRQL in Flink mode on a Yarn cluster"></subsection>
 <p>
-First, start the Flink application manager on Yarn using ${FLINK_HOME}/bin/yarn-session.sh -n #_of_nodes (see <a href="http://flink.incubator.apache.org/docs/0.6-incubating/yarn_setup.html">Yarn Setup</a>). Then run the <a href="https://wiki.apache.org/mrql/Pagerank">PageRank example</a> using the bin/mrql.flink script.
+First, start the Flink application manager on Yarn using ${FLINK_HOME}/bin/yarn-session.sh -n #_of_nodes (see <a href="http://flink.apache.org/docs/0.8/yarn_setup.html">Yarn Setup</a>). Then run the <a href="https://wiki.apache.org/mrql/Pagerank">PageRank example</a> using the bin/mrql.flink script.
 </p>
     <section name="How to Recompile MRQL"></section>
 <p>
@@ -66,7 +66,7 @@
 <pre>
 git clone https://git-wip-us.apache.org/repos/asf/incubator-mrql.git
 </pre>
-To build MRQL using maven, use <code>mvn clean install</code>. To validate the installation use <code>mvn -DskipTests=false clean install</code>, which runs the queries in <code>tests/queries</code> in memory, local Hadoop mode, local Hama mode, and local Spark mode.
+To build MRQL on Hadoop 1.x using maven, use <code>mvn clean install</code>. To build MRQL on Yarn (Hadoop 2.x), use <code>mvn -Dyarn clean install</code>. To validate the installation use <code>mvn -DskipTests=false clean install</code>, which runs the queries in <code>tests/queries</code> in memory, local Hadoop mode, local Hama mode, local Spark mode, and local Flink mode.
 </p>
 
   </body>
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index faf4789..d7324c6 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -22,13 +22,13 @@
   <title>A Query Processing and Optimization System</title>
   <body>
     <section name="Apache MRQL"></section>
-    <p>MRQL is a query processing and optimization system for large-scale, distributed data analysis, built on top of Apache Hadoop, Hama, and Spark.
+    <p>MRQL is a query processing and optimization system for large-scale, distributed data analysis, built on top of Apache Hadoop, Hama, Spark, and Flink.
     <br/><br/>
-    MRQL (pronounced miracle) is a query processing and optimization system for large-scale, distributed data analysis. MRQL (the MapReduce Query Language) is an SQL-like query language for large-scale data analysis on a cluster of computers. The MRQL query processing system can evaluate MRQL queries in three modes:
+    MRQL (pronounced miracle) is a query processing and optimization system for large-scale, distributed data analysis. MRQL (the MapReduce Query Language) is an SQL-like query language for large-scale data analysis on a cluster of computers. The MRQL query processing system can evaluate MRQL queries in four modes:
 <ol>
 <li>in Map-Reduce mode using Apache Hadoop,</li>
-<li>in BSP mode (Bulk Synchronous Parallel mode) using Apache Hama, and</li>
-<li>in Spark mode using Apache Spark.</li>
+<li>in BSP mode (Bulk Synchronous Parallel mode) using Apache Hama,</li>
+<li>in Spark mode using Apache Spark, and</li>
 <li>in Flink mode using Apache Flink.</li>
 </ol>
 The MRQL query language is powerful enough to express most common data analysis tasks over many forms of raw in-situ data, such as XML and JSON documents, binary files, and CSV documents. MRQL is more powerful than other current high-level MapReduce languages, such as Hive and PigLatin, since it can operate on more complex data and supports more powerful query constructs, thus eliminating the need for using explicit MapReduce code. With MRQL, users are able to express complex data analysis tasks, such as PageRank, k-means clustering, matrix factorization, etc, using SQL-like queries exclusively, while the MRQL query processing system is able to compile these queries to efficient Java code.</p>
