mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04: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
|
@ -30,12 +30,17 @@ public class WLBridgedProject {
|
||||||
|
|
||||||
public void buildRepository() throws RepositoryNotFoundException, ServiceMayNotContinueException {
|
public void buildRepository() throws RepositoryNotFoundException, ServiceMayNotContinueException {
|
||||||
writeLatexDataSource.lockForProject(name);
|
writeLatexDataSource.lockForProject(name);
|
||||||
if (repository.getObjectDatabase().exists()) {
|
try {
|
||||||
updateRepositoryFromSnapshots(repository);
|
if (repository.getObjectDatabase().exists()) {
|
||||||
} else {
|
updateRepositoryFromSnapshots(repository);
|
||||||
buildRepositoryFromScratch(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 {
|
private void updateRepositoryFromSnapshots(Repository repository) throws RepositoryNotFoundException, ServiceMayNotContinueException {
|
||||||
|
|
|
@ -1,18 +1,20 @@
|
||||||
package uk.ac.ic.wlgitbridge.test;
|
package uk.ac.ic.wlgitbridge.test;
|
||||||
|
|
||||||
import uk.ac.ic.wlgitbridge.test.server.MockSnapshotServer;
|
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.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Winston on 10/01/15.
|
* Created by Winston on 10/01/15.
|
||||||
*/
|
*/
|
||||||
public class Main {
|
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"));
|
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();
|
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.SnapshotPushResult;
|
||||||
import uk.ac.ic.wlgitbridge.test.response.push.data.SnapshotPushResultSuccess;
|
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.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.getdoc.SnapshotGetDocResult;
|
||||||
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment;
|
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotAttachment;
|
||||||
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotData;
|
import uk.ac.ic.wlgitbridge.writelatex.api.request.getforversion.SnapshotData;
|
||||||
|
@ -104,9 +105,9 @@ public class SnapshotAPIState {
|
||||||
}};
|
}};
|
||||||
|
|
||||||
postback = new HashMap<String, SnapshotPostbackRequest>() {{
|
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 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());
|
// put("1826rqgsdb", new SnapshotPostbackRequestError());
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue