[Mulgara-svn] r1406 - in trunk/src/jar: query/java/org/mulgara/connection query/java/org/mulgara/query/operation server-rmi/java/org/mulgara/server/rmi
pag at mulgara.org
pag at mulgara.org
Fri Dec 5 23:53:45 UTC 2008
Author: pag
Date: 2008-12-05 15:53:44 -0800 (Fri, 05 Dec 2008)
New Revision: 1406
Modified:
trunk/src/jar/query/java/org/mulgara/connection/Connection.java
trunk/src/jar/query/java/org/mulgara/connection/DummyConnection.java
trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java
trunk/src/jar/query/java/org/mulgara/query/operation/Backup.java
trunk/src/jar/query/java/org/mulgara/query/operation/Export.java
trunk/src/jar/query/java/org/mulgara/query/operation/Load.java
trunk/src/jar/query/java/org/mulgara/query/operation/Restore.java
trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteSessionFactoryImpl.java
Log:
Detecting when remote data streaming is requested on local connections, and reporting an error
Modified: trunk/src/jar/query/java/org/mulgara/connection/Connection.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/connection/Connection.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/connection/Connection.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -116,6 +116,13 @@
/**
+ * Tests if this connection is over a network protocol.
+ * @return <code>true</code> if this connection is being executed over a network protocol.
+ */
+ public boolean isRemote();
+
+
+ /**
* Starts and commits transactions on this connection, by turning the autocommit
* flag on and off.
* @param autocommit <code>true</code> if the flag is to be on.
Modified: trunk/src/jar/query/java/org/mulgara/connection/DummyConnection.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/connection/DummyConnection.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/connection/DummyConnection.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -101,5 +101,13 @@
*/
public void dispose() throws QueryException {
}
+
+
+ /**
+ * Always returns <code>false</code>.
+ */
+ public boolean isRemote() {
+ return false;
+ }
}
Modified: trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/connection/SessionConnection.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -289,5 +289,14 @@
}
assert session != null;
}
+
+
+ /**
+ * Tests if the Connection is being conducted over a network.
+ * @return <code>true</code> if the underlying session is not local.
+ */
+ public boolean isRemote() {
+ return session != null && !session.isLocal();
+ }
}
Modified: trunk/src/jar/query/java/org/mulgara/query/operation/Backup.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/operation/Backup.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/query/operation/Backup.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -96,7 +96,12 @@
URI src = getSource();
URI dest = getDestination();
if (serverTest(src)) throw new QueryException("Cannot back up a graph. Must be a server URI.");
-
+
+ if (isLocal() && !conn.isRemote()) {
+ logger.error("Used a LOCAL modifier when backing up <" + src + "> to <" + dest + "> on a non-remote server.");
+ throw new QueryException("LOCAL modifier is not valid for BACKUP command when not using a client-server connection.");
+ }
+
try {
if (isLocal()) {
getMarshalledData(conn);
Modified: trunk/src/jar/query/java/org/mulgara/query/operation/Export.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/operation/Export.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/query/operation/Export.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -73,7 +73,12 @@
public Object execute(Connection conn) throws QueryException {
URI src = getSource();
URI dest = getDestination();
-
+
+ if (isLocal() && !conn.isRemote()) {
+ logger.error("Used a LOCAL modifier when exporting <" + src + "> to <" + dest + "> on a non-remote server.");
+ throw new QueryException("LOCAL modifier is not valid for EXPORT command when not using a client-server connection.");
+ }
+
try {
if (isLocal()) {
getMarshalledData(conn);
Modified: trunk/src/jar/query/java/org/mulgara/query/operation/Load.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/operation/Load.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/query/operation/Load.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -75,6 +75,12 @@
public Object execute(Connection conn) throws QueryException {
URI src = getSource();
URI dest = getDestination();
+
+ if (isLocal() && !conn.isRemote()) {
+ logger.error("Used a LOCAL modifier when loading <" + src + "> to <" + dest + "> on a non-remote server.");
+ throw new QueryException("LOCAL modifier is not valid for LOAD command when not using a client-server connection.");
+ }
+
try {
long stmtCount = isLocal() ? sendMarshalledData(conn, true) : conn.getSession().setModel(dest, srcRsc);
if (logger.isDebugEnabled()) logger.debug("Loaded " + stmtCount + " statements from " + src + " into " + dest);
Modified: trunk/src/jar/query/java/org/mulgara/query/operation/Restore.java
===================================================================
--- trunk/src/jar/query/java/org/mulgara/query/operation/Restore.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/query/java/org/mulgara/query/operation/Restore.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -89,6 +89,12 @@
URI src = getSource();
URI dest = getDestination();
if (serverTest(dest)) throw new QueryException("Cannot restore to a graph. Must be a server URI.");
+
+ if (isLocal() && !conn.isRemote()) {
+ logger.error("Used a LOCAL modifier when restoring <" + src + "> to <" + dest + "> on a non-remote server.");
+ throw new QueryException("LOCAL modifier is not valid for RESTORE command when not using a client-server connection.");
+ }
+
try {
if (isLocal()) sendMarshalledData(conn, false);
else conn.getSession().restore(src);
Modified: trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteSessionFactoryImpl.java
===================================================================
--- trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteSessionFactoryImpl.java 2008-12-05 23:53:03 UTC (rev 1405)
+++ trunk/src/jar/server-rmi/java/org/mulgara/server/rmi/RemoteSessionFactoryImpl.java 2008-12-05 23:53:44 UTC (rev 1406)
@@ -54,7 +54,6 @@
class RemoteSessionFactoryImpl implements RemoteSessionFactory {
/** Logger. This is named after the classname. */
- @SuppressWarnings("unused")
private final static Logger logger = Logger.getLogger(RemoteSessionFactoryImpl.class);
/** The local database. */
More information about the Mulgara-svn
mailing list