summaryrefslogtreecommitdiff
path: root/java/demo/Manual/map_filesystem/FileI.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/demo/Manual/map_filesystem/FileI.java')
-rw-r--r--java/demo/Manual/map_filesystem/FileI.java221
1 files changed, 0 insertions, 221 deletions
diff --git a/java/demo/Manual/map_filesystem/FileI.java b/java/demo/Manual/map_filesystem/FileI.java
deleted file mode 100644
index 3381d17e5c1..00000000000
--- a/java/demo/Manual/map_filesystem/FileI.java
+++ /dev/null
@@ -1,221 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-import Filesystem.*;
-import FilesystemDB.*;
-
-public class FileI extends _FileDisp
-{
- public
- FileI(Ice.Communicator communicator, String envName)
- {
- _communicator = communicator;
- _envName = envName;
- }
-
- @Override
- public String
- name(Ice.Current c)
- {
- Freeze.Connection connection = Freeze.Util.createConnection(_communicator, _envName);
- try
- {
- IdentityFileEntryMap fileDB = new IdentityFileEntryMap(connection, filesDB());
-
- for(;;)
- {
- try
- {
- FileEntry entry = fileDB.get(c.id);
- if(entry == null)
- {
- throw new Ice.ObjectNotExistException();
- }
- return entry.name;
- }
- catch(Freeze.DeadlockException ex)
- {
- continue;
- }
- catch(Freeze.DatabaseException ex)
- {
- halt(ex);
- }
- }
- }
- finally
- {
- connection.close();
- }
- }
-
- @Override
- public String[]
- read(Ice.Current c)
- {
- Freeze.Connection connection = Freeze.Util.createConnection(_communicator, _envName);
- try
- {
- IdentityFileEntryMap fileDB = new IdentityFileEntryMap(connection, filesDB());
-
- for(;;)
- {
- try
- {
- FileEntry entry = fileDB.get(c.id);
- if(entry == null)
- {
- throw new Ice.ObjectNotExistException();
- }
- return entry.text;
- }
- catch(Freeze.DeadlockException ex)
- {
- continue;
- }
- catch(Freeze.DatabaseException ex)
- {
- halt(ex);
- }
- }
- }
- finally
- {
- connection.close();
- }
- }
-
- @Override
- public void
- write(String[] text, Ice.Current c)
- throws GenericError
- {
- Freeze.Connection connection = Freeze.Util.createConnection(_communicator, _envName);
- try
- {
- IdentityFileEntryMap fileDB = new IdentityFileEntryMap(connection, filesDB());
-
- for(;;)
- {
- try
- {
- FileEntry entry = fileDB.get(c.id);
- if(entry == null)
- {
- throw new Ice.ObjectNotExistException();
- }
- entry.text = text;
- fileDB.put(c.id, entry);
- break;
- }
- catch(Freeze.DeadlockException ex)
- {
- continue;
- }
- catch(Freeze.DatabaseException ex)
- {
- halt(ex);
- }
- }
- }
- finally
- {
- connection.close();
- }
- }
-
- @Override
- public void
- destroy(Ice.Current c)
- throws PermissionDenied
- {
- Freeze.Connection connection = Freeze.Util.createConnection(_communicator, _envName);
- try
- {
- IdentityFileEntryMap fileDB = new IdentityFileEntryMap(connection, filesDB());
- IdentityDirectoryEntryMap dirDB = new IdentityDirectoryEntryMap(connection, DirectoryI.directoriesDB());
-
- for(;;)
- {
- Freeze.Transaction txn = null;
- try
- {
- //
- // The transaction is necessary since we are
- // altering two records in one atomic action.
- //
- txn = connection.beginTransaction();
- FileEntry entry = fileDB.get(c.id);
- if(entry == null)
- {
- throw new Ice.ObjectNotExistException();
- }
-
- DirectoryEntry dirEntry = dirDB.get(entry.parent);
- if(dirEntry == null)
- {
- halt(new Freeze.DatabaseException("consistency error: file without parent"));
- }
-
- dirEntry.nodes.remove(entry.name);
- dirDB.put(entry.parent, dirEntry);
-
- fileDB.remove(c.id);
-
- txn.commit();
- txn = null;
- break;
- }
- catch(Freeze.DeadlockException ex)
- {
- continue;
- }
- catch(Freeze.DatabaseException ex)
- {
- halt(ex);
- }
- finally
- {
- if(txn != null)
- {
- txn.rollback();
- }
- }
- }
- }
- finally
- {
- connection.close();
- }
- }
-
- public static String
- filesDB()
- {
- return "files";
- }
-
- private void
- halt(Freeze.DatabaseException e)
- {
- //
- // If this is called it's very bad news. We log the error and
- // then kill the server.
- //
- java.io.StringWriter sw = new java.io.StringWriter();
- java.io.PrintWriter pw = new java.io.PrintWriter(sw);
- e.printStackTrace(pw);
- pw.flush();
- _communicator.getLogger().error("fatal database error\n" + sw.toString() + "\n*** Halting JVM ***");
- Runtime.getRuntime().halt(1);
- }
-
- private Ice.Communicator _communicator;
- private String _envName;
-}