[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