Browse Source

[findbugs] Do not ignore exceptional return value of mkdir

java.io.File.mkdir() and mkdirs() report failure as an exceptional
return value false. Fix the code which silently ignored this
exceptional return value.

Change-Id: I41244f4b9d66176e68e2c07e2329cf08492f8619
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
tags/v0.11.1
Matthias Sohn 13 years ago
parent
commit
38eec8f4a2
23 changed files with 96 additions and 82 deletions
  1. 2
    2
      org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogMeta.java
  2. 2
    1
      org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java
  3. 2
    2
      org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/eclipse/Iplog.java
  4. 29
    29
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java
  5. 2
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java
  6. 3
    10
      org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java
  7. 4
    3
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java
  8. 2
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/AbbreviationTest.java
  9. 2
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/FileRepositoryBuilderTest.java
  10. 3
    2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RepositorySetupWorkDirTest.java
  11. 3
    2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java
  12. 2
    1
      org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/UnpackedObjectTest.java
  13. 3
    2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java
  14. 1
    2
      org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java
  15. 6
    6
      org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FileUtilTest.java
  16. 7
    0
      org.eclipse.jgit/findBugs/FindBugsExcludeFilter.xml
  17. 1
    1
      org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
  18. 3
    1
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
  19. 2
    1
      org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java
  20. 2
    2
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java
  21. 2
    1
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LockFile.java
  22. 4
    4
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java
  23. 9
    7
      org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java

+ 2
- 2
org.eclipse.jgit.iplog/src/org/eclipse/jgit/iplog/IpLogMeta.java View File

import org.eclipse.jgit.storage.file.FileBasedConfig; import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.storage.file.LockFile; import org.eclipse.jgit.storage.file.LockFile;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils;


