Repository: neo4j-contrib/neo4j-jdbc
Pull request #452 (2023-07-10 10:08:09)

Remove proxy


Patch:
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
index 40d5ea7a..a05c15b9 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jDatabaseMetaData.java
@@ -28,9 +28,7 @@ import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.metadata.Column;
 import org.neo4j.jdbc.metadata.Table;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.DatabaseMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -78,10 +76,8 @@ public class BoltNeo4jDatabaseMetaData extends Neo4jDatabaseMetaData {
 		}
 	}
 
-	public static DatabaseMetaData newInstance(boolean debug, BoltNeo4jConnectionImpl connection) {
-		DatabaseMetaData dbmd = new BoltNeo4jDatabaseMetaData(connection);
-		return (DatabaseMetaData) Proxy.newProxyInstance(BoltNeo4jDatabaseMetaData.class.getClassLoader(), new Class[] { DatabaseMetaData.class },
-				new Neo4jInvocationHandler(dbmd, debug));
+	public static DatabaseMetaData newInstance(BoltNeo4jConnectionImpl connection) {
+		return new BoltNeo4jDatabaseMetaData(connection);
 	}
 
 	private void getDatabaseVersion(Session session) {
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
index d9a75e97..f48207eb 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jPreparedStatement.java
@@ -27,16 +27,20 @@ import org.neo4j.jdbc.Neo4jPreparedStatement;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
 import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
-import java.sql.*;
+import java.sql.Array;
+import java.sql.BatchUpdateException;
+import java.sql.Date;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Time;
+import java.sql.Timestamp;
 import java.time.Instant;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
 import java.time.temporal.Temporal;
 import java.util.Calendar;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
@@ -49,7 +53,7 @@ public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement implement
 	private final ResultSetFactory resultSetFactory;
 
 	private BoltNeo4jPreparedStatement(BoltNeo4jConnectionImpl connection, String rawStatement, int... rsParams) {
-		this(connection, BoltNeo4jResultSet::newInstance, rawStatement, rsParams);
+		this(connection, (debug1, statement1, iterator, params) -> BoltNeo4jResultSet.newInstance(statement1, iterator, params), rawStatement, rsParams);
 	}
 
 	// visible for testing
@@ -60,10 +64,9 @@ public class BoltNeo4jPreparedStatement extends Neo4jPreparedStatement implement
 	}
 
 	public static PreparedStatement newInstance(boolean debug, BoltNeo4jConnectionImpl connection, String rawStatement, int... rsParams) {
-		PreparedStatement ps = new BoltNeo4jPreparedStatement(connection, rawStatement, rsParams);
-		((Neo4jPreparedStatement) ps).setDebug(debug);
-		return (PreparedStatement) Proxy.newProxyInstance(BoltNeo4jPreparedStatement.class.getClassLoader(), new Class[] { PreparedStatement.class },
-				new Neo4jInvocationHandler(ps, debug));
+		Neo4jPreparedStatement ps = new BoltNeo4jPreparedStatement(connection, rawStatement, rsParams);
+		ps.setDebug(debug);
+		return ps;
 	}
 
 	@Override public ResultSet executeQuery() throws SQLException {
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
index e0671102..3a1b72f6 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSet.java
@@ -45,14 +45,10 @@ import org.neo4j.driver.util.Pair;
 import org.neo4j.jdbc.Neo4jArray;
 import org.neo4j.jdbc.Neo4jConnection;
 import org.neo4j.jdbc.Neo4jResultSet;
-import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.impl.ListArray;
 import org.neo4j.jdbc.utils.JSONUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 import org.neo4j.jdbc.utils.ObjectConverter;
 
-import java.lang.reflect.Proxy;
-import java.sql.Connection;
 import java.sql.Date;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
@@ -68,14 +64,12 @@ import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.Callable;
-import java.util.stream.Stream;
 
 import static org.neo4j.jdbc.utils.DataConverterUtils.convertObject;
 import static org.neo4j.jdbc.utils.DataConverterUtils.valueToDate;
@@ -151,13 +145,11 @@ public class BoltNeo4jResultSet extends Neo4jResultSet {
 				}
 			});
 		}
-		this.metaData = BoltNeo4jResultSetMetaData.newInstance(false, this.classes, this.keys);
+		this.metaData = BoltNeo4jResultSetMetaData.newInstance(this.classes, this.keys);
 	}
 
-	public static ResultSet newInstance(boolean debug, Statement statement, Result iterator, int... params) {
-		ResultSet rs = new BoltNeo4jResultSet(statement, iterator, params);
-		return (ResultSet) Proxy
-				.newProxyInstance(BoltNeo4jResultSet.class.getClassLoader(), new Class[] { ResultSet.class }, new Neo4jInvocationHandler(rs, debug));
+	public static ResultSet newInstance(Statement statement, Result iterator, int... params) {
+		return new BoltNeo4jResultSet(statement, iterator, params);
 	}
 
 	private void flattenResultSet() {
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
index 3cd0a46a..fa63a4b1 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaData.java
@@ -22,9 +22,7 @@ package org.neo4j.jdbc.bolt;
 import org.neo4j.driver.internal.types.InternalTypeSystem;
 import org.neo4j.driver.types.Type;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.Array;
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
@@ -91,10 +89,8 @@ public class BoltNeo4jResultSetMetaData extends Neo4jResultSetMetaData {
 		this.columnType = types.toArray(new Type[this.keys.size() + 1]);
 	}
 
-	public static ResultSetMetaData newInstance(boolean debug, List<Type> types, List<String> keys) {
-		ResultSetMetaData rsmd = new BoltNeo4jResultSetMetaData(types, keys);
-		return (ResultSetMetaData) Proxy
-				.newProxyInstance(BoltNeo4jResultSetMetaData.class.getClassLoader(), new Class[] { ResultSetMetaData.class }, new Neo4jInvocationHandler(rsmd, debug));
+	public static ResultSetMetaData newInstance(List<Type> types, List<String> keys) {
+		return new BoltNeo4jResultSetMetaData(types, keys);
 	}
 
 	/**
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
index 9e855739..a5b005ef 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/BoltNeo4jStatement.java
@@ -24,9 +24,7 @@ import org.neo4j.driver.summary.SummaryCounters;
 import org.neo4j.jdbc.Neo4jStatement;
 import org.neo4j.jdbc.bolt.impl.BoltNeo4jConnectionImpl;
 import org.neo4j.jdbc.utils.BoltNeo4jUtils;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.BatchUpdateException;
 import java.sql.ResultSet;
 import java.sql.SQLException;
@@ -61,10 +59,9 @@ public class BoltNeo4jStatement extends Neo4jStatement {
 	}
 
 	public static Statement newInstance(boolean debug, BoltNeo4jConnectionImpl connection, int... rsParams) {
-		Neo4jStatement statement = new BoltNeo4jStatement(connection, BoltNeo4jResultSet::newInstance, rsParams);
+		Neo4jStatement statement = new BoltNeo4jStatement(connection, (debug1, statement1, iterator, params) -> BoltNeo4jResultSet.newInstance(statement1, iterator, params), rsParams);
 		statement.setDebug(debug);
-		return (Statement) Proxy.newProxyInstance(BoltNeo4jStatement.class.getClassLoader(), new Class[] { Statement.class },
-				new Neo4jInvocationHandler(statement, debug));
+		return statement;
 	}
 
 	@Override public ResultSet executeQuery(String sql) throws SQLException {
@@ -89,7 +86,7 @@ public class BoltNeo4jStatement extends Neo4jStatement {
 			if (result != null) {
 				boolean hasResultSet = result.hasNext();
 				if (hasResultSet) {
-					this.currentResultSet = BoltNeo4jResultSet.newInstance(this.hasDebug(), this, result, this.resultSetParams);
+					this.currentResultSet = BoltNeo4jResultSet.newInstance(this, result, this.resultSetParams);
 					this.currentUpdateCount = -1;
 				} else {
 					this.currentResultSet = null;
diff --git a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
index d3d0afa2..6589f339 100644
--- a/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
+++ b/neo4j-jdbc-bolt/src/main/java/org/neo4j/jdbc/bolt/impl/BoltNeo4jConnectionImpl.java
@@ -32,14 +32,11 @@ import org.neo4j.jdbc.bolt.BoltNeo4jDatabaseMetaData;
 import org.neo4j.jdbc.bolt.BoltNeo4jPreparedStatement;
 import org.neo4j.jdbc.bolt.BoltNeo4jResultSet;
 import org.neo4j.jdbc.bolt.BoltNeo4jStatement;
-import org.neo4j.jdbc.utils.BoltNeo4jUtils;
 import org.neo4j.jdbc.boltrouting.BoltRoutingNeo4jDriver;
 import org.neo4j.jdbc.impl.Neo4jConnectionImpl;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
+import org.neo4j.jdbc.utils.BoltNeo4jUtils;
 import org.neo4j.jdbc.utils.TimeLimitedCodeBlock;
 
-import java.lang.reflect.Proxy;
-import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLClientInfoException;
 import java.sql.SQLException;
@@ -87,10 +84,7 @@ public class BoltNeo4jConnectionImpl extends Neo4jConnectionImpl implements Bolt
 	}
 
 	public static BoltNeo4jConnection newInstance(Driver driver, Properties info, String url) {
-		BoltNeo4jConnection boltConnection = new BoltNeo4jConnectionImpl(driver, info, url);
-		return (BoltNeo4jConnection) Proxy
-				.newProxyInstance(BoltNeo4jConnectionImpl.class.getClassLoader(), new Class[] { Connection.class, BoltNeo4jConnection.class },
-						new Neo4jInvocationHandler(boltConnection, BoltNeo4jConnectionImpl.hasDebug(info)));
+		return new BoltNeo4jConnectionImpl(driver, info, url);
 	}
 
 	/**
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
index 0b448dc2..0d09f2b9 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jDatabaseMetaData.java
@@ -252,11 +252,11 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	}
 
 	@Override public ResultSet getSchemas() throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_SCHEM","TABLE_CATALOG"));
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_SCHEM","TABLE_CATALOG"));
 	}
 
 	@Override public ResultSet getCatalogs() throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_CAT"));
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Arrays.asList("TABLE_CAT"));
 	}
 
 	@Override public ResultSet getTableTypes() throws SQLException {
@@ -264,11 +264,11 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 		tableTypes.add("TABLE");
 		List<List<Object>> schemas = new ArrayList<>();
 		schemas.add(tableTypes);
-		return ListNeo4jResultSet.newInstance(false, schemas, Arrays.asList("TABLE_TYPE"));
+		return ListNeo4jResultSet.newInstance(schemas, Arrays.asList("TABLE_TYPE"));
 	}
 
 	@Override public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) throws SQLException {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 
 	/**
@@ -282,7 +282,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	 */
 	@Override public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException {
 		if (this.databaseLabels == null || this.databaseLabels.isEmpty()) {
-			return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+			return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 		}
 
 		//TODO how to manage types? nowadays there's only 'TABLE'
@@ -295,7 +295,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 				tables.add(databaseLabel.toResultSetRow());
 			}
 		}
-		return ListNeo4jResultSet.newInstance(false, tables, Table.getColumns());
+		return ListNeo4jResultSet.newInstance(tables, Table.getColumns());
 	}
 
 	/**
@@ -324,7 +324,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	 */
 	@Override public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException {
 		if (this.databaseProperties == null || this.databaseProperties.isEmpty()) {
-			return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+			return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 		}
 
 		String tablePattern = toPattern(tableNamePattern);
@@ -337,7 +337,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 				columns.add(databaseKey.toResultSetRow());
 			}
 		}
-		return ListNeo4jResultSet.newInstance(false, columns, Column.getColumns());
+		return ListNeo4jResultSet.newInstance(columns, Column.getColumns());
 	}
 
 	@Override public String getSearchStringEscape() throws SQLException {
@@ -729,7 +729,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 	}
 
 	private ResultSet emptyResultSet() {
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 	@Override public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern)
 			throws SQLException {
@@ -865,7 +865,7 @@ public abstract class Neo4jDatabaseMetaData implements java.sql.DatabaseMetaData
 						.map(row::get)
 						.collect(Collectors.toList()))
 				.collect(Collectors.toList());
-		return ListNeo4jResultSet.newInstance(false, data, keys);
+		return ListNeo4jResultSet.newInstance(data, keys);
 	}
 
 	@Override public boolean supportsResultSetType(int type) throws SQLException {
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
index 8e59cd5e..96ef3953 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/Neo4jStatement.java
@@ -22,7 +22,6 @@ package org.neo4j.jdbc;
 import org.neo4j.jdbc.impl.ListNeo4jResultSet;
 import org.neo4j.jdbc.utils.ExceptionBuilder;
 
-import javax.xml.transform.Result;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.SQLWarning;
@@ -307,7 +306,7 @@ public abstract class Neo4jStatement implements Statement, Loggable {
 
 	@Override public ResultSet getGeneratedKeys() throws SQLException {
 		// TODO should at least return the <id>?
-		return ListNeo4jResultSet.newInstance(false, Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
+		return ListNeo4jResultSet.newInstance(Collections.<List<Object>>emptyList(), Collections.<String>emptyList());
 	}
 
 	@Override public void cancel() throws SQLException {} // do nothing
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
index 65d0308c..d203a633 100644
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
+++ b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/impl/ListNeo4jResultSet.java
@@ -22,9 +22,7 @@ package org.neo4j.jdbc.impl;
 import org.neo4j.jdbc.Neo4jArray;
 import org.neo4j.jdbc.Neo4jResultSet;
 import org.neo4j.jdbc.Neo4jResultSetMetaData;
-import org.neo4j.jdbc.utils.Neo4jInvocationHandler;
 
-import java.lang.reflect.Proxy;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.List;
@@ -47,10 +45,8 @@ public class ListNeo4jResultSet extends Neo4jResultSet {
 		this.keys = keys;
 	}
 
-	public static ResultSet newInstance(boolean debug, List<List<Object>> list, List<String> keys) {
-		ResultSet rs = new ListNeo4jResultSet(list, keys);
-		return (ResultSet) Proxy
-				.newProxyInstance(ListNeo4jResultSet.class.getClassLoader(), new Class[] { ResultSet.class }, new Neo4jInvocationHandler(rs, debug));
+	public static ResultSet newInstance(List<List<Object>> list, List<String> keys) {
+		return new ListNeo4jResultSet(list, keys);
 	}
 
 	@Override protected boolean innerNext() throws SQLException {
diff --git a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java b/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java
deleted file mode 100644
index 820218df..00000000
--- a/neo4j-jdbc/src/main/java/org/neo4j/jdbc/utils/Neo4jInvocationHandler.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * Copyright (c) 2016 LARUS Business Automation [http://www.larus-ba.it]
- * <p>
- * This file is part of the "LARUS Integration Framework for Neo4j".
- * <p>
- * The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * <p>
- * Created on 22/12/17
- */
-package org.neo4j.jdbc.utils;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.logging.Logger;
-
-/**
- * @author Gianmarco Laggia @ Larus B.A.
- * @since 3.2.0
- */
-public class Neo4jInvocationHandler implements InvocationHandler {
-
-	private static final Logger LOGGER = Logger.getLogger(Neo4jInvocationHandler.class.getName());
-
-	private final Map<String, Method> methods = new HashMap<>();
-
-	private Object  target;
-	private boolean debug;
-
-	public Neo4jInvocationHandler(Object target, boolean debug) {
-		this.target = target;
-		this.debug = debug;
-
-		for (Method method : target.getClass().getMethods()) {
-			String key = getUniqueKeyFromMethod(method);
-			this.methods.put(key, method);
-		}
-	}
-
-	@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-		try {
-			Object result = methods.get(getUniqueKeyFromMethod(method)).invoke(target, args);
-
-			if (debug) {
-				LOGGER.info("[" + target.getClass().getCanonicalName() + "] " + method.getName());
-			}
-
-			return result;
-		} catch (InvocationTargetException e) {
-			throw e.getCause();
-		}
-	}
-
-	private String getUniqueKeyFromMethod(Method method) {
-		String key = method.getName() + "_";
-		for(Class type : method.getParameterTypes()) {
-			key += type.getCanonicalName() + "_";
-		}
-		return key;
-	}
-}


Test patch:
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
index f292bc3b..08c61fab 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetGettersTest.java
@@ -59,7 +59,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void findColumnShouldReturnCorrectIndex() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertEquals(1, resultSet.findColumn("columnA"));
 		assertEquals(2, resultSet.findColumn("columnB"));
@@ -68,7 +68,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void findColumnShouldReturnCorrectIndexOnDifferentColumns() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_DIFF, ResultSetData.RECORD_LIST_MORE_ELEMENTS_DIFF);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertEquals(1, resultSet.findColumn("columnA"));
 		assertEquals(2, resultSet.findColumn("columnB"));
@@ -80,7 +80,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.findColumn("columnZ");
@@ -90,7 +90,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.findColumn("columnA");
@@ -103,7 +103,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringByLabelShouldReturnString() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString("columnString"));
@@ -117,7 +117,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString("columnZ");
@@ -127,7 +127,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getString("columnString");
@@ -136,7 +136,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringByIndexShouldReturnString() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString(2));
@@ -150,7 +150,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString(99);
@@ -161,7 +161,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getString(0);
@@ -171,7 +171,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getString(2);
@@ -184,7 +184,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString("node.property1"));
@@ -197,7 +197,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getString(5));
@@ -206,7 +206,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnNode() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_labels\":[\"label1\", \"label2\"], \"property2\":1, \"property1\":\"value1\"}", resultSet.getString("node"));
@@ -218,7 +218,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnStringOnNode() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_labels\":[\"label1\", \"label2\"], \"property2\":1, \"property1\":\"value1\"}", resultSet.getString("node"));
@@ -230,7 +230,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnRelationship() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_RELATIONS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_RELATIONS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("{\"_id\":1, \"_type\":\"type1\", \"_startId\":1, \"_endId\":2, \"property2\":100, \"property1\":\"value\"}", resultSet.getString("relation"));
@@ -242,7 +242,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getStringShouldReturnStringOnPath() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_PATHS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_PATHS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(
@@ -262,7 +262,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntByLabelShouldReturnInt() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt("columnInt"));
@@ -276,7 +276,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt("columnZ");
@@ -286,7 +286,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getInt("columnInt");
@@ -295,7 +295,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntByIndexShouldReturnInt() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt(1));
@@ -309,7 +309,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt(99);
@@ -320,7 +320,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getInt(0);
@@ -330,7 +330,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getInt(1);
@@ -343,7 +343,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt("node.id"));
@@ -357,7 +357,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getInt(2));
@@ -367,7 +367,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getIntShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getInt("columnA"));
@@ -381,7 +381,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatByLabelShouldReturnFloat() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0.1F, resultSet.getFloat("columnFloat"), 0);
@@ -395,7 +395,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat("columnZ");
@@ -405,7 +405,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getFloat("columnFloat");
@@ -414,7 +414,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatByIndexShouldReturnFloat() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0.1F, resultSet.getFloat(3), 0);
@@ -428,7 +428,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat(99);
@@ -439,7 +439,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getFloat(0);
@@ -449,7 +449,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getFloat(3);
@@ -458,7 +458,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getFloatShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0F, resultSet.getFloat("columnA"), 0);
@@ -472,7 +472,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortByLabelShouldReturnShort() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getShort("columnShort"));
@@ -486,7 +486,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort("columnZ");
@@ -496,7 +496,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getShort("columnShort");
@@ -505,7 +505,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortByIndexShouldReturnShort() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(1, resultSet.getShort(1));
@@ -519,7 +519,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort(99);
@@ -530,7 +530,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getShort(0);
@@ -540,7 +540,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getShort(3);
@@ -549,7 +549,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getShortShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getShort("columnA"));
@@ -563,7 +563,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleByLabelShouldReturnDouble() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(02.29D, resultSet.getDouble("columnDouble"), 0);
@@ -577,7 +577,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getDouble("columnZ");
@@ -587,7 +587,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getDouble("columnDouble");
@@ -596,7 +596,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleByIndexShouldReturnDouble() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(02.29D, resultSet.getDouble(5), 0);
@@ -610,7 +610,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 		resultSet.next();
 		resultSet.getDouble(99);
 	}
