From 54f5062bbe13304cd7ddb24b5bc7daa514c8cdde Mon Sep 17 00:00:00 2001
From: jakubs <jakubs>
Date: Thu, 30 Jul 2015 11:40:34 +0000
Subject: [PATCH] SSDM-2153: reuse and close readers in thumbnail generation

SVN: 34396
---
 .../cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java
index d0780e1c820..79dca385963 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/etl/Hdf5ThumbnailGenerator.java
@@ -575,7 +575,7 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient
                 thumbnailPath, ex.getMessage()));
     }
 
-    private ITaskExecutor<ImageFileInfo> createThumbnailGenerator(final IHDF5ContainerWriter writer)
+    private ITaskExecutor<ImageFileInfo> createThumbnailGenerator(final IHDF5ContainerWriter writer, final String thumbnailGenertionSessionId)
     {
         return new ITaskExecutor<ImageFileInfo>()
             {
@@ -595,7 +595,7 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient
                     // For the purpose of reusing image readers for subsequent files if the same worker thread
                     // is processing them - we set thread local variable on image readers indicating that
                     // invokations with the same process ID can share readers
-                    ImageUtil.setThreadLocalSessionId(thumbnailGenerationProcessId);
+                    ImageUtil.setThreadLocalSessionId(thumbnailGenertionSessionId);
                     try
                     {
                         // each thread will get its own buffer to avoid allocating memory for the
@@ -611,23 +611,23 @@ public class Hdf5ThumbnailGenerator implements IHDF5WriterClient
             };
     }
 
-    private static AtomicInteger thumbnailGenerationProcessId = new AtomicInteger();
+    private static AtomicInteger incrementalThumbnailGenerationSessionId = new AtomicInteger();
 
     @Override
     public void runWithSimpleWriter(IHDF5ContainerWriter writer)
     {
         final String thumbnailsName = " (" + thumbnailsStorageFormat.getThumbnailsFileName() + ")";
 
-        final String processId = "THUMBNAIL_GENERATION_" + thumbnailGenerationProcessId.incrementAndGet();
+        final String sessionId = "THUMBNAIL_GENERATION_" + incrementalThumbnailGenerationSessionId.incrementAndGet();
 
         List<ImageFileInfo> images = imageDataSetStructure.getImages();
         Collection<FailureRecord<ImageFileInfo>> errors =
                 ParallelizedExecutor.process(images,
-                        createThumbnailGenerator(writer, processId),
+                        createThumbnailGenerator(writer, sessionId),
                         thumbnailsStorageFormat.getAllowedMachineLoadDuringGeneration(), 100,
                         "Thumbnails generation" + thumbnailsName, MAX_RETRY_OF_FAILED_GENERATION,
                         true);
-        ImageUtil.closeSession(processId);
+        ImageUtil.closeSession(sessionId);
 
         if (errors.size() > 0)
         {
-- 
GitLab