This is an automated email from the ASF dual-hosted git repository.

kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new f7aa5488b8 only initializes vfs when deprecated prop is set (#6097)
f7aa5488b8 is described below

commit f7aa5488b81ae68c942de55b6e058c5ba48e2c64
Author: Keith Turner <[email protected]>
AuthorDate: Thu Jan 29 12:52:49 2026 -0800

    only initializes vfs when deprecated prop is set (#6097)
    
    When the property `general.vfs.classpaths` was not set VFS was still
    unnecessarily initialized.  Modified to only initialized VFS when the
    property is actually set.
    
    Tested locally by setting `general.vfs.classpaths=`,
    `general.dynamic.classpaths=`,
    `general.context.class.loader.factory=TestCL`. Where TestCL is a
    classloader that does nothing.  When all of these are set did not see
    VFS create anything in local filesystem. Had to set some props to empty
    string because mini accumulo would set them otherwise.  Also added some
    debug logging if VFS was initialized and did not see that.  Removed that
    logging from these changes.
---
 .../classloader/vfs/AccumuloVFSClassLoader.java    | 23 +++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git 
a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
 
b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index 8ad8e9b8ad..942fffcb2c 100644
--- 
a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ 
b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -186,10 +186,13 @@ public class AccumuloVFSClassLoader {
 
     ReloadingClassLoader wrapper = () -> parent;
 
-    if (dynamicCPath == null || dynamicCPath.equals("")) {
+    if (dynamicCPath == null || dynamicCPath.isBlank()) {
       return wrapper;
     }
 
+    log.warn("'{}' is deprecated but was set to '{}' ", 
DYNAMIC_CLASSPATH_PROPERTY_NAME,
+        dynamicCPath);
+
     // TODO monitor time for lib/ext was 1 sec... should this be configurable? 
- ACCUMULO-1301
     return new AccumuloReloadingVFSClassLoader(dynamicCPath, generateVfs(), 
wrapper, 1000, true);
   }
@@ -204,15 +207,25 @@ public class AccumuloVFSClassLoader {
       synchronized (lock) {
         if (loader == null) {
 
-          FileSystemManager vfs = generateVfs();
-
           // Set up the 2nd tier class loader
           if (parent == null) {
             parent = AccumuloClassLoader.getClassLoader();
           }
 
-          FileObject[] vfsCP = resolve(vfs, AccumuloClassLoader
-              .getAccumuloProperty(VFS_CLASSLOADER_SYSTEM_CLASSPATH_PROPERTY, 
""));
+          var sysClasspath = AccumuloClassLoader
+              .getAccumuloProperty(VFS_CLASSLOADER_SYSTEM_CLASSPATH_PROPERTY, 
"");
+
+          if (sysClasspath.isBlank()) {
+            localLoader = createDynamicClassloader(parent);
+            loader = localLoader;
+            return localLoader.getClassLoader();
+          }
+
+          log.warn("'{}' is deprecated but was set to '{}' ",
+              VFS_CLASSLOADER_SYSTEM_CLASSPATH_PROPERTY, sysClasspath);
+
+          FileSystemManager vfs = generateVfs();
+          FileObject[] vfsCP = resolve(vfs, sysClasspath);
 
           if (vfsCP.length == 0) {
             localLoader = createDynamicClassloader(parent);

Reply via email to