@@ -620,7 +620,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getDouble(0);
@@ -630,7 +630,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getDouble(5);
@@ -639,7 +639,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getDoubleShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0D, resultSet.getDouble("columnA"), 0);
@@ -653,7 +653,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByLabelShouldReturnObject() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getObject("columnString").toString());
@@ -670,7 +670,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present");
@@ -681,7 +681,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present");
@@ -690,7 +690,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByIndexShouldReturnObject() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("value1", resultSet.getObject(2).toString());
@@ -706,7 +706,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(99);
@@ -717,7 +717,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(0);
@@ -728,7 +728,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject(1);
@@ -737,7 +737,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectNodeAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 
@@ -763,7 +763,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectRelationsAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_RELATIONS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_RELATIONS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(new HashMap<String, Object>() {
@@ -792,7 +792,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectShouldReturnCorrectPathAsMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_PATHS, ResultSetData.RECORD_LIST_MORE_ELEMENTS_PATHS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		assertTrue(resultSet.next());
 		assertEquals(new ArrayList<Object>() {
@@ -872,7 +872,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnLabelAndCastToClass() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.next();
@@ -909,7 +909,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("columnA", (Class<?>) null);
@@ -920,7 +920,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present", (Class<?>) null);
@@ -931,7 +931,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present", (Class<?>) null);
@@ -940,7 +940,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnIndexAndCastToClass() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertNotNull(resultSet.getObject(1, Double.class));
@@ -951,7 +951,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(1, (Class<?>) null);
@@ -962,7 +962,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(0, (Class<?>) null);
@@ -973,7 +973,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject(99, Double.class);
@@ -984,7 +984,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject(1, (Class<?>) null);
@@ -995,7 +995,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getObject("not present", (Map<String, Class<?>>) null);
@@ -1006,7 +1006,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.getObject("not present", (Map<String, Class<?>>) null);
@@ -1017,7 +1017,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		Map<String, Class<?>> map = new HashMap<>();
 
@@ -1030,7 +1030,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		Map<String, Class<?>> map = new HashMap<>();
 
@@ -1041,7 +1041,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getObjectByColumnLabelAndMap() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false,null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.next();
@@ -1061,7 +1061,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanByLabelShouldReturnBoolean() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertTrue(resultSet.getBoolean("columnBoolean"));
@@ -1079,7 +1079,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean("columnZ");
@@ -1089,7 +1089,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getBoolean("columnBoolean");
@@ -1098,7 +1098,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanByIndexShouldReturnBoolean() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertTrue(resultSet.getBoolean(6));
@@ -1112,7 +1112,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean(99);
@@ -1123,7 +1123,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getBoolean(0);
@@ -1133,7 +1133,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getBoolean(6);
@@ -1142,7 +1142,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getBooleanShouldReturnFalseForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(false, resultSet.getBoolean("columnA"));
@@ -1156,7 +1156,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongByLabelShouldReturnLong() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(2L, resultSet.getLong("columnLong"));
@@ -1170,7 +1170,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong("columnZ");
@@ -1180,7 +1180,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong("columnLong");
@@ -1189,7 +1189,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongByIndexShouldReturnLong() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(2L, resultSet.getLong(7));
@@ -1203,7 +1203,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(99);
@@ -1214,7 +1214,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(0);
@@ -1224,7 +1224,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong(7);
@@ -1233,7 +1233,7 @@ public class BoltNeo4jResultSetGettersTest {
 	@Test public void getLongShouldReturnZeroForNull() throws SQLException {
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_NULL_ELEMENT, ResultSetData.RECORD_LIST_ONE_NULL_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals(0, resultSet.getLong("columnA"));
@@ -1248,14 +1248,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getHoldability();
 	}
 
 	@Test public void getHoldabilityShouldReturnCorrectHoldability() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT, resultSet.getHoldability());
 	}
 
@@ -1267,14 +1267,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getType();
 	}
 
 	@Test public void getTypeShouldReturnCorrectType() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.TYPE_FORWARD_ONLY, resultSet.getType());
 	}
 
