Fix synchronisation problem between client and server
... for actions pin, unpin and setNote
This commit is contained in:
parent
217b56b88c
commit
d20680f228
|
@ -678,8 +678,7 @@ public class NextGenLocalRecorder implements Recorder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setNote(Recording rec, String note) throws IOException {
|
public void setNote(Recording rec, String note) throws IOException {
|
||||||
rec.setNote(note);
|
recordingManager.setNote(rec, note);
|
||||||
recordingManager.saveRecording(rec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -11,6 +11,8 @@ import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -217,8 +219,9 @@ public class RecordingManager {
|
||||||
public void pin(Recording recording) throws IOException {
|
public void pin(Recording recording) throws IOException {
|
||||||
recordingsLock.lock();
|
recordingsLock.lock();
|
||||||
try {
|
try {
|
||||||
recording.setPinned(true);
|
Recording local = getRecording(recording);
|
||||||
saveRecording(recording);
|
local.setPinned(true);
|
||||||
|
saveRecording(local);
|
||||||
} finally {
|
} finally {
|
||||||
recordingsLock.unlock();
|
recordingsLock.unlock();
|
||||||
}
|
}
|
||||||
|
@ -227,10 +230,31 @@ public class RecordingManager {
|
||||||
public void unpin(Recording recording) throws IOException {
|
public void unpin(Recording recording) throws IOException {
|
||||||
recordingsLock.lock();
|
recordingsLock.lock();
|
||||||
try {
|
try {
|
||||||
recording.setPinned(false);
|
Recording local = getRecording(recording);
|
||||||
saveRecording(recording);
|
local.setPinned(false);
|
||||||
|
saveRecording(local);
|
||||||
} finally {
|
} finally {
|
||||||
recordingsLock.unlock();
|
recordingsLock.unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNote(Recording rec, String note) throws IOException {
|
||||||
|
recordingsLock.lock();
|
||||||
|
try {
|
||||||
|
Recording local = getRecording(rec);
|
||||||
|
local.setNote(note);
|
||||||
|
saveRecording(local);
|
||||||
|
} finally {
|
||||||
|
recordingsLock.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Recording getRecording(Recording rec) {
|
||||||
|
for (Recording r : getAll()) {
|
||||||
|
if(Objects.equals(r, rec)) {
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new NoSuchElementException("Recording not found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue