Update of /var/cvs/applications/resources/src/org/mmbase/util/images
In directory james.mmbase.org:/tmp/cvs-serv9228

Modified Files:
        ImageConversionRequestProcessor.java 
Log Message:
checking for thread == null to know if it was shutdown is not quite correct 
because it possible that we arrive here already before this member was set


See also: 
http://cvs.mmbase.org/viewcvs/applications/resources/src/org/mmbase/util/images


Index: ImageConversionRequestProcessor.java
===================================================================
RCS file: 
/var/cvs/applications/resources/src/org/mmbase/util/images/ImageConversionRequestProcessor.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- ImageConversionRequestProcessor.java        22 Apr 2009 06:57:43 -0000      
1.4
+++ ImageConversionRequestProcessor.java        22 Apr 2009 08:03:34 -0000      
1.5
@@ -25,7 +25,7 @@
  *
  * @author Rico Jansen
  * @author Michiel Meeuwissen
- * @version $Id: ImageConversionRequestProcessor.java,v 1.4 2009/04/22 
06:57:43 michiel Exp $
+ * @version $Id: ImageConversionRequestProcessor.java,v 1.5 2009/04/22 
08:03:34 michiel Exp $
  * @see    ImageConversionRequest
  */
 public class ImageConversionRequestProcessor implements Runnable {
@@ -34,6 +34,7 @@
     private static int idCounter =0;
     private final int processorId;
     private Thread thread;
+    private boolean shutdown = false;
 
     private ImageConverter convert;
     private final BlockingQueue<ImageConversionRequest> queue;
@@ -50,24 +51,20 @@
         this.queue = queue;
         this.table = table;
         processorId = idCounter++;
-        start();
-    }
-
-    /**
-     * Starts the thread for this ImageRequestProcessor.
-     */
-    protected void start() {
         thread = MMBaseContext.startThread(this, "ImageConvert[" + processorId 
+"]");
     }
+
+
     protected void shutdown() {
+        shutdown = true;
         thread.interrupt();
-        thread = null;
     }
 
     // javadoc inherited (from Runnable)
     public void run() {
         MMBase mmbase = MMBase.getMMBase();
-        while (!mmbase.isShutdown() && thread != null) {
+        log.debug("Started request processor");
+        while (!mmbase.isShutdown() && !shutdown) {
             try {
                 log.debug("Waiting for request");
                 ImageConversionRequest req = queue.take();
@@ -82,6 +79,7 @@
                 log.error(e.getMessage(), e);
             }
         }
+        log.debug("Finished request processor " + this + " " + thread);
     }
 
     /**
@@ -105,8 +103,10 @@
 
                 List<String> params = req.getParams();
                 try {
+                    OutputStream out = rec.getOutputStream();
+                    int length = convert.convertImage(inputPicture, 
req.getInputFormat(), out, params);
+
 
-                    int length = convert.convertImage(inputPicture, 
req.getInputFormat(), rec.getOutputStream(), params);
                     if (length > 0) {
                         rec.setSize(length);
                         if (rec.wantsDimension()) {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to