@@ -1286,14 +1286,14 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getConcurrency();
 	}
 
 	@Test public void getConcurrencyShouldReturnCorrectConcurrency() throws SQLException {
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null, Neo4jResultSet.TYPE_FORWARD_ONLY, Neo4jResultSet.CONCUR_READ_ONLY, Neo4jResultSet.CLOSE_CURSORS_AT_COMMIT);
 		assertEquals(Neo4jResultSet.CONCUR_READ_ONLY, resultSet.getConcurrency());
 	}
 
@@ -1302,7 +1302,7 @@ public class BoltNeo4jResultSetGettersTest {
 	/*------------------------------*/
 	@Test public void getArrayByLabelShouldReturnArray() throws SQLException {
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("a", ((String[]) resultSet.getArray("array").getArray())[0]);
@@ -1329,7 +1329,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong("columnZ");
@@ -1339,7 +1339,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong("array");
@@ -1347,7 +1347,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 	@Test public void getArrayByIndexShouldReturnArray() throws SQLException {
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		assertEquals("a", ((String[]) resultSet.getArray(1).getArray())[0]);
@@ -1374,7 +1374,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(99);
@@ -1384,7 +1384,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result statementResult = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.next();
 		resultSet.getLong(0);
@@ -1394,7 +1394,7 @@ public class BoltNeo4jResultSetGettersTest {
 		expectedEx.expect(SQLException.class);
 
 		Result spyCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_WITH_ARRAY, ResultSetData.RECORD_LIST_WITH_ARRAY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, spyCursor);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, spyCursor);
 
 		resultSet.close();
 		resultSet.getLong(7);
@@ -1407,7 +1407,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertArrayEquals(new String[] { "label1", "label2" }, (String[]) resultSet.getArray("node.labels").getArray());
@@ -1420,7 +1420,7 @@ public class BoltNeo4jResultSetGettersTest {
 		when(c.getFlattening()).thenReturn(1);
 		Neo4jStatement stmt = mock(Neo4jStatement.class);
 		when(stmt.getConnection()).thenReturn(c);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, stmt, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(stmt, statementResult);
 
 		resultSet.next();
 		assertArrayEquals(new String[] { "label1", "label2" }, (String[]) resultSet.getArray(3).getArray());
@@ -1434,7 +1434,7 @@ public class BoltNeo4jResultSetGettersTest {
 
 		Result statementResult = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_MIXED, ResultSetData.RECORD_LIST_MORE_ELEMENTS_MIXED);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, statementResult);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, statementResult);
 
 		resultSet.close();
 		resultSet.wasNull();
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
index 251b0250..411dfffd 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetIterationTest.java
@@ -45,14 +45,14 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Test public void nextShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.next());
 	}
 
 	@Test public void nextShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 	}
