mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-18 15:33:09 +00:00
[DS-707] Added handling of exceptional return codes
git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@5677 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
@@ -73,30 +73,35 @@ public class FileTaskQueue implements TaskQueue
|
|||||||
if (! lock.exists())
|
if (! lock.exists())
|
||||||
{
|
{
|
||||||
// no lock - create one
|
// no lock - create one
|
||||||
lock.createNewFile();
|
if (lock.createNewFile())
|
||||||
// append set contents to queue
|
|
||||||
BufferedWriter writer = null;
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
File queue = new File(qDir, "queue" + Integer.toString(queueIdx));
|
// append set contents to queue
|
||||||
writer = new BufferedWriter(new FileWriter(queue, true));
|
BufferedWriter writer = null;
|
||||||
Iterator<TaskQueueEntry> iter = entrySet.iterator();
|
try
|
||||||
while (iter.hasNext())
|
|
||||||
{
|
{
|
||||||
writer.write(iter.next().toString());
|
File queue = new File(qDir, "queue" + Integer.toString(queueIdx));
|
||||||
writer.newLine();
|
writer = new BufferedWriter(new FileWriter(queue, true));
|
||||||
|
Iterator<TaskQueueEntry> iter = entrySet.iterator();
|
||||||
|
while (iter.hasNext())
|
||||||
|
{
|
||||||
|
writer.write(iter.next().toString());
|
||||||
|
writer.newLine();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
finally
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (writer != null)
|
|
||||||
{
|
{
|
||||||
writer.close();
|
if (writer != null)
|
||||||
|
{
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// remove lock
|
||||||
|
if (!lock.delete())
|
||||||
|
{
|
||||||
|
log.error("Unable to remove lock: " + lock.getName());
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// remove lock
|
|
||||||
lock.delete();
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
queueIdx++;
|
queueIdx++;
|
||||||
}
|
}
|
||||||
@@ -121,7 +126,11 @@ public class FileTaskQueue implements TaskQueue
|
|||||||
if (queue.exists() && ! lock.exists())
|
if (queue.exists() && ! lock.exists())
|
||||||
{
|
{
|
||||||
// no lock - create one
|
// no lock - create one
|
||||||
lock.createNewFile();
|
if (!lock.createNewFile())
|
||||||
|
{
|
||||||
|
throw new IOException("Unable to obtain the necessary lock: " + lock.getName());
|
||||||
|
}
|
||||||
|
|
||||||
// read contents from file
|
// read contents from file
|
||||||
BufferedReader reader = null;
|
BufferedReader reader = null;
|
||||||
try
|
try
|
||||||
@@ -170,9 +179,16 @@ public class FileTaskQueue implements TaskQueue
|
|||||||
if (remove)
|
if (remove)
|
||||||
{
|
{
|
||||||
File queue = new File(qDir, "queue" + Integer.toString(queueIdx));
|
File queue = new File(qDir, "queue" + Integer.toString(queueIdx));
|
||||||
queue.delete();
|
if (!queue.delete())
|
||||||
|
{
|
||||||
|
log.error("Unable to delete queue file: " + queue.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!lock.delete())
|
||||||
|
{
|
||||||
|
log.error("Unable to delete lock file: " + lock.getName());
|
||||||
}
|
}
|
||||||
lock.delete();
|
|
||||||
}
|
}
|
||||||
readList.clear();
|
readList.clear();
|
||||||
}
|
}
|
||||||
@@ -184,7 +200,10 @@ public class FileTaskQueue implements TaskQueue
|
|||||||
File baseDir = new File(tqDir, queueName);
|
File baseDir = new File(tqDir, queueName);
|
||||||
if (! baseDir.exists())
|
if (! baseDir.exists())
|
||||||
{
|
{
|
||||||
baseDir.mkdirs();
|
if (!baseDir.mkdirs())
|
||||||
|
{
|
||||||
|
throw new IllegalStateException("Unable to create directories");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return baseDir;
|
return baseDir;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user