<?xml version="1.0" encoding="UTF-8"?>\r
<executors>\r
- <executor className="user.jobengine.server.steps.SyncSubtitlesStep" maxConcurrent="1" isRemote="true" />\r
+<!-- <executor className="user.jobengine.server.steps.SyncSubtitlesStep" maxConcurrent="1" isRemote="true" /> -->\r
+ <executor className="SyncSubtitlesStep.java" maxConcurrent="1" isRemote="true" />\r
<executor className="CancelableStep.java" maxConcurrent="1" isRemote="true" />\r
<executor className="FakeStep.java" maxConcurrent="1" />\r
<executor className="NEXIOArchiveCheckerStep.java" maxConcurrent="1" />\r
CountDownLatch finishLatch = new CountDownLatch(1);
IJobRuntime jobRuntime = null;
+ jobRuntime = jobEngine.submit(null, e -> {
+ if (e.isRuntimeTerminated())
+ finishLatch.countDown();
+ }, "sync-subtitles.xml", "Sync subtitles", jobParams);
+
+ if (jobRuntime != null)
+ finishLatch.await();
+
+ jobEngine.shutdown();
+ assertEquals(JobStatus.FINISHED, jobRuntime.getStatus());
+ }
+
+ @Test
+ public void testSyncSubtitlesLocked() throws Exception {
+ jobEngine = new JobEngine();
+ jobEngine.startup();
+ jobEngine.bindItemManagerService(manager);
+
+ String sourceStoreName = "SUB-IN";
+ manager.ensureUri(sourceStoreName, "/SUB-IN", false, false, RemoteStoreProtocol.LOCAL);
+ String targetStoreName = "SUB-OUT";
+ manager.ensureUri(targetStoreName, "/SUB-OUT", false, false, RemoteStoreProtocol.LOCAL);
+
+ Map<String, Object> jobParams = new HashMap<>();
+ jobParams.put("sourceStoreName", sourceStoreName);
+ jobParams.put("targetStoreName", targetStoreName);
+
+ CountDownLatch finishLatch = new CountDownLatch(1);
+ IJobRuntime jobRuntime = null;
+
try (RandomAccessFile reader = new RandomAccessFile("/SUB-IN/BUL/CCEM100323-01.stl", "rw")) {
FileLock lock = reader.getChannel().lock();