@@ -60,7 +60,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnTrueMoreElements() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -69,7 +69,7 @@ public class BoltNeo4jResultSetIterationTest {
 
 	@Test public void nextShouldReturnFalseAfterLast() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 
@@ -79,7 +79,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnFalseAfterLastMoreElements() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -92,7 +92,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldReturnTrueAndPointNextNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertEquals("valueA1", resultSet.getString("columnA"));
@@ -106,7 +106,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Test public void nextShouldThrowExceptionEmpty() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.next();
 	}
@@ -116,7 +116,7 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void previousShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.previous());
 	}
@@ -124,7 +124,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -135,7 +135,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnFalseBeforeFirst() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 		Assert.assertTrue(resultSet.next());
@@ -148,7 +148,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldReturnTrueAndPointPreviousNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 
@@ -164,7 +164,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void previousShouldThrowExceptionEmpty() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.previous();
 	}
@@ -174,21 +174,21 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void firstShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.first());
 	}
 
 	@Ignore @Test public void firstShouldReturnTrueOnFirst() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.first());
 	}
 
 	@Ignore @Test public void firstShouldReturnTrueNotOnFirst() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.next());
 
@@ -197,7 +197,7 @@ public class BoltNeo4jResultSetIterationTest {
 
 	@Ignore @Test public void firstShouldReturnTrueAndPointFirstElement() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.first());
 		Assert.assertEquals("valueA1", resultSet.getString("columnA"));