/** /**
* Manages the {@code .eclipse_iplog} file in a project. * Manages the {@code .eclipse_iplog} file in a project.
*/ */
public void syncCQs(File file, FS fs, URL base, String username, public void syncCQs(File file, FS fs, URL base, String username,
String password) throws IOException, ConfigInvalidException { String password) throws IOException, ConfigInvalidException {
if (!file.getParentFile().exists())
file.getParentFile().mkdirs();
FileUtils.mkdirs(file.getParentFile(), true);


LockFile lf = new LockFile(file, fs); LockFile lf = new LockFile(file, fs);
if (!lf.lock()) if (!lf.lock())

+ 2
- 1
org.eclipse.jgit.junit/src/org/eclipse/jgit/junit/LocalDiskRepositoryTestCase.java View File

import org.eclipse.jgit.storage.file.WindowCache; import org.eclipse.jgit.storage.file.WindowCache;
import org.eclipse.jgit.storage.file.WindowCacheConfig; import org.eclipse.jgit.storage.file.WindowCacheConfig;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.IO; import org.eclipse.jgit.util.IO;
import org.eclipse.jgit.util.SystemReader; import org.eclipse.jgit.util.SystemReader;
import org.junit.After; import org.junit.After;
* the file could not be written. * the file could not be written.
*/ */
protected void write(final File f, final String body) throws IOException { protected void write(final File f, final String body) throws IOException {
f.getParentFile().mkdirs();
FileUtils.mkdirs(f.getParentFile(), true);
Writer w = new OutputStreamWriter(new FileOutputStream(f), "UTF-8"); Writer w = new OutputStreamWriter(new FileOutputStream(f), "UTF-8");
try { try {
w.write(body); w.write(body);

+ 2
- 2
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/eclipse/Iplog.java View File

import org.eclipse.jgit.revwalk.RevTag; import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.storage.file.LockFile; import org.eclipse.jgit.storage.file.LockFile;
import org.eclipse.jgit.util.FileUtils;
import org.kohsuke.args4j.Argument; import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option; import org.kohsuke.args4j.Option;


log.scan(db, rw.parseCommit(start), version); log.scan(db, rw.parseCommit(start), version);


if (output != null) { if (output != null) {
if (!output.getParentFile().exists())
output.getParentFile().mkdirs();
FileUtils.mkdirs(output.getParentFile(), true);
LockFile lf = new LockFile(output, db.getFS()); LockFile lf = new LockFile(output, db.getFS());
if (!lf.lock()) if (!lf.lock())
throw die(MessageFormat.format(CLIText.get().cannotLock, output)); throw die(MessageFormat.format(CLIText.get().cannotLock, output));

+ 29
- 29
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/AddCommandTest.java View File

@Test @Test
public void testAddExistingSingleFile() throws IOException, NoFilepatternException { public void testAddExistingSingleFile() throws IOException, NoFilepatternException {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


@Test @Test
public void testAddExistingSingleFileInSubDir() throws IOException, NoFilepatternException { public void testAddExistingSingleFileInSubDir() throws IOException, NoFilepatternException {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();
@Test @Test
public void testAddExistingSingleFileTwice() throws IOException, NoFilepatternException { public void testAddExistingSingleFileTwice() throws IOException, NoFilepatternException {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();
@Test @Test
public void testAddExistingSingleFileTwiceWithCommit() throws Exception { public void testAddExistingSingleFileTwiceWithCommit() throws Exception {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();
@Test @Test
public void testAddRemovedFile() throws Exception { public void testAddRemovedFile() throws Exception {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();
@Test @Test
public void testAddRemovedCommittedFile() throws Exception { public void testAddRemovedCommittedFile() throws Exception {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();
// prepare conflict // prepare conflict


File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "b.txt"); File file2 = new File(db.getWorkTree(), "b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();
@Test @Test
public void testAddTwoFiles() throws Exception { public void testAddTwoFiles() throws Exception {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "b.txt"); File file2 = new File(db.getWorkTree(), "b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();


@Test @Test
public void testAddFolder() throws Exception { public void testAddFolder() throws Exception {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "sub/b.txt"); File file2 = new File(db.getWorkTree(), "sub/b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();


@Test @Test
public void testAddIgnoredFile() throws Exception { public void testAddIgnoredFile() throws Exception {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File ignoreFile = new File(db.getWorkTree(), ".gitignore"); File ignoreFile = new File(db.getWorkTree(), ".gitignore");
ignoreFile.createNewFile();
FileUtils.createNewFile(ignoreFile);
writer = new PrintWriter(ignoreFile); writer = new PrintWriter(ignoreFile);
writer.print("sub/b.txt"); writer.print("sub/b.txt");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "sub/b.txt"); File file2 = new File(db.getWorkTree(), "sub/b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();


@Test @Test
public void testAddWholeRepo() throws Exception { public void testAddWholeRepo() throws Exception {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "sub/b.txt"); File file2 = new File(db.getWorkTree(), "sub/b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();
// file c exists in workdir but not in index -> added // file c exists in workdir but not in index -> added
@Test @Test
public void testAddWithoutParameterUpdate() throws Exception { public void testAddWithoutParameterUpdate() throws Exception {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "sub/b.txt"); File file2 = new File(db.getWorkTree(), "sub/b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();


// new unstaged file sub/c.txt // new unstaged file sub/c.txt
File file3 = new File(db.getWorkTree(), "sub/c.txt"); File file3 = new File(db.getWorkTree(), "sub/c.txt");
file3.createNewFile();
FileUtils.createNewFile(file3);
writer = new PrintWriter(file3); writer = new PrintWriter(file3);
writer.print("content c"); writer.print("content c");
writer.close(); writer.close();
// file c exists in workdir but not in index -> unchanged // file c exists in workdir but not in index -> unchanged
@Test @Test
public void testAddWithParameterUpdate() throws Exception { public void testAddWithParameterUpdate() throws Exception {
new File(db.getWorkTree(), "sub").mkdir();
FileUtils.mkdir(new File(db.getWorkTree(), "sub"));
File file = new File(db.getWorkTree(), "sub/a.txt"); File file = new File(db.getWorkTree(), "sub/a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();


File file2 = new File(db.getWorkTree(), "sub/b.txt"); File file2 = new File(db.getWorkTree(), "sub/b.txt");
file2.createNewFile();
FileUtils.createNewFile(file2);
writer = new PrintWriter(file2); writer = new PrintWriter(file2);
writer.print("content b"); writer.print("content b");
writer.close(); writer.close();


// new unstaged file sub/c.txt // new unstaged file sub/c.txt
File file3 = new File(db.getWorkTree(), "sub/c.txt"); File file3 = new File(db.getWorkTree(), "sub/c.txt");
file3.createNewFile();
FileUtils.createNewFile(file3);
writer = new PrintWriter(file3); writer = new PrintWriter(file3);
writer.print("content c"); writer.print("content c");
writer.close(); writer.close();

+ 2
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/CommitAndLogCommandTests.java View File

import org.eclipse.jgit.lib.RepositoryTestCase; import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.treewalk.TreeWalk; import org.eclipse.jgit.treewalk.TreeWalk;
import org.eclipse.jgit.util.FileUtils;


public class CommitAndLogCommandTests extends RepositoryTestCase { public class CommitAndLogCommandTests extends RepositoryTestCase {
public void testSomeCommits() throws NoHeadException, NoMessageException, public void testSomeCommits() throws NoHeadException, NoMessageException,
JGitInternalException, WrongRepositoryStateException, JGitInternalException, WrongRepositoryStateException,
NoFilepatternException { NoFilepatternException {
File file = new File(db.getWorkTree(), "a.txt"); File file = new File(db.getWorkTree(), "a.txt");
file.createNewFile();
FileUtils.createNewFile(file);
PrintWriter writer = new PrintWriter(file); PrintWriter writer = new PrintWriter(file);
writer.print("content"); writer.print("content");
writer.close(); writer.close();

+ 3
- 10
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/InitCommandTest.java View File



import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryTestCase; import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;


public static File createTempDirectory(String name) throws IOException { public static File createTempDirectory(String name) throws IOException {
final File temp; final File temp;
temp = File.createTempFile(name, Long.toString(System.nanoTime())); temp = File.createTempFile(name, Long.toString(System.nanoTime()));

if (!(temp.delete())) {
throw new IOException("Could not delete temp file: "
+ temp.getAbsolutePath());
}

if (!(temp.mkdir())) {
throw new IOException("Could not create temp directory: "
+ temp.getAbsolutePath());
}
FileUtils.delete(temp);
FileUtils.mkdir(temp);
return temp; return temp;
} }



+ 4
- 3
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RacyGitTests.java View File

import org.eclipse.jgit.treewalk.FileTreeIterator; import org.eclipse.jgit.treewalk.FileTreeIterator;
import org.eclipse.jgit.treewalk.FileTreeIteratorWithTimeControl; import org.eclipse.jgit.treewalk.FileTreeIteratorWithTimeControl;
import org.eclipse.jgit.treewalk.NameConflictTreeWalk; import org.eclipse.jgit.treewalk.NameConflictTreeWalk;
import org.eclipse.jgit.util.FileUtils;


public class RacyGitTests extends RepositoryTestCase { public class RacyGitTests extends RepositoryTestCase {
public void testIterator() throws IllegalStateException, IOException, public void testIterator() throws IllegalStateException, IOException,
File lastFile = null; File lastFile = null;
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
lastFile = new File(db.getWorkTree(), "0." + i); lastFile = new File(db.getWorkTree(), "0." + i);
lastFile.createNewFile();
FileUtils.createNewFile(lastFile);
if (i == 5) if (i == 5)
fsTick(lastFile); fsTick(lastFile);
} }
modTimes.add(fsTick(lastFile)); modTimes.add(fsTick(lastFile));
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
lastFile = new File(db.getWorkTree(), "1." + i); lastFile = new File(db.getWorkTree(), "1." + i);
lastFile.createNewFile();
FileUtils.createNewFile(lastFile);
} }
modTimes.add(fsTick(lastFile)); modTimes.add(fsTick(lastFile));
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
lastFile = new File(db.getWorkTree(), "2." + i); lastFile = new File(db.getWorkTree(), "2." + i);
lastFile.createNewFile();
FileUtils.createNewFile(lastFile);
if (i % 4 == 0) if (i % 4 == 0)
fsTick(lastFile); fsTick(lastFile);
} }

+ 2
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/AbbreviationTest.java View File

import org.eclipse.jgit.lib.ObjectReader; import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.revwalk.RevBlob; import org.eclipse.jgit.revwalk.RevBlob;
import org.eclipse.jgit.transport.PackedObjectInfo; import org.eclipse.jgit.transport.PackedObjectInfo;
import org.eclipse.jgit.util.FileUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
File packDir = new File(db.getObjectDatabase().getDirectory(), "pack"); File packDir = new File(db.getObjectDatabase().getDirectory(), "pack");
File idxFile = new File(packDir, packName + ".idx"); File idxFile = new File(packDir, packName + ".idx");
File packFile = new File(packDir, packName + ".pack"); File packFile = new File(packDir, packName + ".pack");
packDir.mkdir();
FileUtils.mkdir(packDir, true);
OutputStream dst = new BufferedOutputStream(new FileOutputStream( OutputStream dst = new BufferedOutputStream(new FileOutputStream(
idxFile)); idxFile));
try { try {

+ 2
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/FileRepositoryBuilderTest.java View File

import java.io.File; import java.io.File;


import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase; import org.eclipse.jgit.junit.LocalDiskRepositoryTestCase;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Test; import org.junit.Test;


public class FileRepositoryBuilderTest extends LocalDiskRepositoryTestCase { public class FileRepositoryBuilderTest extends LocalDiskRepositoryTestCase {
public void testShouldAutomagicallyDetectGitDirectory() throws Exception { public void testShouldAutomagicallyDetectGitDirectory() throws Exception {
FileRepository r = createWorkRepository(); FileRepository r = createWorkRepository();
File d = new File(r.getDirectory(), "sub-dir"); File d = new File(r.getDirectory(), "sub-dir");
d.mkdir();
FileUtils.mkdir(d);


assertEquals(r.getDirectory(), new FileRepositoryBuilder() assertEquals(r.getDirectory(), new FileRepositoryBuilder()
.findGitDir(d).getGitDir()); .findGitDir(d).getGitDir());

+ 3
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/RepositorySetupWorkDirTest.java View File

import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Test; import org.junit.Test;


/** /**
} }
} }


private File getFile(String... pathComponents) {
private File getFile(String... pathComponents) throws IOException {
String rootPath = new File(new File("target"), "trash").getPath(); String rootPath = new File(new File("target"), "trash").getPath();
for (String pathComponent : pathComponents) for (String pathComponent : pathComponents)
rootPath = rootPath + File.separatorChar + pathComponent; rootPath = rootPath + File.separatorChar + pathComponent;
File result = new File(rootPath); File result = new File(rootPath);
result.mkdir();
FileUtils.mkdirs(result, true);
return result; return result;
} }



+ 3
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/T0003_BasicTest.java View File

import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTag; import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Test; import org.junit.Test;


public class T0003_BasicTest extends SampleDataRepositoryTestCase { public class T0003_BasicTest extends SampleDataRepositoryTestCase {
throws IOException { throws IOException {
File repo1Parent = new File(trash.getParentFile(), "r1"); File repo1Parent = new File(trash.getParentFile(), "r1");
File workdir = new File(trash.getParentFile(), "rw"); File workdir = new File(trash.getParentFile(), "rw");
workdir.mkdir();
FileUtils.mkdir(workdir);
FileRepository repo1initial = new FileRepository(new File(repo1Parent, FileRepository repo1initial = new FileRepository(new File(repo1Parent,
Constants.DOT_GIT)); Constants.DOT_GIT));
repo1initial.create(); repo1initial.create();
throws IOException { throws IOException {
File repo1Parent = new File(trash.getParentFile(), "r1"); File repo1Parent = new File(trash.getParentFile(), "r1");
File workdir = new File(trash.getParentFile(), "rw"); File workdir = new File(trash.getParentFile(), "rw");
workdir.mkdir();
FileUtils.mkdir(workdir);
FileRepository repo1initial = new FileRepository(new File(repo1Parent, FileRepository repo1initial = new FileRepository(new File(repo1Parent,
Constants.DOT_GIT)); Constants.DOT_GIT));
repo1initial.create(); repo1initial.create();

+ 2
- 1
org.eclipse.jgit.test/tst/org/eclipse/jgit/storage/file/UnpackedObjectTest.java View File

import org.eclipse.jgit.lib.ObjectInserter; import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.ObjectLoader; import org.eclipse.jgit.lib.ObjectLoader;
import org.eclipse.jgit.lib.ObjectStream; import org.eclipse.jgit.lib.ObjectStream;
import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.IO; import org.eclipse.jgit.util.IO;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;


private void write(ObjectId id, byte[] data) throws IOException { private void write(ObjectId id, byte[] data) throws IOException {
File path = path(id); File path = path(id);
path.getParentFile().mkdirs();
FileUtils.mkdirs(path.getParentFile());
FileOutputStream out = new FileOutputStream(path); FileOutputStream out = new FileOutputStream(path);
try { try {
out.write(data); out.write(data);

+ 3
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/transport/OpenSshConfigTest.java View File



import org.eclipse.jgit.lib.RepositoryTestCase; import org.eclipse.jgit.lib.RepositoryTestCase;
import org.eclipse.jgit.transport.OpenSshConfig.Host; import org.eclipse.jgit.transport.OpenSshConfig.Host;
import org.eclipse.jgit.util.FileUtils;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;


super.setUp(); super.setUp();


home = new File(trash, "home"); home = new File(trash, "home");
home.mkdir();
FileUtils.mkdir(home);


configFile = new File(new File(home, ".ssh"), "config"); configFile = new File(new File(home, ".ssh"), "config");
configFile.getParentFile().mkdir();
FileUtils.mkdir(configFile.getParentFile());


System.setProperty("user.name", "jex_junit"); System.setProperty("user.name", "jex_junit");
osc = new OpenSshConfig(home, configFile); osc = new OpenSshConfig(home, configFile);

+ 1
- 2
org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java View File

public void testEmptyIfRootIsEmpty() throws Exception { public void testEmptyIfRootIsEmpty() throws Exception {
final File r = new File(trash, "not-existing-file"); final File r = new File(trash, "not-existing-file");
assertFalse(r.exists()); assertFalse(r.exists());
r.mkdir();
assertTrue(r.isDirectory());
FileUtils.mkdir(r);


final FileTreeIterator fti = new FileTreeIterator(r, db.getFS(), final FileTreeIterator fti = new FileTreeIterator(r, db.getFS(),
db.getConfig().get(WorkingTreeOptions.KEY)); db.getConfig().get(WorkingTreeOptions.KEY));

+ 6
- 6
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FileUtilTest.java View File

@Test @Test
public void testDeleteFile() throws IOException { public void testDeleteFile() throws IOException {
File f = new File(trash, "test"); File f = new File(trash, "test");
assertTrue(f.createNewFile());
FileUtils.createNewFile(f);
FileUtils.delete(f); FileUtils.delete(f);
assertFalse(f.exists()); assertFalse(f.exists());


@Test @Test
public void testDeleteRecursive() throws IOException { public void testDeleteRecursive() throws IOException {
File f1 = new File(trash, "test/test/a"); File f1 = new File(trash, "test/test/a");
f1.mkdirs();
f1.createNewFile();
FileUtils.mkdirs(f1.getParentFile());
FileUtils.createNewFile(f1);
File f2 = new File(trash, "test/test/b"); File f2 = new File(trash, "test/test/b");
f2.createNewFile();
FileUtils.createNewFile(f2);
File d = new File(trash, "test"); File d = new File(trash, "test");
FileUtils.delete(d, FileUtils.RECURSIVE); FileUtils.delete(d, FileUtils.RECURSIVE);
assertFalse(d.exists()); assertFalse(d.exists());


assertTrue(d.delete()); assertTrue(d.delete());
File f = new File(trash, "test"); File f = new File(trash, "test");
assertTrue(f.createNewFile());
FileUtils.createNewFile(f);
try { try {
FileUtils.mkdir(d); FileUtils.mkdir(d);
fail("creation of directory having same path as existing file must" fail("creation of directory having same path as existing file must"


FileUtils.delete(root, FileUtils.RECURSIVE); FileUtils.delete(root, FileUtils.RECURSIVE);
File f = new File(trash, "test"); File f = new File(trash, "test");
assertTrue(f.createNewFile());
FileUtils.createNewFile(f);
try { try {
FileUtils.mkdirs(d); FileUtils.mkdirs(d);
fail("creation of directory having path conflicting with existing" fail("creation of directory having path conflicting with existing"

+ 7
- 0
org.eclipse.jgit/findBugs/FindBugsExcludeFilter.xml View File

<Bug pattern="DM_GC" /> <Bug pattern="DM_GC" />
</Match> </Match>


<!-- Silence ignoring return value of mkdirs -->
<Match>
<Class name="org.eclipse.jgit.dircache.DirCacheCheckout" />
<Method name="checkout" />
<Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
</Match>

<!-- Silence the construction of our magic String instance. <!-- Silence the construction of our magic String instance.
--> -->
<Match> <Match>

+ 1
- 1
org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java View File



Collections.reverse(cherryPickList); Collections.reverse(cherryPickList);
// create the folder for the meta information // create the folder for the meta information
rebaseDir.mkdir();
FileUtils.mkdir(rebaseDir);


createFile(repo.getDirectory(), Constants.ORIG_HEAD, headId.name()); createFile(repo.getDirectory(), Constants.ORIG_HEAD, headId.name());
createFile(rebaseDir, REBASE_HEAD, headId.name()); createFile(rebaseDir, REBASE_HEAD, headId.name());

+ 3
- 1
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java View File

for (String path : updated.keySet()) { for (String path : updated.keySet()) {
// ... create/overwrite this file ... // ... create/overwrite this file ...
file = new File(repo.getWorkTree(), path); file = new File(repo.getWorkTree(), path);
file.getParentFile().mkdirs();
if (!file.getParentFile().mkdirs()) {
// ignore
}
file.createNewFile(); file.createNewFile();
DirCacheEntry entry = dc.getEntry(path); DirCacheEntry entry = dc.getEntry(path);
checkoutEntry(repo, file, entry); checkoutEntry(repo, file, entry);

+ 2
- 1
org.eclipse.jgit/src/org/eclipse/jgit/lib/GitIndex.java View File

import org.eclipse.jgit.errors.CorruptObjectException; import org.eclipse.jgit.errors.CorruptObjectException;
import org.eclipse.jgit.errors.NotSupportedException; import org.eclipse.jgit.errors.NotSupportedException;
import org.eclipse.jgit.events.IndexChangedEvent; import org.eclipse.jgit.events.IndexChangedEvent;
import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.RawParseUtils; import org.eclipse.jgit.util.RawParseUtils;


/** /**
ObjectLoader ol = db.open(e.sha1, Constants.OBJ_BLOB); ObjectLoader ol = db.open(e.sha1, Constants.OBJ_BLOB);
File file = new File(wd, e.getName()); File file = new File(wd, e.getName());
file.delete(); file.delete();
file.getParentFile().mkdirs();
FileUtils.mkdirs(file.getParentFile(), true);
FileOutputStream dst = new FileOutputStream(file); FileOutputStream dst = new FileOutputStream(file);
try { try {
ol.copyTo(dst); ol.copyTo(dst);

+ 2
- 2
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileRepository.java View File

throw new IllegalStateException(MessageFormat.format( throw new IllegalStateException(MessageFormat.format(
JGitText.get().repositoryAlreadyExists, getDirectory())); JGitText.get().repositoryAlreadyExists, getDirectory()));
} }
getDirectory().mkdirs();
FileUtils.mkdirs(getDirectory(), true);
refs.create(); refs.create();
objectDatabase.create(); objectDatabase.create();


new File(getDirectory(), "branches").mkdir();
FileUtils.mkdir(new File(getDirectory(), "branches"));


RefUpdate head = updateRef(Constants.HEAD); RefUpdate head = updateRef(Constants.HEAD);
head.disableRefLog(); head.disableRefLog();

+ 2
- 1
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/LockFile.java View File

import org.eclipse.jgit.lib.Constants; import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils;


/** /**
* Git style file locking and replacement. * Git style file locking and replacement.
* does not hold the lock. * does not hold the lock.
*/ */
public boolean lock() throws IOException { public boolean lock() throws IOException {
lck.getParentFile().mkdirs();
FileUtils.mkdirs(lck.getParentFile(), true);
if (lck.createNewFile()) { if (lck.createNewFile()) {
haveLck = true; haveLck = true;
try { try {

+ 4
- 4
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/ObjectDirectory.java View File



@Override @Override
public void create() throws IOException { public void create() throws IOException {
objects.mkdirs();
infoDirectory.mkdir();
packDirectory.mkdir();
FileUtils.mkdirs(objects);
FileUtils.mkdir(infoDirectory);
FileUtils.mkdir(packDirectory);
} }


@Override @Override
// directories are always lazily created. Note that we // directories are always lazily created. Note that we
// try the rename first as the directory likely does exist. // try the rename first as the directory likely does exist.
// //
dst.getParentFile().mkdir();
FileUtils.mkdir(dst.getParentFile());
if (tmp.renameTo(dst)) { if (tmp.renameTo(dst)) {
dst.setReadOnly(); dst.setReadOnly();
unpackedObjectCache.add(id); unpackedObjectCache.add(id);

+ 9
- 7
org.eclipse.jgit/src/org/eclipse/jgit/storage/file/RefDirectory.java View File

import org.eclipse.jgit.revwalk.RevTag; import org.eclipse.jgit.revwalk.RevTag;
import org.eclipse.jgit.revwalk.RevWalk; import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.util.FS; import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.FileUtils;
import org.eclipse.jgit.util.IO; import org.eclipse.jgit.util.IO;
import org.eclipse.jgit.util.RawParseUtils; import org.eclipse.jgit.util.RawParseUtils;
import org.eclipse.jgit.util.RefList; import org.eclipse.jgit.util.RefList;
} }


public void create() throws IOException { public void create() throws IOException {
refsDir.mkdir();
logsDir.mkdir();
logsRefsDir.mkdir();

new File(refsDir, R_HEADS.substring(R_REFS.length())).mkdir();
new File(refsDir, R_TAGS.substring(R_REFS.length())).mkdir();
new File(logsRefsDir, R_HEADS.substring(R_REFS.length())).mkdir();
FileUtils.mkdir(refsDir);
FileUtils.mkdir(logsDir);
FileUtils.mkdir(logsRefsDir);

FileUtils.mkdir(new File(refsDir, R_HEADS.substring(R_REFS.length())));
FileUtils.mkdir(new File(refsDir, R_TAGS.substring(R_REFS.length())));
FileUtils.mkdir(new File(logsRefsDir,
R_HEADS.substring(R_REFS.length())));
} }


@Override @Override

Loading…
Cancel
Save