fixed a tiny bug with the producer logger
[mir.git] / source / mircoders / global / ProducerEngine.java
index 33ebb65..b9c7fc6 100755 (executable)
@@ -4,6 +4,8 @@ import java.util.*;
 import java.io.*;
 import mir.producer.*;
 import mir.util.*;
+import multex.Exc;
+import multex.Failure;
 
 public class ProducerEngine {
   private Map producers;
@@ -15,17 +17,20 @@ public class ProducerEngine {
     producers = MirGlobal.localizer().producers().factories();
     producerJobQueue = new JobQueue();
     try {
-      log = new PrintWriter(new FileWriter(new File("/tmp/producer.log")));
+      RandomAccessFile raFile = (new RandomAccessFile(MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Producer.Logfile"), "rw"));
+                       raFile.seek(raFile.length());
+               log = new PrintWriter(new FileWriter( raFile.getFD()));
     }
     catch (Exception e) {
-      throw new RuntimeException(e.getMessage());
+//      throw new ProducerEngineRuntimeExc("Creating PrintWriter log failed",e);
+      log = new PrintWriter(new NullWriter());
     }
-
     queueThread = new Thread(new ProducerJobQueueThread());
     queueThread.start();
   }
 
   public void addJob(String aProducerFactory, String aVerb) {
+// ML: TODO: should check if a similar job is already pending
     producerJobQueue.appendJob(new ProducerJob(aProducerFactory, aVerb));
     log.println(aProducerFactory+"."+aVerb+" added to queue");
     log.flush();
@@ -136,4 +141,11 @@ public class ProducerEngine {
     }
   }
 
+
+  public static class ProducerEngineRuntimeExc extends Failure {
+    public ProducerEngineRuntimeExc(String msg, Exception cause){
+      super(msg,cause);
+    }
+  }
+
 }
\ No newline at end of file