@@ -207,7 +207,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void firstShouldThrowExceptionClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 		resultSet.first();
@@ -216,7 +216,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void firstShouldThrowExceptionForwardOnly() throws SQLException {
 		expectedEx.expect(SQLFeatureNotSupportedException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.first();
 	}
@@ -226,14 +226,14 @@ public class BoltNeo4jResultSetIterationTest {
 	/*------------------------------*/
 	@Ignore @Test public void lastShouldReturnFalseEmpty() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertFalse(resultSet.last());
 	}
 
 	@Ignore @Test public void lastShouldReturnTrue() throws SQLException {
 		Result Result = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_ONE_ELEMENT, ResultSetData.RECORD_LIST_ONE_ELEMENT);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 	}
@@ -241,7 +241,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldReturnTrueAndPointLastNode() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		Assert.assertTrue(resultSet.last());
 		Assert.assertEquals("valueA3", resultSet.getString("columnA"));
@@ -251,7 +251,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldThrowExceptionClosed() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 		resultSet.last();
@@ -260,7 +260,7 @@ public class BoltNeo4jResultSetIterationTest {
 	@Ignore @Test public void lastShouldThrowExceptionForwardOnly() throws SQLException {
 		expectedEx.expect(SQLFeatureNotSupportedException.class);
 
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.last();
 	}
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
index 59ee50de..6ed56d08 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetMetaDataTest.java
@@ -55,14 +55,14 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnsCountShouldReturnCorrectNumberEmpty() throws SQLException {
 		Result resultIterator = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultIterator.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultIterator.keys());
 
 		assertEquals(0, resultSet.getColumnCount());
 	}
 
 	@Test public void getColumnsCountShouldReturnCorrectNumberMoreElements() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals(2, resultSet.getColumnCount());
 	}
@@ -73,7 +73,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnNameShouldReturnCorrectColumnName() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals("columnA", resultSet.getColumnName(1));
 	}
@@ -82,7 +82,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSetMetaData = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSetMetaData = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSetMetaData.getColumnName(1);
 	}
@@ -91,7 +91,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnName(99);
 	}
@@ -99,7 +99,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnNameShouldThrowExceptionIfCursorNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		resultSet.getColumnName(1);
 	}
@@ -110,7 +110,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 
 	@Test public void getColumnLabelShouldReturnCorrectColumnName() throws SQLException {
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		assertEquals("columnA", resultSet.getColumnLabel(1));
 	}
@@ -119,7 +119,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnLabel(1);
 	}
@@ -128,7 +128,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		expectedEx.expect(SQLException.class);
 
 		Result resultCursor = ResultSetData.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_EMPTY, ResultSetData.RECORD_LIST_EMPTY);
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, resultCursor.keys());
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, resultCursor.keys());
 
 		resultSet.getColumnLabel(99);
 	}
