diff --git a/asterixdb/asterix-app/pom.xml b/asterixdb/asterix-app/pom.xml
index 2285d77..42da7c9 100644
--- a/asterixdb/asterix-app/pom.xml
+++ b/asterixdb/asterix-app/pom.xml
@@ -407,7 +407,7 @@
                     -Dfile.encoding=UTF-8
                     -Xdebug
                     -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=${debug.suspend.flag}
-                    -Xloggc:"${project.build.directory}/surefire-reports/SqlppExecutionTest-%p-gc.log" -XX:+PrintGC -XX:+PrintGCDateStamps -XX:GCLogFileSize=10M
+                    -Xloggc:"${project.build.directory}/surefire-reports/SqlppExecutionTest-%p-gc.log" -XX:+PrintGC
                   </argLine>
                 </configuration>
                 <goals>
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java
index 77d0e60..041a7da 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/resource/PlanStagesGeneratorTest.java
@@ -85,7 +85,7 @@
         ets.setExecutionMode(UNPARTITIONED);
         ets.setPhysicalOperator(new EmptyTupleSourcePOperator());
 
-        AssignOperator assignOperator = new AssignOperator(Collections.emptyList(), null);
+        AssignOperator assignOperator = new AssignOperator(Collections.emptyList(), Collections.emptyList());
         assignOperator.setExecutionMode(UNPARTITIONED);
         assignOperator.setPhysicalOperator(new AssignPOperator());
         assignOperator.getInputs().add(new MutableObject<>(ets));
@@ -95,7 +95,7 @@
         exchange.setPhysicalOperator(new OneToOneExchangePOperator());
         exchange.getInputs().add(new MutableObject<>(assignOperator));
 
-        DistributeResultOperator resultOperator = new DistributeResultOperator(null, null, null);
+        DistributeResultOperator resultOperator = new DistributeResultOperator(Collections.emptyList(), null, null);
         resultOperator.setExecutionMode(UNPARTITIONED);
         resultOperator.setPhysicalOperator(new DistributeResultPOperator());
         resultOperator.getInputs().add(new MutableObject<>(exchange));
@@ -137,7 +137,7 @@
         orderOperator.setPhysicalOperator(new StableSortPOperator());
         orderOperator.getInputs().add(new MutableObject<>(groupByOperator));
 
-        DistributeResultOperator resultOperator = new DistributeResultOperator(null, null, null);
+        DistributeResultOperator resultOperator = new DistributeResultOperator(Collections.emptyList(), null, null);
         resultOperator.setExecutionMode(PARTITIONED);
         resultOperator.setPhysicalOperator(new DistributeResultPOperator());
         resultOperator.getInputs().add(new MutableObject<>(orderOperator));
@@ -218,7 +218,7 @@
         secondJoin.getInputs().add(new MutableObject<>(exchangeOperator1));
         secondJoin.getInputs().add(new MutableObject<>(exchangeOperator2));
 
-        DistributeResultOperator resultOperator = new DistributeResultOperator(null, null, null);
+        DistributeResultOperator resultOperator = new DistributeResultOperator(Collections.emptyList(), null, null);
         resultOperator.setExecutionMode(PARTITIONED);
         resultOperator.setPhysicalOperator(new DistributeResultPOperator());
         resultOperator.getInputs().add(new MutableObject<>(secondJoin));
@@ -279,7 +279,7 @@
         secondJoin.getInputs().add(new MutableObject<>(order1));
         secondJoin.getInputs().add(new MutableObject<>(order2));
 
-        DistributeResultOperator resultOperator = new DistributeResultOperator(null, null, null);
+        DistributeResultOperator resultOperator = new DistributeResultOperator(Collections.emptyList(), null, null);
         resultOperator.setExecutionMode(PARTITIONED);
         resultOperator.setPhysicalOperator(new DistributeResultPOperator());
         resultOperator.getInputs().add(new MutableObject<>(secondJoin));
