]> source.dussan.org Git - jgit.git/commitdiff
Expose FileStoreAttributes.setBackground() 53/158353/3
authorAlex Blewitt <alex.blewitt@gmail.com>
Tue, 25 Feb 2020 21:14:59 +0000 (21:14 +0000)
committerMatthias Sohn <matthias.sohn@sap.com>
Wed, 4 Mar 2020 14:59:53 +0000 (15:59 +0100)
The FS.setAsyncFileStoreAttributes() static method calls
FileStoreAttributes.setBackground() as its implementation, but there are
other public attributes on this inner class already and there isn't a
real reason why this needs to be private.

By making it public we allow callers to be able to invoke it directly.
Although it doesn't appear that it would make a difference, by calling a
static method on the FS class, all static fields and the transitive
closure of class dependencies must be loaded and initialised, which can
be non-trivial.

Callers referring to FS.setAsyncFileStoreAttributes() may be replaced
with FS.FileStoreAttributes.setBackground() with no change of behaviour
other than improved performance due to less class loading required.

Bug: 560527
Change-Id: I9538acc90da8d18f53fd60d74eb54496857f93a5
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

index 265950261aba0e7f8a3a227d5c83c2ac807bbff9..2446de4c1e79b08c54e5cce3056f39a6339db0d5 100644 (file)
@@ -242,7 +242,16 @@ public abstract class FS {
 
                private static Map<FileStore, Lock> locks = new ConcurrentHashMap<>();
 
-               private static void setBackground(boolean async) {
+               /**
+                * Whether FileStore attributes should be determined asynchronously
+                *
+                * @param async
+                *            whether FileStore attributes should be determined
+                *            asynchronously. If false access to cached attributes may block
+                *            for some seconds for the first call per FileStore
+                * @since 5.6.2
+                */
+               public static void setBackground(boolean async) {
                        background.set(async);
                }
 
@@ -709,7 +718,9 @@ public abstract class FS {
         *            asynchronously. If false access to cached attributes may block
         *            for some seconds for the first call per FileStore
         * @since 5.1.9
+        * @deprecated Use {@link FileStoreAttributes#setBackground} instead
         */
+       @Deprecated
        public static void setAsyncFileStoreAttributes(boolean asynch) {
                FileStoreAttributes.setBackground(asynch);
        }