You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2013/06/06 01:13:37 UTC
svn commit: r1490071 - in /jena/Experimental/jena-jdbc:
jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/
jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/
jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/conn...
Author: rvesse
Date: Wed Jun 5 23:13:36 2013
New Revision: 1490071
URL: http://svn.apache.org/r1490071
Log:
More connection tests and some minor bug fixes
Modified:
jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/DatasetConnection.java
jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/connections/RemoteEndpointConnection.java
Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/DatasetConnection.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/DatasetConnection.java?rev=1490071&r1=1490070&r2=1490071&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/DatasetConnection.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/main/java/org/apache/jena/jdbc/connections/DatasetConnection.java Wed Jun 5 23:13:36 2013
@@ -20,6 +20,8 @@ package org.apache.jena.jdbc.connections
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+
import org.apache.jena.jdbc.JdbcCompatibility;
import org.apache.jena.jdbc.statements.DatasetPreparedStatement;
import org.apache.jena.jdbc.statements.DatasetStatement;
@@ -89,9 +91,9 @@ public abstract class DatasetConnection
protected JenaStatement createStatementInternal(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
throws SQLException {
if (resultSetType == ResultSet.TYPE_SCROLL_SENSITIVE)
- throw new SQLException("Dataset backed connections do not support scroll sensitive result sets");
+ throw new SQLFeatureNotSupportedException("Dataset backed connections do not support scroll sensitive result sets");
if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY)
- throw new SQLException("Dataset backed connections only supports read-only result sets");
+ throw new SQLFeatureNotSupportedException("Dataset backed connections only supports read-only result sets");
return new DatasetStatement(this, resultSetType, ResultSet.FETCH_FORWARD, 0, resultSetHoldability, this.getAutoCommit(),
this.getTransactionIsolation());
}
@@ -100,9 +102,9 @@ public abstract class DatasetConnection
protected JenaPreparedStatement createPreparedStatementInternal(String sparql, int resultSetType, int resultSetConcurrency,
int resultSetHoldability) throws SQLException {
if (resultSetType == ResultSet.TYPE_SCROLL_SENSITIVE)
- throw new SQLException("Dataset backed connections do not support scroll sensitive result sets");
+ throw new SQLFeatureNotSupportedException("Dataset backed connections do not support scroll sensitive result sets");
if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY)
- throw new SQLException("Dataset backed connections only supports read-only result sets");
+ throw new SQLFeatureNotSupportedException("Dataset backed connections only supports read-only result sets");
return new DatasetPreparedStatement(sparql, this, resultSetType, ResultSet.FETCH_FORWARD, 0, resultSetHoldability,
this.getAutoCommit(), this.getTransactionIsolation());
}
Modified: jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java?rev=1490071&r1=1490070&r2=1490071&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-core/src/test/java/org/apache/jena/jdbc/connections/AbstractJenaConnectionTests.java Wed Jun 5 23:13:36 2013
@@ -1353,7 +1353,8 @@ public abstract class AbstractJenaConnec
/**
* Tests error cases for transactions
- * @throws SQLException
+ *
+ * @throws SQLException
*/
@Test(expected = SQLException.class)
public void connection_transaction_bad_01() throws SQLException {
@@ -1364,10 +1365,11 @@ public abstract class AbstractJenaConnec
// error
conn.commit();
}
-
+
/**
* Tests error cases for transactions
- * @throws SQLException
+ *
+ * @throws SQLException
*/
@Test(expected = SQLException.class)
public void connection_transaction_bad_02() throws SQLException {
@@ -1426,7 +1428,7 @@ public abstract class AbstractJenaConnec
*
* @throws SQLException
*/
- @Test(expected = SQLException.class)
+ @Test(expected = SQLFeatureNotSupportedException.class)
public void connection_statement_bad_creation_04() throws SQLException {
JenaConnection conn = this.getConnection();
@@ -1443,7 +1445,7 @@ public abstract class AbstractJenaConnec
*
* @throws SQLException
*/
- @Test(expected = SQLException.class)
+ @Test(expected = SQLFeatureNotSupportedException.class)
public void connection_statement_bad_creation_05() throws SQLException {
JenaConnection conn = this.getConnection();
@@ -1541,6 +1543,40 @@ public abstract class AbstractJenaConnec
}
/**
+ * Test error cases for creating prepared statements
+ *
+ * @throws SQLException
+ */
+ @Test(expected = SQLFeatureNotSupportedException.class)
+ public void connection_prepared_statement_bad_creation_07() throws SQLException {
+ JenaConnection conn = this.getConnection();
+
+ try {
+ // Creating a statement with SCROLL_SENSITIVE is not supported
+ conn.prepareStatement("SELECT * WHERE { ?s ?p ?o }", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
+ } finally {
+ conn.close();
+ }
+ }
+
+ /**
+ * Test error cases for creating prepared statements
+ *
+ * @throws SQLException
+ */
+ @Test(expected = SQLFeatureNotSupportedException.class)
+ public void connection_prepared_statement_bad_creation_08() throws SQLException {
+ JenaConnection conn = this.getConnection();
+
+ try {
+ // Creating a statement with CONCUR_UPDATABLE is not supported
+ conn.prepareStatement("SELECT * WHERE { ?s ?p ?o }", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
+ } finally {
+ conn.close();
+ }
+ }
+
+ /**
* Runs a batch of operations and checks the results results
*
* @throws SQLException
@@ -2033,7 +2069,7 @@ public abstract class AbstractJenaConnec
conn.close();
}
}
-
+
/**
* Tests error cases around type maps which are unsupported
*
@@ -2113,27 +2149,28 @@ public abstract class AbstractJenaConnec
conn.close();
}
}
-
+
/**
* Tests usage of client info
+ *
* @throws SQLException
*/
@Test
public void connection_client_info_01() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
// Check initially empty
Properties ps = conn.getClientInfo();
Assert.assertNotNull(ps);
Assert.assertEquals(0, ps.size());
-
+
// Add a value and check it
conn.setClientInfo("key", "value");
ps = conn.getClientInfo();
Assert.assertNotNull(ps);
Assert.assertEquals(1, ps.size());
Assert.assertEquals("value", conn.getClientInfo("key"));
-
+
// Replace values with a new set and check
Properties props = new Properties();
props.put("a", 1);
@@ -2142,179 +2179,190 @@ public abstract class AbstractJenaConnec
ps = conn.getClientInfo();
Assert.assertNotNull(ps);
Assert.assertEquals(2, ps.size());
-
+
conn.close();
}
-
+
/**
* Tests usage of client info
+ *
* @throws SQLException
*/
@Test
public void connection_client_info_02() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
// Add and retrieve a key
conn.setClientInfo("key", "value");
String value = conn.getClientInfo("key");
Assert.assertEquals("value", value);
-
+
// Non-existent key should give null
Assert.assertNull(conn.getClientInfo("test"));
-
+
conn.close();
}
-
+
/**
* Check catalog retrieval
+ *
* @throws SQLException
*/
@Test
public void connection_catalog_01() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNotNull(conn.getCatalog());
-
+
conn.close();
}
-
+
/**
* Check warnings usage
+ *
* @throws SQLException
*/
@Test
public void connection_warnings_01() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNull(conn.getWarnings());
-
+
conn.close();
}
-
+
/**
* Check warnings usage
+ *
* @throws SQLException
*/
@Test
public void connection_warnings_02() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNull(conn.getWarnings());
conn.setWarning("Test");
Assert.assertNotNull(conn.getWarnings());
conn.clearWarnings();
Assert.assertNull(conn.getWarnings());
-
+
conn.close();
}
-
+
/**
* Check warnings usage
+ *
* @throws SQLException
*/
@Test
public void connection_warnings_03() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNull(conn.getWarnings());
conn.setWarning("Test", new Exception());
Assert.assertNotNull(conn.getWarnings());
conn.clearWarnings();
Assert.assertNull(conn.getWarnings());
-
+
conn.close();
}
-
+
/**
* Check warnings usage
+ *
* @throws SQLException
*/
@Test
public void connection_warnings_04() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNull(conn.getWarnings());
conn.setWarning(new SQLWarning());
Assert.assertNotNull(conn.getWarnings());
conn.clearWarnings();
Assert.assertNull(conn.getWarnings());
-
+
conn.close();
}
-
+
/**
* Check warnings usage
+ *
* @throws SQLException
*/
@Test
public void connection_warnings_05() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
Assert.assertNull(conn.getWarnings());
conn.setWarning("A");
Assert.assertNotNull(conn.getWarnings());
conn.setWarning("B");
Assert.assertNotNull(conn.getWarnings());
- Assert.assertNotNull(conn.getWarnings().getCause());
+ Assert.assertNotNull(conn.getWarnings().getNextWarning());
conn.clearWarnings();
Assert.assertNull(conn.getWarnings());
-
+
conn.close();
}
-
+
/**
* Tests error cases for unsupported wrapper features
+ *
* @throws SQLException
*/
- @Test(expected=SQLFeatureNotSupportedException.class)
+ @Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_wrapper_01() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.isWrapperFor(JenaConnection.class);
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported wrapper features
+ *
* @throws SQLException
*/
- @Test(expected=SQLFeatureNotSupportedException.class)
+ @Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_wrapper_02() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.unwrap(JenaConnection.class);
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_01() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createArrayOf("test", new Object[0]);
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_02() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createBlob();
} finally {
@@ -2324,61 +2372,108 @@ public abstract class AbstractJenaConnec
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_03() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createClob();
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_04() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createNClob();
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_05() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createSQLXML();
} finally {
conn.close();
}
}
-
+
/**
* Tests error cases for unsupported create operations
+ *
* @throws SQLException
*/
@Test(expected = SQLFeatureNotSupportedException.class)
public void connection_bad_create_06() throws SQLException {
JenaConnection conn = this.getConnection();
-
+
try {
conn.createStruct("test", new Object[0]);
} finally {
conn.close();
}
}
+
+ /**
+ * Tests connection validity
+ *
+ * @throws SQLException
+ */
+ @Test
+ public void connection_validity_01() throws SQLException {
+ JenaConnection conn = this.getConnection();
+
+ Assert.assertTrue(conn.isValid(0));
+ conn.close();
+ Assert.assertFalse(conn.isValid(0));
+ }
+
+ /**
+ * Tests read only settings
+ *
+ * @throws SQLException
+ */
+ @Test
+ public void connection_read_only_01() throws SQLException {
+ JenaConnection conn = this.getConnection();
+
+ Assert.assertFalse(conn.isReadOnly());
+ conn.setReadOnly(true);
+ Assert.assertTrue(conn.isReadOnly());
+ conn.close();
+ }
+
+ /**
+ * Tests read only settings
+ *
+ * @throws SQLException
+ */
+ @Test(expected = SQLException.class)
+ public void connection_read_only_02() throws SQLException {
+ JenaConnection conn = this.getConnection();
+ conn.close();
+
+ // Error to set on a closed connection
+ conn.setReadOnly(true);
+ }
}
Modified: jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/connections/RemoteEndpointConnection.java
URL: http://svn.apache.org/viewvc/jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/connections/RemoteEndpointConnection.java?rev=1490071&r1=1490070&r2=1490071&view=diff
==============================================================================
--- jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/connections/RemoteEndpointConnection.java (original)
+++ jena/Experimental/jena-jdbc/jena-jdbc-driver-remote/src/main/java/org/apache/jena/jdbc/remote/connections/RemoteEndpointConnection.java Wed Jun 5 23:13:36 2013
@@ -210,9 +210,9 @@ public class RemoteEndpointConnection ex
if (this.isClosed())
throw new SQLException("Cannot create a statement after the connection was closed");
if (resultSetType == ResultSet.TYPE_SCROLL_SENSITIVE)
- throw new SQLException("Remote endpoint backed connection do not support scroll sensitive result sets");
+ throw new SQLFeatureNotSupportedException("Remote endpoint backed connection do not support scroll sensitive result sets");
if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY)
- throw new SQLException("Remote endpoint backed connections only support read-only result sets");
+ throw new SQLFeatureNotSupportedException("Remote endpoint backed connections only support read-only result sets");
return new RemoteEndpointStatement(this, this.username, this.password, resultSetType, ResultSet.FETCH_FORWARD, 0,
resultSetHoldability);
}
@@ -223,9 +223,9 @@ public class RemoteEndpointConnection ex
if (this.isClosed())
throw new SQLException("Cannot create a statement after the connection was closed");
if (resultSetType == ResultSet.TYPE_SCROLL_SENSITIVE)
- throw new SQLException("Remote endpoint backed connection do not support scroll sensitive result sets");
+ throw new SQLFeatureNotSupportedException("Remote endpoint backed connection do not support scroll sensitive result sets");
if (resultSetConcurrency != ResultSet.CONCUR_READ_ONLY)
- throw new SQLException("Remote endpoint backed connections only support read-only result sets");
+ throw new SQLFeatureNotSupportedException("Remote endpoint backed connections only support read-only result sets");
return new RemoteEndpointPreparedStatement(sparql, this, this.username, this.password, resultSetType,
ResultSet.FETCH_FORWARD, 0, resultSetHoldability);
}