git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Sun, 7 Nov 2021 21:21:53 +0000 (21:21 +0000)
committervasary.daniel <TFS\vasary.daniel>
Sun, 7 Nov 2021 21:21:53 +0000 (21:21 +0000)
client/Maestro/Sources/FileSystemSource.cs
server/user.jobengine.executors/src/user/jobengine/server/steps/FileValidatorStep.java
server/user.tsm.client/src/user/tsm/client/TSMBufferedClient.java

index 1f5c22879bdcf9fda83954d56f4151361e6a02e4..51c6fe61df742f2ccb4c939a916dd8af7a268930 100644 (file)
@@ -173,7 +173,6 @@ namespace Maestro.Sources {
             SetAcceptableExtensions(fileExtensionFilter);\r
             pathWatcherWorker.DoWork += pathWatcherWorker_watchPath;\r
             pathWatcherWorker.WorkerReportsProgress = true;\r
-\r
         }\r
 \r
         private void pathWatcherWorker_watchPath(object sender, DoWorkEventArgs e) {\r
index 362155f579e297f384f30a21e293164281ae8465..fec2a359857751b1c6ae6ed38d94798f1b76b650 100644 (file)
@@ -22,14 +22,16 @@ public class FileValidatorStep extends JobStep {
        private static final Logger logger = LogManager.getLogger();\r
 \r
        @StepEntry\r
-       public Object[] execute(StoreUri sourceStoreUri, String fileName, long expectedFrameNumber, long expectedSize, String exceptedColorSpace, String escortFile)\r
-                       throws Exception {\r
+       public Object[] execute(StoreUri sourceStoreUri, String fileName, long expectedFrameNumber, long expectedSize,\r
+                       String exceptedColorSpace, String escortFile) throws Exception {\r
                if (!RemoteStoreProtocol.LOCAL.equals(sourceStoreUri.getProtocol()))\r
                        throw new Exception("Store URI protocol must be local.");\r
                Path filePath = Paths.get(sourceStoreUri.toString(true), fileName);\r
                if (!filePath.toFile().exists())\r
                        throw new FileNotFoundException("File not exists: " + filePath.toString());\r
 \r
+               setDescription("Validating {}", fileName);\r
+\r
                Path escortFilePath = Paths.get(escortFile);\r
 \r
                if (getJobRuntime().isWaitingCancel()) {\r
@@ -37,7 +39,8 @@ public class FileValidatorStep extends JobStep {
                        //EscortFiles.remove(escortFilePath);\r
                        EscortFiles.remove(Paths.get(escortFile + EscortFiles.DOT_CATCHED));\r
 \r
-                       Message msg = new ParameterizedMessage("A {} fájl visszatöltése kezelői beavatkozás miatt megszakadt.", fileName);\r
+                       Message msg = new ParameterizedMessage("A {} fájl visszatöltése kezelői beavatkozás miatt megszakadt.",\r
+                                       fileName);\r
                        EscortFiles.notifyRecipient(escortFilePath, logger, msg);\r
 \r
                        cancel();\r
@@ -54,9 +57,13 @@ public class FileValidatorStep extends JobStep {
                if (downloadable != null && expectedFrameNumber == 0)\r
                        storeCurrentFrames(filePath, downloadable);\r
 \r
-               if (downloadable != null && downloadable.containsKey("skipValidation") && downloadable.getBoolean("skipValidation"))\r
+               if (downloadable != null && downloadable.containsKey("skipValidation")\r
+                               && downloadable.getBoolean("skipValidation")) {\r
+                       logger.info(getMarker(), "Validation skipped for {}", fileName);\r
                        return null;\r
+               }\r
 \r
+               logger.info(getMarker(), "Validating {}", fileName);\r
                if (expectedFrameNumber > 0 || StringUtils.isNotBlank(exceptedColorSpace))\r
                        validateMedia(filePath, expectedFrameNumber, exceptedColorSpace, escortFile);\r
 \r
@@ -96,7 +103,8 @@ public class FileValidatorStep extends JobStep {
                }\r
        }\r
 \r
-       private void validateMedia(Path filePath, long expectedFrameNumber, String exceptedColorSpace, String escortFile) throws Exception {\r
+       private void validateMedia(Path filePath, long expectedFrameNumber, String exceptedColorSpace, String escortFile)\r
+                       throws Exception {\r
                MediaInfo mi = null;\r
                try {\r
                        mi = new MediaInfo(filePath);\r
@@ -105,10 +113,12 @@ public class FileValidatorStep extends JobStep {
                        if (expectedFrameNumber > 0) {\r
                                long frames = mi.getFrames();\r
                                if (Math.abs(frames - expectedFrameNumber) > 3) {\r
-                                       Message msg = new ParameterizedMessage("Validációs hiba miatt a {} fájl másolása nem lehetséges.", filePath.getFileName());\r
+                                       Message msg = new ParameterizedMessage("Validációs hiba miatt a {} fájl másolása nem lehetséges.",\r
+                                                       filePath.getFileName());\r
                                        EscortFiles.notifyRecipient(Paths.get(escortFile), logger, msg);\r
                                        getJobRuntime().setDisableRetry(true);\r
-                                       throw new Exception("Length mismatch in " + filePath + ". Expected: " + expectedFrameNumber + ", found: " + frames);\r
+                                       throw new Exception("Length mismatch in " + filePath + ". Expected: " + expectedFrameNumber\r
+                                                       + ", found: " + frames);\r
                                }\r
                        }\r
 \r
index 88754909b6812fa54fba9133eebc65d2384a88bf..b7c4c8560d0416e382af7e863bbff4e710cfd521 100644 (file)
@@ -84,7 +84,8 @@ public class TSMBufferedClient extends TSMClient {
                        objIds[0] = object.getObjId();\r
                        dsmGetList.setObjId(objIds);\r
                        try {\r
-                               rc = TSMAPI.dsmBeginGetData(dsmHandle, true, object.getTypeDefinitionForGetData(), dsmGetList, partialObjData);\r
+                               rc = TSMAPI.dsmBeginGetData(dsmHandle, true, object.getTypeDefinitionForGetData(), dsmGetList,\r
+                                               partialObjData);\r
                                if (rc != TSMAPIConstants.DSM_RC_OK)\r
                                        throw new TSMException(dsmHandle, rc);\r
                        } catch (JNIException e) {\r
@@ -92,7 +93,8 @@ public class TSMBufferedClient extends TSMClient {
                        }\r
                        try {\r
                                rc = TSMAPI.dsmGetObj(dsmHandle, objIds[0], dataBlk);\r
-                               if ((rc != TSMAPIConstants.DSM_RC_OK) && (rc != TSMAPIConstants.DSM_RC_FINISHED) && (rc != TSMAPIConstants.DSM_RC_MORE_DATA)) {\r
+                               if ((rc != TSMAPIConstants.DSM_RC_OK) && (rc != TSMAPIConstants.DSM_RC_FINISHED)\r
+                                               && (rc != TSMAPIConstants.DSM_RC_MORE_DATA)) {\r
                                        TSMAPI.dsmEndGetData(dsmHandle);\r
                                        throw new TSMException(dsmHandle, rc);\r
                                }\r
@@ -107,6 +109,20 @@ public class TSMBufferedClient extends TSMClient {
                        try {\r
                                if (rc == TSMAPIConstants.DSM_RC_MORE_DATA) {\r
                                        rc = TSMAPI.dsmGetData(dsmHandle, dataBlk);\r
+\r
+                                       //muvelet megszakadasakor vegtelen ciklusba kerul az olvasas\r
+                                       if (rc != TSMAPIConstants.DSM_RC_MORE_DATA && rc != TSMAPIConstants.DSM_RC_FINISHED) {\r
+                                               logger.error("Transfer interrupted. Code: {}", rc);\r
+                                               try {\r
+                                                       finishReceive();\r
+                                                       result = -1;\r
+                                               } catch (Exception e) {\r
+                                                       logger.warn("Interrupted transfer cleanup unsuccessfull. Code: {}", rc);\r
+                                               }\r
+\r
+                                               throw new TSMException("Transfer interrupted. Code: " + rc);\r
+                                       }\r
+\r
                                        object.bytesWorked(dataBlk.getNumBytes());\r
                                        result = dataBlk.getNumBytes();\r
                                } else if (rc == TSMAPIConstants.DSM_RC_FINISHED) {\r
@@ -144,7 +160,8 @@ public class TSMBufferedClient extends TSMClient {
                                objAttr.setObjInfoLength((short) 0);\r
                                objAttr.setObjInfo(null);\r
                                objAttr.setMcNameP(object.getManagementClassName());\r
-                               rc = TSMAPI.dsmSendObj(dsmHandle, object.getTypeDefinitionForBindMCAndSendObj(), object.getSendObjBuffer(), objName, objAttr, null);\r
+                               rc = TSMAPI.dsmSendObj(dsmHandle, object.getTypeDefinitionForBindMCAndSendObj(),\r
+                                               object.getSendObjBuffer(), objName, objAttr, null);\r
                                // prevLength = byteCount;\r
                                if (rc != TSMAPIConstants.DSM_RC_OK)\r
                                        throw new TSMException(dsmHandle, rc);\r