@@ -136,7 +136,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnLabelShouldThrowExceptionIfCursorNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
 
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		resultSet.getColumnLabel(1);
 	}
@@ -146,7 +146,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	/*------------------------------*/
 
 	@Test public void getSchemaNameShouldReturnDefaultValue() throws SQLException {
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		assertEquals("", resultSet.getSchemaName(1));
 	}
@@ -156,7 +156,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	/*------------------------------*/
 
 	@Test public void getCatalogNameShouldReturnEmptyString() throws SQLException {
-		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST, Collections.EMPTY_LIST);
+		ResultSetMetaData resultSet = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
 
 		assertEquals("", resultSet.getCatalogName(1));
 	}
@@ -168,7 +168,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void flatteningTestWorking() throws SQLException {
 		Result resultCursor = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, Collections.EMPTY_LIST,
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(Collections.EMPTY_LIST,
 				Arrays.asList(new String[] { "node", "node.id", "node.label", "node.property2", "node.property1" }));
 
 		assertEquals(5, rsm.getColumnCount());
@@ -198,7 +198,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		List<String> cols = Arrays.asList(
 				"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"
 		);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, types, cols);
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(types, cols);
 		assertEquals("java.lang.String", rsm.getColumnClassName(1));
 		assertEquals("java.lang.Long", rsm.getColumnClassName(2));
 		assertEquals("java.lang.Boolean", rsm.getColumnClassName(3));
@@ -232,7 +232,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 		List<String> cols = Arrays.asList(
 				"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"
 		);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, types, cols);
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(types, cols);
 		assertEquals(Types.VARCHAR, rsm.getColumnType(1));
 		assertEquals(Types.INTEGER, rsm.getColumnType(2));
 		assertEquals(Types.BOOLEAN, rsm.getColumnType(3));
@@ -250,7 +250,7 @@ public class BoltNeo4jResultSetMetaDataTest {
 	@Test public void getColumnTypeNameTest() throws SQLException {
 		Result resultCursor = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS_NODES, ResultSetData.RECORD_LIST_MORE_ELEMENTS_NODES);
-		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(false, Arrays.asList(new Type[] { InternalTypeSystem.TYPE_SYSTEM.NODE() }),
+		ResultSetMetaData rsm = BoltNeo4jResultSetMetaData.newInstance(Arrays.asList(new Type[] { InternalTypeSystem.TYPE_SYSTEM.NODE() }),
 				Arrays.asList(new String[] { "node" }));
 
 		assertEquals(1, rsm.getColumnCount());
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
index 79f95528..20d85ce9 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jResultSetTest.java
@@ -51,7 +51,7 @@ public class BoltNeo4jResultSetTest {
 	@Test public void isClosedReturnFalseWhenConnectionOpen() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		assertFalse(resultSet.isClosed());
 	}
@@ -60,7 +60,7 @@ public class BoltNeo4jResultSetTest {
 	@Test public void isClosedReturnTrueWhenConnectionClosed() throws SQLException {
 		Result Result = ResultSetData
 				.buildResultCursor(ResultSetData.KEYS_RECORD_LIST_MORE_ELEMENTS, ResultSetData.RECORD_LIST_MORE_ELEMENTS);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, Result);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, Result);
 
 		resultSet.close();
 		assertTrue(resultSet.isClosed());
@@ -72,7 +72,7 @@ public class BoltNeo4jResultSetTest {
 
 	@Test public void closeShouldThrowExceptionIfIteratorIsNull() throws SQLException {
 		expectedEx.expect(SQLException.class);
-		ResultSet resultSet = BoltNeo4jResultSet.newInstance(false, null, null);
+		ResultSet resultSet = BoltNeo4jResultSet.newInstance(null, null);
 
 		resultSet.close();
 	}
diff --git a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
index 99ffd774..3968b15c 100644
--- a/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
+++ b/neo4j-jdbc-bolt/src/test/java/org/neo4j/jdbc/bolt/BoltNeo4jStatementTest.java
@@ -163,7 +163,7 @@ public class BoltNeo4jStatementTest {
 		statement.executeQuery(StatementData.STATEMENT_MATCH_ALL);
 
 //		verifyStatic(BoltNeo4jResultSet.class);
-		BoltNeo4jResultSet.newInstance(false, statement, null, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+		BoltNeo4jResultSet.newInstance(statement, null, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
 	}
 
 	@Test public void executeQueryShouldThrowExceptionOnClosedStatement() throws SQLException {