Author: jflesch
Date: 2007-05-03 22:16:01 +0000 (Thu, 03 May 2007)
New Revision: 13139
Modified:
trunk/apps/Thaw/src/thaw/core/QueueKeeper.java
Log:
Add a synchronized() to the saveQueue() function of the QueueKeeper
Modified: trunk/apps/Thaw/src/thaw/core/QueueKeeper.java
===================================================================
--- trunk/apps/Thaw/src/thaw/core/QueueKeeper.java 2007-05-03 22:03:21 UTC
(rev 13138)
+++ trunk/apps/Thaw/src/thaw/core/QueueKeeper.java 2007-05-03 22:16:01 UTC
(rev 13139)
@@ -180,103 +180,106 @@
public static boolean saveQueue(final FCPQueueManager queueManager,
final String fileName) {
final Vector[] pendingQueues = queueManager.getPendingQueues();
- boolean needed = false;
+ synchronized(pendingQueues) {
- for(int i = 0 ; i < pendingQueues.length ; i++) {
- if(pendingQueues[i].size() > 0) {
- needed = true;
- break;
+ boolean needed = false;
+
+ for(int i = 0 ; i < pendingQueues.length ; i++) {
+ if(pendingQueues[i].size() > 0) {
+ needed = true;
+ break;
+ }
}
- }
- if(!needed) {
- Logger.info(new QueueKeeper(), "Nothing in the pending
queue to save.");
+ if(!needed) {
+ Logger.info(new QueueKeeper(), "Nothing in the
pending queue to save.");
+ final File file = new File(fileName);
+ file.delete(); // Else we may reload something
that we shouldn't when restarting
+ return true;
+ }
+
final File file = new File(fileName);
- file.delete(); // Else we may reload something that we
shouldn't when restarting
- return true;
- }
+ StreamResult fileOut;
- final File file = new File(fileName);
- StreamResult fileOut;
-
- try {
- if( (!file.exists() && !file.createNewFile())
- || !file.canWrite()) {
- Logger.warning(new QueueKeeper(), "Unable to
write config file '"+file.getPath()+"' (can't write)");
- return false;
+ try {
+ if( (!file.exists() && !file.createNewFile())
+ || !file.canWrite()) {
+ Logger.warning(new QueueKeeper(),
"Unable to write config file '"+file.getPath()+"' (can't write)");
+ return false;
+ }
+ } catch(final java.io.IOException e) {
+ Logger.warning(new QueueKeeper(), "Error while
checking perms to save config: "+e);
}
- } catch(final java.io.IOException e) {
- Logger.warning(new QueueKeeper(), "Error while checking
perms to save config: "+e);
- }
- fileOut = new StreamResult(file);
+ fileOut = new StreamResult(file);
- Document xmlDoc = null;
- DocumentBuilderFactory xmlFactory = null;
- DocumentBuilder xmlBuilder = null;
- DOMImplementation impl = null;
+ Document xmlDoc = null;
+ DocumentBuilderFactory xmlFactory = null;
+ DocumentBuilder xmlBuilder = null;
+ DOMImplementation impl = null;
- Element rootEl = null;
+ Element rootEl = null;
- xmlFactory = DocumentBuilderFactory.newInstance();
+ xmlFactory = DocumentBuilderFactory.newInstance();
- try {
- xmlBuilder = xmlFactory.newDocumentBuilder();
- } catch(final javax.xml.parsers.ParserConfigurationException e)
{
- Logger.error(new QueueKeeper(), "Unable to save queue
because: "+e.toString());
- return false;
- }
+ try {
+ xmlBuilder = xmlFactory.newDocumentBuilder();
+ } catch(final
javax.xml.parsers.ParserConfigurationException e) {
+ Logger.error(new QueueKeeper(), "Unable to save
queue because: "+e.toString());
+ return false;
+ }
- impl = xmlBuilder.getDOMImplementation();
+ impl = xmlBuilder.getDOMImplementation();
- xmlDoc = impl.createDocument(null, "queue", null);
+ xmlDoc = impl.createDocument(null, "queue", null);
- rootEl = xmlDoc.getDocumentElement();
+ rootEl = xmlDoc.getDocumentElement();
- final Element pendingQueueEl =
xmlDoc.createElement("pendingQueue");
+ final Element pendingQueueEl =
xmlDoc.createElement("pendingQueue");
- for(int i = 0 ; i <= QueueKeeper.MIN_PRIORITY ; i++) {
+ for(int i = 0 ; i <= QueueKeeper.MIN_PRIORITY ; i++) {
- for(final Iterator runIt = pendingQueues[i].iterator() ;
- runIt.hasNext(); ) {
+ for(final Iterator runIt =
pendingQueues[i].iterator() ;
+ runIt.hasNext(); ) {
- final FCPTransferQuery query =
(FCPTransferQuery)runIt.next();
+ final FCPTransferQuery query =
(FCPTransferQuery)runIt.next();
- final Element toSave =
QueueKeeper.saveQuery(query, xmlDoc);
+ final Element toSave =
QueueKeeper.saveQuery(query, xmlDoc);
- if(toSave != null)
- pendingQueueEl.appendChild(toSave);
+ if(toSave != null)
+
pendingQueueEl.appendChild(toSave);
+ }
+
}
- }
+ rootEl.appendChild(pendingQueueEl);
- rootEl.appendChild(pendingQueueEl);
+ /* Serialization */
+ final DOMSource domSource = new DOMSource(xmlDoc);
+ final TransformerFactory transformFactory =
TransformerFactory.newInstance();
- /* Serialization */
- final DOMSource domSource = new DOMSource(xmlDoc);
- final TransformerFactory transformFactory =
TransformerFactory.newInstance();
+ Transformer serializer;
- Transformer serializer;
+ try {
+ serializer = transformFactory.newTransformer();
+ } catch(final
javax.xml.transform.TransformerConfigurationException e) {
+ Logger.error(new QueueKeeper(), "Unable to save
queue because: "+e.toString());
+ return false;
+ }
- try {
- serializer = transformFactory.newTransformer();
- } catch(final
javax.xml.transform.TransformerConfigurationException e) {
- Logger.error(new QueueKeeper(), "Unable to save queue
because: "+e.toString());
- return false;
- }
+
serializer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
+ serializer.setOutputProperty(OutputKeys.INDENT,"yes");
- serializer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");
- serializer.setOutputProperty(OutputKeys.INDENT,"yes");
-
- /* final step */
- try {
- serializer.transform(domSource, fileOut);
- } catch(final javax.xml.transform.TransformerException e) {
- Logger.error(new QueueKeeper(), "Unable to save queue
because: "+e.toString());
- return false;
+ /* final step */
+ try {
+ serializer.transform(domSource, fileOut);
+ } catch(final javax.xml.transform.TransformerException
e) {
+ Logger.error(new QueueKeeper(), "Unable to save
queue because: "+e.toString());
+ return false;
+ }
}
return true;