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);