From d90608064b4376ec501d44f71ba4bcf9708dd469 Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Fri, 18 Mar 2016 18:24:31 +0000
Subject: [PATCH] fixed issue with directories being discovered as files

---
 .../service/impl/dmFileSystemEventHandler.py           | 10 +++++++---
 .../daq_web_service/service/impl/fileSystemObserver.py |  2 +-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py
index f0dfa13b..973efd4f 100755
--- a/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py
+++ b/src/python/dm/daq_web_service/service/impl/dmFileSystemEventHandler.py
@@ -46,9 +46,13 @@ class DmFileSystemEventHandler(FileSystemEventHandler):
                 files = glob.glob(os.path.join(event.src_path,'*'))
                 self.logger.debug('Processing directory event: %s , src path: %s' % (event.__dict__, event.src_path))
                 if len(files) > 0:
-                    filePath = max(files, key=os.path.getctime)
-                    self.logger.debug('Latest file: %s' % (filePath))
-                    self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment)
+                    sortedFiles = sorted(files, key=os.path.getctime, reverse=True)
+                    for filePath in sortedFiles:
+                        if os.path.isfile(filePath):
+                            self.logger.debug('Latest file: %s' % (filePath))
+                            self.fileSystemObserver.fileUpdated(filePath, self.dataDirectory, self.experiment)
+                            return
+                    self.logger.debug('No new files found in %s' % (event.src_path))
             except Exception, ex:
                 self.logger.error('Exception occured when searching for file in directory %s: %s' % (event.__dict__, ex))
         else:
diff --git a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py
index 1d907ce9..b3900e5a 100755
--- a/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py
+++ b/src/python/dm/daq_web_service/service/impl/fileSystemObserver.py
@@ -110,7 +110,7 @@ class FileSystemObserver(threading.Thread,Singleton):
             observedFile['statusMonitor'] = daqInfo
         observedFile.setLastUpdateTimeToNow()
         self.observedFileMap[filePath] = observedFile
-        self.logger.debug('Observed file updated: %s', observedFile)
+        self.logger.debug('Observed file updated: %s', filePath)
        
     @ThreadingUtility.synchronize
     def checkObservedFilesForProcessing(self):
-- 
GitLab