summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java2
-rw-r--r--org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java2
-rw-r--r--org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java2
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java2
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java4
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowCommands.java2
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java4
-rw-r--r--org.eclipse.jgit.test/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.jgit.test/exttst/org/eclipse/jgit/patch/EGitPatchHistoryTest.java2
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcOrphanFilesTest.java12
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java2
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserBadlyFormattedTest.java2
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java49
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/util/io/TeeOutputStreamTest.java81
-rw-r--r--org.eclipse.jgit/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java5
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/attributes/AttributesRule.java6
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffEntry.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java12
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/errors/NoMergeBaseException.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/errors/TranslationBundleException.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/hooks/GitHook.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java5
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/IMatcher.java (renamed from org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/IMatcher.java)37
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/IgnoreNode.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/AbstractMatcher.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java1
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileObjectDatabase.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java10
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockWriter.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableDatabase.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java14
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/GitmoduleEntry.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/InflaterCache.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdOwnerMap.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RebaseTodoLine.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RefUpdate.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/nls/NLS.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/patch/BinaryHunk.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/patch/CombinedHunkHeader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/patch/FileHeader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/patch/FormatError.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/GitProtocolConstants.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteRefUpdate.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportProtocol.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java4
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/Base64.java12
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java9
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateFormatter.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java63
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/ProcessResult.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/RelativeDateFormatter.java14
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java2
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/io/TeeOutputStream.java74
90 files changed, 436 insertions, 148 deletions
diff --git a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java
index ed9b9ae0d7..625ab3e663 100644
--- a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java
+++ b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/ObjectFileServlet.java
@@ -50,7 +50,7 @@ abstract class ObjectFileServlet extends HttpServlet {
}
}
- private static abstract class PackData extends ObjectFileServlet {
+ private abstract static class PackData extends ObjectFileServlet {
private static final long serialVersionUID = 1L;
PackData(String contentType) {
diff --git a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
index 6576edeb92..f0526ff8a2 100644
--- a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
+++ b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/CleanFilter.java
@@ -45,7 +45,7 @@ public class CleanFilter extends FilterCommand {
* The factory is responsible for creating instances of
* {@link org.eclipse.jgit.lfs.CleanFilter}
*/
- public final static FilterCommandFactory FACTORY = CleanFilter::new;
+ public static final FilterCommandFactory FACTORY = CleanFilter::new;
/**
* Registers this filter by calling
diff --git a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
index 64f7425888..23ece3e484 100644
--- a/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
+++ b/org.eclipse.jgit.lfs/src/org/eclipse/jgit/lfs/SmudgeFilter.java
@@ -59,7 +59,7 @@ public class SmudgeFilter extends FilterCommand {
* The factory is responsible for creating instances of
* {@link org.eclipse.jgit.lfs.SmudgeFilter}
*/
- public final static FilterCommandFactory FACTORY = SmudgeFilter::new;
+ public static final FilterCommandFactory FACTORY = SmudgeFilter::new;
/**
* Register this filter in JGit
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
index 430ed2e919..cd5d8f1bfe 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/DiffAlgorithms.java
@@ -317,7 +317,7 @@ class DiffAlgorithms extends TextBuiltin {
return false;
}
- private static abstract class Algorithm {
+ private abstract static class Algorithm {
String name;
abstract DiffAlgorithm create();
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
index 6c87bc99c6..9c0ced5c1e 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/LfsStore.java
@@ -128,11 +128,11 @@ class LfsStore extends TextBuiltin {
}
}
- private static enum StoreType {
+ private enum StoreType {
FS, S3;
}
- private static enum StorageClass {
+ private enum StorageClass {
REDUCED_REDUNDANCY, STANDARD
}
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowCommands.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowCommands.java
index 36d1d2366d..9e61357da8 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowCommands.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/ShowCommands.java
@@ -50,7 +50,7 @@ class ShowCommands extends TextBuiltin {
errw.println();
}
- static enum Format {
+ enum Format {
/** */
USAGE {
@Override
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
index e42d51be17..f777f277f4 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/debug/TextHashFunctions.java
@@ -410,7 +410,7 @@ class TextHashFunctions extends TextBuiltin {
}
/** Base class for any hashCode function to be tested. */
- private static abstract class Hash extends RawTextComparator {
+ private abstract static class Hash extends RawTextComparator {
String name;
@Override
@@ -420,7 +420,7 @@ class TextHashFunctions extends TextBuiltin {
}
/** Base class for any hashCode folding function to be tested. */
- private static abstract class Fold {
+ private abstract static class Fold {
String name;
/**
diff --git a/org.eclipse.jgit.test/META-INF/MANIFEST.MF b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
index 6aabb88744..97cf7e2700 100644
--- a/org.eclipse.jgit.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit.test/META-INF/MANIFEST.MF
@@ -18,7 +18,6 @@ Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
org.apache.commons.compress.compressors.gzip;version="[1.15.0,2.0)",
org.apache.commons.compress.compressors.xz;version="[1.15.0,2.0)",
org.assertj.core.api;version="[3.14.0,4.0.0)",
- org.bouncycastle.util.encoders;version="[1.61.0,2.0.0)",
org.eclipse.jgit.annotations;version="[6.0.0,6.1.0)",
org.eclipse.jgit.api;version="[6.0.0,6.1.0)",
org.eclipse.jgit.api.errors;version="[6.0.0,6.1.0)",
diff --git a/org.eclipse.jgit.test/exttst/org/eclipse/jgit/patch/EGitPatchHistoryTest.java b/org.eclipse.jgit.test/exttst/org/eclipse/jgit/patch/EGitPatchHistoryTest.java
index c7fd253bc0..b01d9b467d 100644
--- a/org.eclipse.jgit.test/exttst/org/eclipse/jgit/patch/EGitPatchHistoryTest.java
+++ b/org.eclipse.jgit.test/exttst/org/eclipse/jgit/patch/EGitPatchHistoryTest.java
@@ -152,7 +152,7 @@ public class EGitPatchHistoryTest {
}
}
- static abstract class CommitReader {
+ abstract static class CommitReader {
private Process proc;
CommitReader(String[] args) throws IOException {
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcOrphanFilesTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcOrphanFilesTest.java
index 24df8dd2da..84d364b985 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcOrphanFilesTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/GcOrphanFilesTest.java
@@ -20,17 +20,17 @@ import org.junit.Before;
import org.junit.Test;
public class GcOrphanFilesTest extends GcTestCase {
- private final static String PACK = "pack";
+ private static final String PACK = "pack";
- private final static String BITMAP_File_1 = PACK + "-1.bitmap";
+ private static final String BITMAP_File_1 = PACK + "-1.bitmap";
- private final static String IDX_File_2 = PACK + "-2.idx";
+ private static final String IDX_File_2 = PACK + "-2.idx";
- private final static String IDX_File_malformed = PACK + "-1234idx";
+ private static final String IDX_File_malformed = PACK + "-1234idx";
- private final static String PACK_File_2 = PACK + "-2.pack";
+ private static final String PACK_File_2 = PACK + "-2.pack";
- private final static String PACK_File_3 = PACK + "-3.pack";
+ private static final String PACK_File_3 = PACK + "-3.pack";
private File packDir;
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
index 9b5691775f..327b554b48 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java
@@ -305,7 +305,7 @@ public class ConfigTest {
assertFalse(c.getBoolean("s", "b", true));
}
- static enum TestEnum {
+ enum TestEnum {
ONE_TWO;
}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserBadlyFormattedTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserBadlyFormattedTest.java
index cd2cdce155..547def182d 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserBadlyFormattedTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/GitDateParserBadlyFormattedTest.java
@@ -46,7 +46,7 @@ public class GitDateParserBadlyFormattedTest {
}
@DataPoints
- static public String[] getDataPoints() {
+ public static String[] getDataPoints() {
return new String[] { "", "1970", "3000.3000.3000", "3 yesterday ago",
"now yesterday ago", "yesterdays", "3.day. 2.week.ago",
"day ago", "Gra Feb 21 15:35:00 2007 +0100",
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java
new file mode 100644
index 0000000000..32af07f259
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/HexTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2010, Google Inc.
+ * Copyright (C) 2020 Michael Dardis and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.util;
+
+import static org.eclipse.jgit.util.Hex.decode;
+import static org.eclipse.jgit.util.Hex.toHexString;
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.jgit.junit.JGitTestUtil;
+import org.eclipse.jgit.lib.Constants;
+import org.junit.Test;
+
+public class HexTest {
+ @Test
+ public void testEncode() {
+ assertEquals("68690a", toHexString(b("hi\n")));
+ assertEquals("0001020d0a0971", toHexString(b("\0\1\2\r\n\tq")));
+ }
+
+ @Test
+ public void testDecode() {
+ JGitTestUtil.assertEquals(b("hi\n"), decode("68690a"));
+ JGitTestUtil.assertEquals(b("\0\1\2\r\n\tq"), decode("0001020d0a0971"));
+ JGitTestUtil.assertEquals(b("\u000EB"), decode("0E42"));
+ }
+
+ @Test
+ public void testEncodeMatchesDecode() {
+ String[] testStrings = { "", "cow", "a", "a secret string",
+ "\0\1\2\r\n\t" };
+ for (String e : testStrings) {
+ JGitTestUtil.assertEquals(b(e), decode(toHexString(b(e))));
+ }
+ }
+
+ private static byte[] b(String str) {
+ return Constants.encode(str);
+ }
+
+}
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/io/TeeOutputStreamTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/io/TeeOutputStreamTest.java
new file mode 100644
index 0000000000..bb1c974455
--- /dev/null
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/util/io/TeeOutputStreamTest.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2020, Michael Dardis. and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+package org.eclipse.jgit.util.io;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import org.eclipse.jgit.lib.Constants;
+import org.junit.Test;
+
+public class TeeOutputStreamTest {
+
+ @Test
+ public void test() throws IOException {
+ byte[] data = Constants.encode("Hello World");
+
+ TestOutput first = new TestOutput();
+ TestOutput second = new TestOutput();
+ try (TeeOutputStream tee = new TeeOutputStream(first, second)) {
+ tee.write(data);
+ assertArrayEquals("Stream output must match", first.toByteArray(),
+ second.toByteArray());
+
+ tee.write(1);
+ assertArrayEquals("Stream output must match", first.toByteArray(),
+ second.toByteArray());
+
+ tee.write(data, 1, 4); // Test partial write methods
+ assertArrayEquals("Stream output must match", first.toByteArray(),
+ second.toByteArray());
+ }
+ assertTrue("First stream should be closed", first.closed);
+ assertTrue("Second stream should be closed", second.closed);
+ }
+
+ @Test
+ public void testCloseException() {
+ TestOutput first = new TestOutput() {
+ @Override
+ public void close() throws IOException {
+ throw new IOException();
+ }
+
+ };
+ TestOutput second = new TestOutput();
+
+ @SuppressWarnings("resource")
+ TeeOutputStream tee = new TeeOutputStream(first, second);
+ try {
+ tee.close();
+ } catch (IOException ex) {
+ // Expected from first closed
+ }
+ assertFalse("First stream should not be closed", first.closed);
+ assertTrue("Second stream should still be closed if first close failed",
+ second.closed);
+ }
+
+ private static class TestOutput extends ByteArrayOutputStream {
+
+ private boolean closed;
+
+ @Override
+ public void close() throws IOException {
+ closed = true;
+ super.close();
+ }
+ }
+
+}
diff --git a/org.eclipse.jgit/META-INF/MANIFEST.MF b/org.eclipse.jgit/META-INF/MANIFEST.MF
index 348143008b..0b60c8c46b 100644
--- a/org.eclipse.jgit/META-INF/MANIFEST.MF
+++ b/org.eclipse.jgit/META-INF/MANIFEST.MF
@@ -172,7 +172,6 @@ Import-Package: com.googlecode.javaewah;version="[1.1.6,2.0.0)",
org.bouncycastle.openpgp.operator;version="[1.61.0,2.0.0)",
org.bouncycastle.openpgp.operator.jcajce;version="[1.61.0,2.0.0)",
org.bouncycastle.util.encoders;version="[1.61.0,2.0.0)",
- org.bouncycastle.util.io;version="[1.61.0,2.0.0)",
org.slf4j;version="[1.7.0,2.0.0)",
org.xml.sax,
org.xml.sax.helpers
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
index fbd59dd754..0dc5d5e7f7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CheckoutCommand.java
@@ -104,7 +104,7 @@ public class CheckoutCommand extends GitCommand<Ref> {
/**
* Stage to check out, see {@link CheckoutCommand#setStage(Stage)}.
*/
- public static enum Stage {
+ public enum Stage {
/**
* Base stage (#1)
*/
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
index 5322d5c0e0..4e18b5994d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CommitCommand.java
@@ -491,7 +491,7 @@ public class CommitCommand extends GitCommand<RevCommit> {
int position = Collections.binarySearch(only, p);
if (position >= 0)
return position;
- int l = p.lastIndexOf("/"); //$NON-NLS-1$
+ int l = p.lastIndexOf('/');
if (l < 1)
break;
p = p.substring(0, l);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
index 16207c92e1..449250890c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullCommand.java
@@ -57,7 +57,7 @@ import org.eclipse.jgit.transport.TagOpt;
*/
public class PullCommand extends TransportCommand<PullCommand, PullResult> {
- private final static String DOT = "."; //$NON-NLS-1$
+ private static final String DOT = "."; //$NON-NLS-1$
private ProgressMonitor monitor = NullProgressMonitor.INSTANCE;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
index 705993e4e3..b722fbe9d1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java
@@ -800,7 +800,8 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
sb.append("# This is a combination of ").append(count)
.append(" commits.\n");
// Add the previous message without header (i.e first line)
- sb.append(currSquashMessage.substring(currSquashMessage.indexOf("\n") + 1));
+ sb.append(currSquashMessage
+ .substring(currSquashMessage.indexOf('\n') + 1));
sb.append("\n");
if (isSquash) {
sb.append("# This is the ").append(count).append(ordinal)
@@ -838,7 +839,7 @@ public class RebaseCommand extends GitCommand<RebaseResult> {
static int parseSquashFixupSequenceCount(String currSquashMessage) {
String regex = "This is a combination of (.*) commits"; //$NON-NLS-1$
String firstLine = currSquashMessage.substring(0,
- currSquashMessage.indexOf("\n")); //$NON-NLS-1$
+ currSquashMessage.indexOf('\n'));
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(firstLine);
if (!matcher.find())
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
index e409082d61..470a92eaf5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/Attribute.java
@@ -34,7 +34,7 @@ public final class Attribute {
* The attribute value state
* see also https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
*/
- public static enum State {
+ public enum State {
/** the attribute is set */
SET,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/AttributesRule.java b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/AttributesRule.java
index 53812442b6..73fd587a14 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/attributes/AttributesRule.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/attributes/AttributesRule.java
@@ -9,7 +9,7 @@
*/
package org.eclipse.jgit.attributes;
-import static org.eclipse.jgit.ignore.internal.IMatcher.NO_MATCH;
+import static org.eclipse.jgit.ignore.IMatcher.NO_MATCH;
import java.util.ArrayList;
import java.util.Collections;
@@ -18,7 +18,7 @@ import java.util.List;
import org.eclipse.jgit.attributes.Attribute.State;
import org.eclipse.jgit.errors.InvalidPatternException;
import org.eclipse.jgit.ignore.FastIgnoreRule;
-import org.eclipse.jgit.ignore.internal.IMatcher;
+import org.eclipse.jgit.ignore.IMatcher;
import org.eclipse.jgit.ignore.internal.PathMatcher;
/**
@@ -58,7 +58,7 @@ public class AttributesRule {
continue;
}
- final int equalsIndex = attribute.indexOf("="); //$NON-NLS-1$
+ final int equalsIndex = attribute.indexOf('=');
if (equalsIndex == -1)
result.add(new Attribute(attribute, State.SET));
else {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java
index 4ccde4f888..b062ee7ee4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffConfig.java
@@ -26,7 +26,7 @@ public class DiffConfig {
public static final Config.SectionParser<DiffConfig> KEY = DiffConfig::new;
/** Permissible values for {@code diff.renames}. */
- public static enum RenameDetectionType {
+ public enum RenameDetectionType {
/** Rename detection is disabled. */
FALSE,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffEntry.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffEntry.java
index 1041682eee..f0ce121f73 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffEntry.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffEntry.java
@@ -39,7 +39,7 @@ public class DiffEntry {
public static final String DEV_NULL = "/dev/null"; //$NON-NLS-1$
/** General type of change a single file-level patch describes. */
- public static enum ChangeType {
+ public enum ChangeType {
/** Add a new file to the project */
ADD,
@@ -57,7 +57,7 @@ public class DiffEntry {
}
/** Specify the old or new side for more generalized access. */
- public static enum Side {
+ public enum Side {
/** The old side of a DiffEntry. */
OLD,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java
index f05c4571c0..219a187e27 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/Edit.java
@@ -31,7 +31,7 @@ package org.eclipse.jgit.diff;
*/
public class Edit {
/** Type of edit */
- public static enum Type {
+ public enum Type {
/** Sequence B has inserted the region. */
INSERT,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
index 6173f7dfe0..74a11a024a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/SimilarityRenameDetector.java
@@ -302,14 +302,14 @@ class SimilarityRenameDetector {
}
static int nameScore(String a, String b) {
- int aDirLen = a.lastIndexOf("/") + 1; //$NON-NLS-1$
- int bDirLen = b.lastIndexOf("/") + 1; //$NON-NLS-1$
+ int aDirLen = a.lastIndexOf('/') + 1;
+ int bDirLen = b.lastIndexOf('/') + 1;
- int dirMin = Math.min(aDirLen, bDirLen);
- int dirMax = Math.max(aDirLen, bDirLen);
+ int dirMin = Math.min(aDirLen, bDirLen);
+ int dirMax = Math.max(aDirLen, bDirLen);
- final int dirScoreLtr;
- final int dirScoreRtl;
+ final int dirScoreLtr;
+ final int dirScoreRtl;
if (dirMax == 0) {
dirScoreLtr = 100;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/errors/NoMergeBaseException.java b/org.eclipse.jgit/src/org/eclipse/jgit/errors/NoMergeBaseException.java
index 9c832944bf..889ee5b3b4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/errors/NoMergeBaseException.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/errors/NoMergeBaseException.java
@@ -30,7 +30,7 @@ public class NoMergeBaseException extends IOException {
* An enum listing the different reason why no merge base could be
* determined.
*/
- public static enum MergeBaseFailureReason {
+ public enum MergeBaseFailureReason {
/**
* Multiple merge bases have been found (e.g. the commits to be merged
* have multiple common predecessors) but the merge strategy doesn't
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/errors/TranslationBundleException.java b/org.eclipse.jgit/src/org/eclipse/jgit/errors/TranslationBundleException.java
index 28b48caec5..1c9243c2e2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/errors/TranslationBundleException.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/errors/TranslationBundleException.java
@@ -45,7 +45,7 @@ public abstract class TranslationBundleException extends RuntimeException {
*
* @return bundle class for which the exception occurred
*/
- final public Class getBundleClass() {
+ public final Class getBundleClass() {
return bundleClass;
}
@@ -54,7 +54,7 @@ public abstract class TranslationBundleException extends RuntimeException {
*
* @return locale for which the exception occurred
*/
- final public Locale getLocale() {
+ public final Locale getLocale() {
return locale;
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/hooks/GitHook.java b/org.eclipse.jgit/src/org/eclipse/jgit/hooks/GitHook.java
index ed9c38a4d0..4059b16b39 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/hooks/GitHook.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/hooks/GitHook.java
@@ -17,11 +17,11 @@ import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.concurrent.Callable;
-import org.bouncycastle.util.io.TeeOutputStream;
import org.eclipse.jgit.api.errors.AbortedByHookException;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.util.FS;
import org.eclipse.jgit.util.ProcessResult;
+import org.eclipse.jgit.util.io.TeeOutputStream;
/**
* Git can fire off custom scripts when certain important actions occur. These
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
index a1866c85a9..d7e4f79d26 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/FastIgnoreRule.java
@@ -9,13 +9,12 @@
*/
package org.eclipse.jgit.ignore;
-import static org.eclipse.jgit.ignore.internal.IMatcher.NO_MATCH;
+import static org.eclipse.jgit.ignore.IMatcher.NO_MATCH;
import static org.eclipse.jgit.ignore.internal.Strings.isDirectoryPattern;
import static org.eclipse.jgit.ignore.internal.Strings.stripTrailing;
import static org.eclipse.jgit.ignore.internal.Strings.stripTrailingWhitespace;
import org.eclipse.jgit.errors.InvalidPatternException;
-import org.eclipse.jgit.ignore.internal.IMatcher;
import org.eclipse.jgit.ignore.internal.PathMatcher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,7 +28,7 @@ import org.slf4j.LoggerFactory;
* @since 3.6
*/
public class FastIgnoreRule {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(FastIgnoreRule.class);
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/IMatcher.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IMatcher.java
index d93cc9a8a4..3cbb069ff9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/IMatcher.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IMatcher.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2014, 2017 Andrey Loskutov <loskutov@gmx.de> and others
+ * Copyright (C) 2014, 2020 Andrey Loskutov <loskutov@gmx.de> and others
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0 which is available at
@@ -7,10 +7,16 @@
*
* SPDX-License-Identifier: BSD-3-Clause
*/
-package org.eclipse.jgit.ignore.internal;
+package org.eclipse.jgit.ignore;
+
+import org.eclipse.jgit.annotations.NonNull;
+import org.eclipse.jgit.errors.InvalidPatternException;
+import org.eclipse.jgit.ignore.internal.PathMatcher;
/**
- * Generic string matcher
+ * Generic path matcher.
+ *
+ * @since 5.7
*/
public interface IMatcher {
@@ -18,6 +24,7 @@ public interface IMatcher {
* Matcher that does not match any pattern.
*/
public static final IMatcher NO_MATCH = new IMatcher() {
+
@Override
public boolean matches(String path, boolean assumeDirectory,
boolean pathMatch) {
@@ -31,6 +38,25 @@ public interface IMatcher {
};
/**
+ * Creates a path matcher for the given pattern. A pattern may contain the
+ * wildcards "?", "*", and "**". The directory separator is '/'.
+ *
+ * @param pattern
+ * to match
+ * @param dirOnly
+ * whether to match only directories
+ * @return a matcher for the given pattern
+ * @throws InvalidPatternException
+ * if the pattern is invalid
+ */
+ @NonNull
+ public static IMatcher createPathMatcher(@NonNull String pattern,
+ boolean dirOnly) throws InvalidPatternException {
+ return PathMatcher.createPathMatcher(pattern,
+ Character.valueOf(FastIgnoreRule.PATH_SEPARATOR), dirOnly);
+ }
+
+ /**
* Matches entire given string
*
* @param path
@@ -40,10 +66,7 @@ public interface IMatcher {
* with a slash)
* @param pathMatch
* {@code true} if the match is for the full path: prefix-only
- * matches are not allowed, and
- * {@link org.eclipse.jgit.ignore.internal.NameMatcher}s must
- * match only the last component (if they can -- they may not, if
- * they are anchored at the beginning)
+ * matches are not allowed
* @return true if this matcher pattern matches given string
*/
boolean matches(String path, boolean assumeDirectory, boolean pathMatch);
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IgnoreNode.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IgnoreNode.java
index 4564e241c8..0bc6124912 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IgnoreNode.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/IgnoreNode.java
@@ -26,7 +26,7 @@ import java.util.List;
*/
public class IgnoreNode {
/** Result from {@link IgnoreNode#isIgnored(String, boolean)}. */
- public static enum MatchResult {
+ public enum MatchResult {
/** The file is not ignored, due to a rule saying its not ignored. */
NOT_IGNORED,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/AbstractMatcher.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/AbstractMatcher.java
index a77061f501..0737ed8878 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/AbstractMatcher.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/AbstractMatcher.java
@@ -9,6 +9,8 @@
*/
package org.eclipse.jgit.ignore.internal;
+import org.eclipse.jgit.ignore.IMatcher;
+
/**
* Base class for default methods as {@link #toString()} and such.
* <p>
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
index 8226a5247c..ba77b3dd87 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/PathMatcher.java
@@ -19,6 +19,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.jgit.errors.InvalidPatternException;
+import org.eclipse.jgit.ignore.IMatcher;
import org.eclipse.jgit.ignore.internal.Strings.PatternState;
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
index 107a0dd611..fbce08adf4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/ignore/internal/Strings.java
@@ -196,11 +196,11 @@ public class Strings {
return PatternState.COMPLEX;
}
- static enum PatternState {
+ enum PatternState {
LEADING_ASTERISK_ONLY, TRAILING_ASTERISK_ONLY, COMPLEX, NONE
}
- final static List<String> POSIX_CHAR_CLASSES = Arrays.asList(
+ static final List<String> POSIX_CHAR_CLASSES = Arrays.asList(
"alnum", "alpha", "blank", "cntrl", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
// [:alnum:] [:alpha:] [:blank:] [:cntrl:]
"digit", "graph", "lower", "print", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
@@ -215,7 +215,7 @@ public class Strings {
private static final String DL = "\\p{javaDigit}\\p{javaLetter}"; //$NON-NLS-1$
- final static List<String> JAVA_CHAR_CLASSES = Arrays
+ static final List<String> JAVA_CHAR_CLASSES = Arrays
.asList("\\p{Alnum}", "\\p{javaLetter}", "\\p{Blank}", "\\p{Cntrl}", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
// [:alnum:] [:alpha:] [:blank:] [:cntrl:]
"\\p{javaDigit}", "[\\p{Graph}" + DL + "]", "\\p{Ll}", "[\\p{Print}" + DL + "]", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
@@ -228,7 +228,7 @@ public class Strings {
// Collating symbols [[.a.]] or equivalence class expressions [[=a=]] are
// not supported by CLI git (at least not by 1.9.1)
- final static Pattern UNSUPPORTED = Pattern
+ static final Pattern UNSUPPORTED = Pattern
.compile("\\[\\[[.=]\\w+[.=]\\]\\]"); //$NON-NLS-1$
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
index a587bbca34..743d1939c8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/ketch/KetchLeader.java
@@ -93,7 +93,7 @@ public abstract class KetchLeader {
private static final Logger log = LoggerFactory.getLogger(KetchLeader.class);
/** Current state of the leader instance. */
- public static enum State {
+ public enum State {
/** Newly created instance trying to elect itself leader. */
CANDIDATE,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
index b357da5b49..4dab3b20c5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/dfs/DfsObjDatabase.java
@@ -64,7 +64,7 @@ public abstract class DfsObjDatabase extends ObjectDatabase {
* comparator based on {@link Enum#compareTo}. Prefer {@link
* #DEFAULT_COMPARATOR} or your own {@link ComparatorBuilder}.
*/
- public static enum PackSource {
+ public enum PackSource {
/** The pack is created by ObjectInserter due to local activity. */
INSERT,
@@ -672,7 +672,7 @@ public abstract class DfsObjDatabase extends ObjectDatabase {
}
/** Snapshot of packs scanned in a single pass. */
- public static abstract class PackList {
+ public abstract static class PackList {
/** All known packs, sorted. */
public final DfsPackFile[] packs;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileObjectDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileObjectDatabase.java
index 448c8bb27a..11ed10c90a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileObjectDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileObjectDatabase.java
@@ -27,7 +27,7 @@ import org.eclipse.jgit.lib.ObjectReader;
import org.eclipse.jgit.util.FS;
abstract class FileObjectDatabase extends ObjectDatabase {
- static enum InsertLooseObjectResult {
+ enum InsertLooseObjectResult {
INSERTED, EXISTS_PACKED, EXISTS_LOOSE, FAILURE;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
index 915f31070e..0899578e20 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/GC.java
@@ -98,7 +98,7 @@ import org.slf4j.LoggerFactory;
* adapted to FileRepositories.
*/
public class GC {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(GC.class);
private static final String PRUNE_EXPIRE_DEFAULT = "2.weeks.ago"; //$NON-NLS-1$
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
index f2b65572e3..2e0a6da3a4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LockFile.java
@@ -50,7 +50,7 @@ import org.slf4j.LoggerFactory;
* name.
*/
public class LockFile {
- private final static Logger LOG = LoggerFactory.getLogger(LockFile.class);
+ private static final Logger LOG = LoggerFactory.getLogger(LockFile.class);
/**
* Unlock the given file.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
index 169587081c..6a822d570a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java
@@ -76,7 +76,7 @@ import org.slf4j.LoggerFactory;
* considered.
*/
public class ObjectDirectory extends FileObjectDatabase {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(ObjectDirectory.class);
private static final PackList NO_PACKS = new PackList(
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
index b997338759..254c020237 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/PackFile.java
@@ -70,7 +70,7 @@ import org.slf4j.LoggerFactory;
* objects are similar.
*/
public class PackFile implements Iterable<PackIndex.MutableEntry> {
- private final static Logger LOG = LoggerFactory.getLogger(PackFile.class);
+ private static final Logger LOG = LoggerFactory.getLogger(PackFile.class);
/**
* Sorts PackFiles to be most recently created to least recently created.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
index fddd430bf1..7d108feae9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/RefDirectory.java
@@ -97,7 +97,7 @@ import org.slf4j.LoggerFactory;
* overall size of a Git repository on disk.
*/
public class RefDirectory extends RefDatabase {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(RefDirectory.class);
/** Magic string denoting the start of a symbolic reference file. */
@@ -1376,7 +1376,7 @@ public class RefDirectory extends RefDatabase {
LooseRef peel(ObjectIdRef newLeaf);
}
- private final static class LoosePeeledTag extends ObjectIdRef.PeeledTag
+ private static final class LoosePeeledTag extends ObjectIdRef.PeeledTag
implements LooseRef {
private final FileSnapshot snapShot;
@@ -1397,7 +1397,7 @@ public class RefDirectory extends RefDatabase {
}
}
- private final static class LooseNonTag extends ObjectIdRef.PeeledNonTag
+ private static final class LooseNonTag extends ObjectIdRef.PeeledNonTag
implements LooseRef {
private final FileSnapshot snapShot;
@@ -1418,7 +1418,7 @@ public class RefDirectory extends RefDatabase {
}
}
- private final static class LooseUnpeeled extends ObjectIdRef.Unpeeled
+ private static final class LooseUnpeeled extends ObjectIdRef.Unpeeled
implements LooseRef {
private FileSnapshot snapShot;
@@ -1453,7 +1453,7 @@ public class RefDirectory extends RefDatabase {
}
}
- private final static class LooseSymbolicRef extends SymbolicRef implements
+ private static final class LooseSymbolicRef extends SymbolicRef implements
LooseRef {
private final FileSnapshot snapShot;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
index eaca758e47..bedc6939c8 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackExt.java
@@ -48,7 +48,7 @@ public class PackExt {
* the file extension.
* @return the PackExt for the ext
*/
- public synchronized static PackExt newPackExt(String ext) {
+ public static synchronized PackExt newPackExt(String ext) {
PackExt[] dst = new PackExt[VALUES.length + 1];
for (int i = 0; i < VALUES.length; i++) {
PackExt packExt = VALUES[i];
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index e8f0e1fd93..057970ecac 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -2399,7 +2399,7 @@ public class PackWriter implements AutoCloseable {
}
/** Possible states that a PackWriter can be in. */
- public static enum PackingPhase {
+ public enum PackingPhase {
/** Counting objects phase. */
COUNTING,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockWriter.java
index 0f11e05460..e3c0fc94aa 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/BlockWriter.java
@@ -253,7 +253,7 @@ class BlockWriter {
return aLen - bLen;
}
- static abstract class Entry {
+ abstract static class Entry {
static int compare(Entry ea, Entry eb) {
byte[] a = ea.key;
byte[] b = eb.key;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableDatabase.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableDatabase.java
index e8a61d2d32..4de6c28709 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableDatabase.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/reftable/ReftableDatabase.java
@@ -47,7 +47,7 @@ public abstract class ReftableDatabase {
* @throws IOException
* on I/O problems.
*/
- abstract protected MergedReftable openMergedReftable() throws IOException;
+ protected abstract MergedReftable openMergedReftable() throws IOException;
/**
* @return the next available logical timestamp for an additional reftable
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
index 8220a91820..f23c6e08d1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/CoreConfig.java
@@ -27,7 +27,7 @@ public class CoreConfig {
public static final Config.SectionParser<CoreConfig> KEY = CoreConfig::new;
/** Permissible values for {@code core.autocrlf}. */
- public static enum AutoCRLF {
+ public enum AutoCRLF {
/** Automatic CRLF-&gt;LF conversion is disabled. */
FALSE,
@@ -45,7 +45,7 @@ public class CoreConfig {
*
* @since 4.3
*/
- public static enum EOL {
+ public enum EOL {
/** Check in with LF, check out with CRLF. */
CRLF,
@@ -61,7 +61,7 @@ public class CoreConfig {
*
* @since 4.3
*/
- public static enum EolStreamType {
+ public enum EolStreamType {
/** Convert to CRLF without binary detection. */
TEXT_CRLF,
@@ -83,7 +83,7 @@ public class CoreConfig {
*
* @since 3.0
*/
- public static enum CheckStat {
+ public enum CheckStat {
/**
* Only check the size and whole second part of time stamp when
* comparing the stat info in the dircache with actual file stat info.
@@ -102,7 +102,7 @@ public class CoreConfig {
*
* @since 5.6
*/
- public static enum LogRefUpdates {
+ public enum LogRefUpdates {
/** Don't create ref logs; default for bare repositories. */
FALSE,
@@ -131,7 +131,7 @@ public class CoreConfig {
*
* @since 3.3
*/
- public static enum SymLinks {
+ public enum SymLinks {
/** Check out symbolic links as plain files . */
FALSE,
@@ -144,7 +144,7 @@ public class CoreConfig {
*
* @since 3.5
*/
- public static enum HideDotFiles {
+ public enum HideDotFiles {
/** Do not hide .files. */
FALSE,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitmoduleEntry.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitmoduleEntry.java
index d93a09623c..aa0a9dd663 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitmoduleEntry.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/GitmoduleEntry.java
@@ -9,8 +9,6 @@
*/
package org.eclipse.jgit.lib;
-import org.eclipse.jgit.lib.AnyObjectId;
-
/**
* A .gitmodules file found in the pack. Store the blob of the file itself (e.g.
* to access its contents) and the tree where it was found (e.g. to check if it
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
index 293b7237d9..28ea927b14 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/IndexDiff.java
@@ -75,7 +75,7 @@ public class IndexDiff {
* @see IndexDiff#getConflictingStageStates()
* @since 3.0
*/
- public static enum StageState {
+ public enum StageState {
/**
* Exists in base, but neither in ours nor in theirs.
*/
@@ -210,11 +210,11 @@ public class IndexDiff {
}
}
- private final static int TREE = 0;
+ private static final int TREE = 0;
- private final static int INDEX = 1;
+ private static final int INDEX = 1;
- private final static int WORKDIR = 2;
+ private static final int WORKDIR = 2;
private final Repository repository;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/InflaterCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/InflaterCache.java
index f242d31c83..239b4f822d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/InflaterCache.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/InflaterCache.java
@@ -40,7 +40,7 @@ public class InflaterCache {
return r != null ? r : new Inflater(false);
}
- private synchronized static Inflater getImpl() {
+ private static synchronized Inflater getImpl() {
if (openInflaterCount > 0) {
final Inflater r = inflaterCache[--openInflaterCount];
inflaterCache[openInflaterCount] = null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdOwnerMap.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdOwnerMap.java
index 1e93235dec..ad529559ad 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdOwnerMap.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectIdOwnerMap.java
@@ -322,7 +322,7 @@ public class ObjectIdOwnerMap<V extends ObjectIdOwnerMap.Entry>
}
/** Type of entry stored in the {@link ObjectIdOwnerMap}. */
- public static abstract class Entry extends ObjectId {
+ public abstract static class Entry extends ObjectId {
transient Entry next;
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
index 1c3c9180b3..000899d767 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
@@ -65,7 +65,7 @@ public abstract class ObjectInserter implements AutoCloseable {
}
/** Wraps a delegate ObjectInserter. */
- public static abstract class Filter extends ObjectInserter {
+ public abstract static class Filter extends ObjectInserter {
/** @return delegate ObjectInserter to handle all processing. */
protected abstract ObjectInserter delegate();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java
index ad5314fa3a..67b8a2c249 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java
@@ -300,7 +300,7 @@ public abstract class ObjectLoader {
*
* @since 4.10
*/
- public static abstract class Filter extends ObjectLoader {
+ public abstract static class Filter extends ObjectLoader {
/**
* @return delegate ObjectLoader to handle all processing.
* @since 4.10
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
index c0ac9e7890..6bb6ae590a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
@@ -462,7 +462,7 @@ public abstract class ObjectReader implements AutoCloseable {
*
* @since 4.4
*/
- public static abstract class Filter extends ObjectReader {
+ public abstract static class Filter extends ObjectReader {
/**
* @return delegate ObjectReader to handle all processing.
* @since 4.4
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RebaseTodoLine.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RebaseTodoLine.java
index 02022e9b0f..8b778497fc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RebaseTodoLine.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RebaseTodoLine.java
@@ -25,7 +25,7 @@ public class RebaseTodoLine {
* Describes rebase actions
*/
@SuppressWarnings("nls")
- public static enum Action {
+ public enum Action {
/** Use commit */
PICK("pick", "p"),
@@ -72,7 +72,7 @@ public class RebaseTodoLine {
* @param token
* @return the Action
*/
- static public Action parse(String token) {
+ public static Action parse(String token) {
for (Action action : Action.values()) {
if (action.token.equals(token)
|| action.shortToken.equals(token))
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefUpdate.java
index 40e0a32f8d..d1be63b966 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RefUpdate.java
@@ -33,7 +33,7 @@ public abstract class RefUpdate {
* unknown values are failures, and may generally treat them the same as
* {@link #REJECTED_OTHER_REASON}.
*/
- public static enum Result {
+ public enum Result {
/** The ref update/delete has not been attempted by the caller. */
NOT_ATTEMPTED,
@@ -794,7 +794,7 @@ public abstract class RefUpdate {
* Handle the abstraction of storing a ref update. This is because both
* updating and deleting of a ref have merge testing in common.
*/
- private static abstract class Store {
+ private abstract static class Store {
abstract Result execute(Result status) throws IOException;
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
index 4af25de17b..d36ccd5bea 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryCache.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
* Cache of active {@link org.eclipse.jgit.lib.Repository} instances.
*/
public class RepositoryCache {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(RepositoryCache.class);
private static final RepositoryCache cache = new RepositoryCache();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
index 39e7840133..27141c12c4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/MergeAlgorithm.java
@@ -50,7 +50,7 @@ public final class MergeAlgorithm {
// An special edit which acts as a sentinel value by marking the end the
// list of edits
- private final static Edit END_EDIT = new Edit(Integer.MAX_VALUE,
+ private static final Edit END_EDIT = new Edit(Integer.MAX_VALUE,
Integer.MAX_VALUE);
@SuppressWarnings("ReferenceEquality")
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/nls/NLS.java b/org.eclipse.jgit/src/org/eclipse/jgit/nls/NLS.java
index 2cb1a5301b..daa039d347 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/nls/NLS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/nls/NLS.java
@@ -100,8 +100,8 @@ public class NLS {
return b.get(type);
}
- final private Locale locale;
- final private ConcurrentHashMap<Class, TranslationBundle> map = new ConcurrentHashMap<>();
+ private final Locale locale;
+ private final ConcurrentHashMap<Class, TranslationBundle> map = new ConcurrentHashMap<>();
private NLS(Locale locale) {
this.locale = locale;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/patch/BinaryHunk.java b/org.eclipse.jgit/src/org/eclipse/jgit/patch/BinaryHunk.java
index 2c7d696308..20fcf8cf0a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/patch/BinaryHunk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/patch/BinaryHunk.java
@@ -25,7 +25,7 @@ public class BinaryHunk {
private static final byte[] DELTA = encodeASCII("delta "); //$NON-NLS-1$
/** Type of information stored in a binary hunk. */
- public static enum Type {
+ public enum Type {
/** The full content is stored, deflated. */
LITERAL_DEFLATED,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/patch/CombinedHunkHeader.java b/org.eclipse.jgit/src/org/eclipse/jgit/patch/CombinedHunkHeader.java
index edf278c94d..263b1b9ddc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/patch/CombinedHunkHeader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/patch/CombinedHunkHeader.java
@@ -25,7 +25,7 @@ import org.eclipse.jgit.util.MutableInteger;
* Hunk header for a hunk appearing in a "diff --cc" style patch.
*/
public class CombinedHunkHeader extends HunkHeader {
- private static abstract class CombinedOldImage extends OldImage {
+ private abstract static class CombinedOldImage extends OldImage {
int nContext;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/patch/FileHeader.java b/org.eclipse.jgit/src/org/eclipse/jgit/patch/FileHeader.java
index 617b667501..1e6fb780b2 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/patch/FileHeader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/patch/FileHeader.java
@@ -71,7 +71,7 @@ public class FileHeader extends DiffEntry {
static final byte[] NEW_NAME = encodeASCII("+++ "); //$NON-NLS-1$
/** Type of patch used by this file. */
- public static enum PatchType {
+ public enum PatchType {
/** A traditional unified diff style patch of a text file. */
UNIFIED,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/patch/FormatError.java b/org.eclipse.jgit/src/org/eclipse/jgit/patch/FormatError.java
index 69ed60ac04..5618a71782 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/patch/FormatError.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/patch/FormatError.java
@@ -21,7 +21,7 @@ import org.eclipse.jgit.util.RawParseUtils;
*/
public class FormatError {
/** Classification of an error. */
- public static enum Severity {
+ public enum Severity {
/** The error is unexpected, but can be worked around. */
WARNING,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java
index 92f08923ec..0b9b981088 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/file/FileBasedConfig.java
@@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory;
* The configuration file that is stored in the file of the file system.
*/
public class FileBasedConfig extends StoredConfig {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(FileBasedConfig.class);
private final File configFile;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
index 168dae5bce..eb1d2ac0a9 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/BasePackPushConnection.java
@@ -358,7 +358,7 @@ public abstract class BasePackPushConnection extends BasePackConnection implemen
refNameEnd = refLine.length();
} else if (refLine.startsWith("ng ")) { //$NON-NLS-1$
ok = false;
- refNameEnd = refLine.indexOf(" ", 3); //$NON-NLS-1$
+ refNameEnd = refLine.indexOf(' ', 3);
}
if (refNameEnd == -1)
throw new PackProtocolException(MessageFormat.format(JGitText.get().unexpectedReportLine2
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/GitProtocolConstants.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/GitProtocolConstants.java
index 54bdc3d70f..35e2978bc4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/GitProtocolConstants.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/GitProtocolConstants.java
@@ -247,7 +247,7 @@ public final class GitProtocolConstants {
*/
public static final String COMMAND_FETCH = "fetch"; //$NON-NLS-1$
- static enum MultiAck {
+ enum MultiAck {
OFF, CONTINUE, DETAILED;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
index 89981802c7..0801b8a86a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PackParser.java
@@ -70,7 +70,7 @@ public abstract class PackParser {
private static final int BUFFER_SIZE = 8192;
/** Location data is being obtained from. */
- public static enum Source {
+ public enum Source {
/** Data is read from the incoming stream. */
INPUT,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java
index c992bb1cb5..52a5576e43 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/PacketLineIn.java
@@ -62,7 +62,7 @@ public class PacketLineIn {
@Deprecated
public static final String DELIM = new StringBuilder(0).toString(); /* must not string pool */
- static enum AckNackResult {
+ enum AckNackResult {
/** NAK */
NAK,
/** ACK */
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java
index 6146eaac95..ab411600f1 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceiveCommand.java
@@ -39,7 +39,7 @@ import org.eclipse.jgit.revwalk.RevWalk;
*/
public class ReceiveCommand {
/** Type of operation requested. */
- public static enum Type {
+ public enum Type {
/** Create a new ref; the ref must not already exist. */
CREATE,
@@ -65,7 +65,7 @@ public class ReceiveCommand {
}
/** Result of the update command. */
- public static enum Result {
+ public enum Result {
/** The command has not yet been attempted by the server. */
NOT_ATTEMPTED,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
index e505e1706f..ec2b76938e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/ReceivePack.java
@@ -1937,7 +1937,7 @@ public class ReceivePack {
}
/** Interface for reporting status messages. */
- static abstract class Reporter {
+ abstract static class Reporter {
abstract void sendString(String s) throws IOException;
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteRefUpdate.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteRefUpdate.java
index f7d318c012..43eaac7927 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteRefUpdate.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/RemoteRefUpdate.java
@@ -39,7 +39,7 @@ public class RemoteRefUpdate {
/**
* Represent current status of a remote ref update.
*/
- public static enum Status {
+ public enum Status {
/**
* Push process hasn't yet attempted to update this ref. This is the
* default status, prior to push process execution.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportProtocol.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportProtocol.java
index 4767e1b0af..912a90a1bf 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportProtocol.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/TransportProtocol.java
@@ -57,7 +57,7 @@ import org.eclipse.jgit.lib.Repository;
*/
public abstract class TransportProtocol {
/** Fields within a {@link URIish} that a transport uses. */
- public static enum URIishField {
+ public enum URIishField {
/** the user field */
USER,
/** the pass (aka password) field */
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
index 8e8b781bb7..09ca7ca60f 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java
@@ -104,7 +104,7 @@ import org.eclipse.jgit.util.io.TimeoutOutputStream;
*/
public class UploadPack {
/** Policy the server uses to validate client requests */
- public static enum RequestPolicy {
+ public enum RequestPolicy {
/** Client may only ask for objects the server advertised a reference for. */
ADVERTISED,
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java
index df9f11ecf8..c8cdb5a549 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkEncryption.java
@@ -34,9 +34,9 @@ import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
import javax.crypto.spec.SecretKeySpec;
-import org.bouncycastle.util.encoders.Hex;
import org.eclipse.jgit.internal.JGitText;
import org.eclipse.jgit.util.Base64;
+import org.eclipse.jgit.util.Hex;
abstract class WalkEncryption {
static final WalkEncryption NONE = new NoEncryption();
@@ -294,7 +294,7 @@ abstract class WalkEncryption {
* Base implementation of JGit symmetric encryption. Supports V2 properties
* format.
*/
- static abstract class SymmetricEncryption extends WalkEncryption
+ abstract static class SymmetricEncryption extends WalkEncryption
implements Keys, Vals {
/** Encryption profile, root name of group of related properties. */
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java
index f4be9e6c39..60b92d7271 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/FileTreeIterator.java
@@ -242,7 +242,7 @@ public class FileTreeIterator extends WorkingTreeIterator {
/**
* a singleton instance of the default FileModeStrategy
*/
- public final static DefaultFileModeStrategy INSTANCE =
+ public static final DefaultFileModeStrategy INSTANCE =
new DefaultFileModeStrategy();
@Override
@@ -275,7 +275,7 @@ public class FileTreeIterator extends WorkingTreeIterator {
/**
* a singleton instance of the default FileModeStrategy
*/
- public final static NoGitlinksStrategy INSTANCE = new NoGitlinksStrategy();
+ public static final NoGitlinksStrategy INSTANCE = new NoGitlinksStrategy();
@Override
public FileMode getMode(File f, FS.Attributes attributes) {
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
index bc7c5024ba..1f614e31f6 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
@@ -78,7 +78,7 @@ public class TreeWalk implements AutoCloseable, AttributesProvider {
/**
* @since 4.2
*/
- public static enum OperationType {
+ public enum OperationType {
/**
* Represents a checkout operation (for example a checkout or reset
* operation).
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
index 2c3f3e2542..2d406bd5bd 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java
@@ -1147,7 +1147,7 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
*
* @since 5.0
*/
- public static abstract class Entry {
+ public abstract static class Entry {
byte[] encodedName;
int encodedNameLen;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/Base64.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/Base64.java
index 69f8547452..119c96e02e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/Base64.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/Base64.java
@@ -28,26 +28,26 @@ import org.eclipse.jgit.internal.JGitText;
*/
public class Base64 {
/** The equals sign (=) as a byte. */
- private final static byte EQUALS_SIGN = (byte) '=';
+ private static final byte EQUALS_SIGN = (byte) '=';
/** Indicates equals sign in encoding. */
- private final static byte EQUALS_SIGN_DEC = -1;
+ private static final byte EQUALS_SIGN_DEC = -1;
/** Indicates white space in encoding. */
- private final static byte WHITE_SPACE_DEC = -2;
+ private static final byte WHITE_SPACE_DEC = -2;
/** Indicates an invalid byte during decoding. */
- private final static byte INVALID_DEC = -3;
+ private static final byte INVALID_DEC = -3;
/** The 64 valid Base64 values. */
- private final static byte[] ENC;
+ private static final byte[] ENC;
/**
* Translates a Base64 value to either its 6-bit reconstruction value or a
* negative number indicating some other meaning. The table is only 7 bits
* wide, as the 8th bit is discarded during decoding.
*/
- private final static byte[] DEC;
+ private static final byte[] DEC;
static {
ENC = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ" // //$NON-NLS-1$
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java
index 59327f7984..12af374b2e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/ChangeIdUtil.java
@@ -148,7 +148,7 @@ public class ChangeIdUtil {
ret.append(CHANGE_ID);
ret.append(" I"); //$NON-NLS-1$
ret.append(ObjectId.toString(changeId));
- int indexOfNextLineBreak = message.indexOf("\n", //$NON-NLS-1$
+ int indexOfNextLineBreak = message.indexOf('\n',
indexOfChangeId);
if (indexOfNextLineBreak > 0)
ret.append(message.substring(indexOfNextLineBreak));
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
index 415631805d..f747d1a157 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java
@@ -184,7 +184,7 @@ public abstract class FS {
*
* @since 5.1.9
*/
- public final static class FileStoreAttributes {
+ public static final class FileStoreAttributes {
private static final Duration UNDEFINED_DURATION = Duration
.ofNanos(Long.MAX_VALUE);
@@ -204,9 +204,8 @@ public abstract class FS {
public static final FileStoreAttributes FALLBACK_FILESTORE_ATTRIBUTES = new FileStoreAttributes(
FALLBACK_TIMESTAMP_RESOLUTION);
- private static final String JAVA_VERSION_PREFIX = SystemReader
- .getInstance().getHostname() + '|'
- + System.getProperty("java.vendor") + '|' //$NON-NLS-1$
+ private static final String JAVA_VERSION_PREFIX = System
+ .getProperty("java.vendor") + '|' //$NON-NLS-1$
+ System.getProperty("java.version") + '|'; //$NON-NLS-1$
private static final Duration FALLBACK_MIN_RACY_INTERVAL = Duration
@@ -691,7 +690,7 @@ public abstract class FS {
/** The auto-detected implementation selected for this operating system and JRE. */
public static final FS DETECTED = detect();
- private volatile static FSFactory factory;
+ private static volatile FSFactory factory;
/**
* Auto-detect the appropriate file system abstraction.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
index df5784b478..a0822001ca 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_POSIX.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
* @since 3.0
*/
public class FS_POSIX extends FS {
- private final static Logger LOG = LoggerFactory.getLogger(FS_POSIX.class);
+ private static final Logger LOG = LoggerFactory.getLogger(FS_POSIX.class);
private static final int DEFAULT_UMASK = 0022;
private volatile int umask = -1;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
index c201586dcb..d44dc32d14 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
* @since 3.0
*/
public class FS_Win32 extends FS {
- private final static Logger LOG = LoggerFactory.getLogger(FS_Win32.class);
+ private static final Logger LOG = LoggerFactory.getLogger(FS_Win32.class);
/**
* Constructor
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
index 30e2c0c19f..dd39416bb0 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/FS_Win32_Cygwin.java
@@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory;
* @since 3.0
*/
public class FS_Win32_Cygwin extends FS_Win32 {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(FS_Win32_Cygwin.class);
private static String cygpath;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateFormatter.java
index 1c00925fc7..e6bf497ac4 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/GitDateFormatter.java
@@ -35,7 +35,7 @@ public class GitDateFormatter {
/**
* Git and JGit formats
*/
- static public enum Format {
+ public enum Format {
/**
* Git format: Time and original time zone
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java
new file mode 100644
index 0000000000..9359036524
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/Hex.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2020, Michael Dardis. and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.util;
+
+/**
+ * Encodes and decodes to and from hexadecimal notation.
+ *
+ * @since 5.7
+ */
+public final class Hex {
+
+ private static final char[] HEX = "0123456789abcdef".toCharArray(); //$NON-NLS-1$
+
+ /** Defeats instantiation. */
+ private Hex() {
+ // empty
+ }
+
+ /**
+ * Decode a hexadecimal string to a byte array.
+ *
+ * Note this method performs no validation on input content.
+ *
+ * @param s hexadecimal string
+ * @return decoded array
+ */
+ public static byte[] decode(String s) {
+ int len = s.length();
+ byte[] b = new byte[len / 2];
+
+ for (int i = 0; i < len; i += 2) {
+ b[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) | Character.digit(s.charAt(i + 1), 16));
+ }
+ return b;
+ }
+
+ /**
+ * Encode a byte array to a hexadecimal string.
+ *
+ * @param b byte array
+ * @return hexadecimal string
+ */
+ public static String toHexString(byte[] b) {
+ char[] c = new char[b.length * 2];
+
+ for (int i = 0; i < b.length; i++) {
+ int v = b[i] & 0xFF;
+
+ c[i * 2] = HEX[v >>> 4];
+ c[i * 2 + 1] = HEX[v & 0x0F];
+ }
+
+ return new String(c);
+ }
+}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java
index 83bf695f70..cd2a8e672d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/Monitoring.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
* @since 5.1.13
*/
public class Monitoring {
- private final static Logger LOG = LoggerFactory.getLogger(Monitoring.class);
+ private static final Logger LOG = LoggerFactory.getLogger(Monitoring.class);
/**
* Register a MBean with the platform MBean server
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/ProcessResult.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/ProcessResult.java
index 6594b3fdaf..d2b4a0d84a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/ProcessResult.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/ProcessResult.java
@@ -18,7 +18,7 @@ public class ProcessResult {
/**
* Status of a process' execution.
*/
- public static enum Status {
+ public enum Status {
/**
* The script was found and launched properly. It may still have exited
* with a non-zero {@link #exitCode}.
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/RelativeDateFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/RelativeDateFormatter.java
index bf70a14292..5611b1e78e 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/RelativeDateFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/RelativeDateFormatter.java
@@ -19,19 +19,19 @@ import org.eclipse.jgit.internal.JGitText;
* in the format defined by {@code git log --relative-date}.
*/
public class RelativeDateFormatter {
- final static long SECOND_IN_MILLIS = 1000;
+ static final long SECOND_IN_MILLIS = 1000;
- final static long MINUTE_IN_MILLIS = 60 * SECOND_IN_MILLIS;
+ static final long MINUTE_IN_MILLIS = 60 * SECOND_IN_MILLIS;
- final static long HOUR_IN_MILLIS = 60 * MINUTE_IN_MILLIS;
+ static final long HOUR_IN_MILLIS = 60 * MINUTE_IN_MILLIS;
- final static long DAY_IN_MILLIS = 24 * HOUR_IN_MILLIS;
+ static final long DAY_IN_MILLIS = 24 * HOUR_IN_MILLIS;
- final static long WEEK_IN_MILLIS = 7 * DAY_IN_MILLIS;
+ static final long WEEK_IN_MILLIS = 7 * DAY_IN_MILLIS;
- final static long MONTH_IN_MILLIS = 30 * DAY_IN_MILLIS;
+ static final long MONTH_IN_MILLIS = 30 * DAY_IN_MILLIS;
- final static long YEAR_IN_MILLIS = 365 * DAY_IN_MILLIS;
+ static final long YEAR_IN_MILLIS = 365 * DAY_IN_MILLIS;
/**
* Get age of given {@link java.util.Date} compared to now formatted in the
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
index ff7f54c110..bcb8380625 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/SystemReader.java
@@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory;
*/
public abstract class SystemReader {
- private final static Logger LOG = LoggerFactory
+ private static final Logger LOG = LoggerFactory
.getLogger(SystemReader.class);
private static final SystemReader DEFAULT;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/io/TeeOutputStream.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/TeeOutputStream.java
new file mode 100644
index 0000000000..e6fdd709b2
--- /dev/null
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/io/TeeOutputStream.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2020, Michael Dardis. and others
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Distribution License v. 1.0 which is available at
+ * https://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+package org.eclipse.jgit.util.io;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * An output stream that writes all data to two streams.
+ *
+ * @since 5.7
+ */
+public class TeeOutputStream extends OutputStream {
+
+ private final OutputStream stream1;
+ private final OutputStream stream2;
+
+ /**
+ * Initialize a tee output stream.
+ *
+ * @param stream1 first output stream
+ * @param stream2 second output stream
+ */
+ public TeeOutputStream(OutputStream stream1, OutputStream stream2) {
+ this.stream1 = stream1;
+ this.stream2 = stream2;
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void write(byte[] buf) throws IOException {
+ this.stream1.write(buf);
+ this.stream2.write(buf);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void write(byte[] buf, int off, int len) throws IOException {
+ this.stream1.write(buf, off, len);
+ this.stream2.write(buf, off, len);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void write(int b) throws IOException {
+ this.stream1.write(b);
+ this.stream2.write(b);
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void flush() throws IOException {
+ this.stream1.flush();
+ this.stream2.flush();
+ }
+
+ /** {@inheritDoc} */
+ @Override
+ public void close() throws IOException {
+ try {
+ this.stream1.close();
+ } finally {
+ this.stream2.close();
+ }
+ }
+}