mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-23 08:57:51 +00:00
Added try-catch-finally block for remaining instances of lock releasing.
This commit is contained in:
parent
34185c7067
commit
70808b14b5
3 changed files with 18 additions and 10 deletions
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge
|
@ -30,12 +30,17 @@ public class WLBridgedProject {
|
|||
|
||||
public void buildRepository() throws RepositoryNotFoundException, ServiceMayNotContinueException {
|
||||
writeLatexDataSource.lockForProject(name);
|
||||
if (repository.getObjectDatabase().exists()) {
|
||||
updateRepositoryFromSnapshots(repository);
|
||||
} else {
|
||||
buildRepositoryFromScratch(repository);
|
||||
try {
|
||||
if (repository.getObjectDatabase().exists()) {
|
||||
updateRepositoryFromSnapshots(repository);
|
||||
} else {
|
||||
buildRepositoryFromScratch(repository);
|
||||
}
|
||||
} catch (RuntimeException e) {
|
||||
throw new ServiceMayNotContinueException(e);
|
||||
} finally {
|
||||
writeLatexDataSource.unlockForProject(name);
|
||||
}
|
||||
writeLatexDataSource.unlockForProject(name);
|
||||
}
|
||||
|
||||
private void updateRepositoryFromSnapshots(Repository repository) throws RepositoryNotFoundException, ServiceMayNotContinueException {
|
||||
|
|
|
@ -1,18 +1,20 @@
|
|||
package uk.ac.ic.wlgitbridge.test;
|
||||
|
||||
import uk.ac.ic.wlgitbridge.test.server.MockSnapshotServer;
|
||||
import uk.ac.ic.wlgitbridge.test.state.SnapshotAPIState;
|
||||
import uk.ac.ic.wlgitbridge.test.state.SnapshotAPIStateBuilder;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
|
||||
/**
|
||||
* Created by Winston on 10/01/15.
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
MockSnapshotServer server = new MockSnapshotServer(60000, new File("/Users/Roxy/Code/java/writelatex-git-bridge"));
|
||||
server.setState(new SnapshotAPIState());
|
||||
server.setState(new SnapshotAPIStateBuilder(new FileInputStream(new File("/Users/Roxy/Desktop/state.json"))).build());
|
||||
server.start();
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package uk.ac.ic.wlgitbridge.test.state;
|
|||
import uk.ac.ic.wlgitbridge.test.response.push.data.SnapshotPushResult;
|
||||
import uk.ac.ic.wlgitbridge.test.response.push.data.SnapshotPushResultSuccess;
|
||||
import uk.ac.ic.wlgitbridge.test.response.push.postback.SnapshotPostbackRequest;
|
||||
import uk.ac.ic.wlgitbridge.test.response.push.postback.SnapshotPostbackRequestInvalidProject;
|
||||
import uk.ac.ic.wlgitbridge.writelatex.api.request.getdoc.SnapshotGetDocResult;
|
||||
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment;
|
||||
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotData;
|
||||
|
@ -104,9 +105,9 @@ public class SnapshotAPIState {
|
|||
}};
|
||||
|
||||
postback = new HashMap<String, SnapshotPostbackRequest>() {{
|
||||
// put("1826rqgsdb", new SnapshotPostbackRequestInvalidFiles(Arrays.<InvalidFileError>asList(new InvalidFileErrorDefault("file1.fff"), new InvalidFileErrorDisallowed("file2.fff"), new InvalidFileErrorUnclean("unclean", "clean"))));
|
||||
// put("1826rqgsdb", new SnapshotPostbackRequestInvalidFiles(Arrays.<InvalidFileError>asList(new InvalidFileErrorDefault("file1.invalid"), new InvalidFileErrorDisallowed("file2.exe"), new InvalidFileErrorUnclean("hello world.png", "hello_world.png"))));
|
||||
// put("1826rqgsdb", new SnapshotPostbackRequestOutOfDate());
|
||||
// put("1826rqgsdb", new SnapshotPostbackRequestInvalidProject(Arrays.asList("line1", "line2")));
|
||||
put("1826rqgsdb", new SnapshotPostbackRequestInvalidProject(Arrays.asList("Your project is missing main.tex.", "Please name your main latex file main.tex.")));
|
||||
// put("1826rqgsdb", new SnapshotPostbackRequestError());
|
||||
}};
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue