1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-02-19 13:13:43 +00:00

Add messages to precondition checks

This commit is contained in:
Winston Li 2017-08-02 20:58:26 +01:00
parent fd743d1bf3
commit 045eea8282
3 changed files with 29 additions and 8 deletions
services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge

View file

@ -76,13 +76,13 @@ public class FSGitRepoStore implements RepoStore {
String projectName, String projectName,
long[] sizePtr long[] sizePtr
) throws IOException { ) throws IOException {
Preconditions.checkArgument(Project.isValidProjectName(projectName)); Project.checkValidProjectName(projectName);
return Tar.bz2.zip(getDotGitForProject(projectName), sizePtr); return Tar.bz2.zip(getDotGitForProject(projectName), sizePtr);
} }
@Override @Override
public void remove(String projectName) throws IOException { public void remove(String projectName) throws IOException {
Preconditions.checkArgument(Project.isValidProjectName(projectName)); Project.checkValidProjectName(projectName);
FileUtils.deleteDirectory(new File(rootDirectory, projectName)); FileUtils.deleteDirectory(new File(rootDirectory, projectName));
} }
@ -91,13 +91,22 @@ public class FSGitRepoStore implements RepoStore {
String projectName, String projectName,
InputStream dataStream InputStream dataStream
) throws IOException { ) throws IOException {
Preconditions.checkArgument(Project.isValidProjectName(projectName)); Preconditions.checkArgument(
Preconditions.checkState(getDirForProject(projectName).mkdirs()); Project.isValidProjectName(projectName),
"[%s] invalid project name: ",
projectName
);
Preconditions.checkState(
getDirForProject(projectName).mkdirs(),
"[%s] directories for " +
"evicted project already exist",
projectName
);
Tar.bz2.unzip(dataStream, getDirForProject(projectName)); Tar.bz2.unzip(dataStream, getDirForProject(projectName));
} }
private File getDirForProject(String projectName) { private File getDirForProject(String projectName) {
Preconditions.checkArgument(Project.isValidProjectName(projectName)); Project.checkValidProjectName(projectName);
return Paths.get( return Paths.get(
rootDirectory.getAbsolutePath() rootDirectory.getAbsolutePath()
).resolve( ).resolve(
@ -106,7 +115,7 @@ public class FSGitRepoStore implements RepoStore {
} }
private File getDotGitForProject(String projectName) { private File getDotGitForProject(String projectName) {
Preconditions.checkArgument(Project.isValidProjectName(projectName)); Project.checkValidProjectName(projectName);
return Paths.get( return Paths.get(
rootDirectory.getAbsolutePath() rootDirectory.getAbsolutePath()
).resolve( ).resolve(
@ -119,7 +128,12 @@ public class FSGitRepoStore implements RepoStore {
private File initRootGitDirectory(String rootGitDirectoryPath) { private File initRootGitDirectory(String rootGitDirectoryPath) {
File rootGitDirectory = new File(rootGitDirectoryPath); File rootGitDirectory = new File(rootGitDirectoryPath);
rootGitDirectory.mkdirs(); rootGitDirectory.mkdirs();
Preconditions.checkArgument(rootGitDirectory.isDirectory()); Preconditions.checkArgument(
rootGitDirectory.isDirectory(),
"given root git directory " +
"is not a directory: %s",
rootGitDirectory.getAbsolutePath()
);
return rootGitDirectory; return rootGitDirectory;
} }

View file

@ -158,7 +158,7 @@ public class SwapJobImpl implements SwapJob {
*/ */
@Override @Override
public void evict(String projName) throws IOException { public void evict(String projName) throws IOException {
Preconditions.checkNotNull(projName); Preconditions.checkNotNull(projName, "projName was null");
Log.info("Evicting project: {}", projName); Log.info("Evicting project: {}", projName);
try (LockGuard __ = lock.lockGuard(projName)) { try (LockGuard __ = lock.lockGuard(projName)) {
long[] sizePtr = new long[1]; long[] sizePtr = new long[1];

View file

@ -1,5 +1,7 @@
package uk.ac.ic.wlgitbridge.util; package uk.ac.ic.wlgitbridge.util;
import com.google.common.base.Preconditions;
/** /**
* Created by winston on 23/08/2016. * Created by winston on 23/08/2016.
*/ */
@ -10,4 +12,9 @@ public class Project {
&& !projectName.startsWith("."); && !projectName.startsWith(".");
} }
public static void checkValidProjectName(String projectName) {
Preconditions.checkArgument(isValidProjectName(projectName),
"[%s] invalid project name", projectName);
}
} }