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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-vfs.git

commit bc711eb83e92994c5ebee81219ddee38120d2aac
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Mon Oct 2 15:54:19 2023 -0400

    Update call deprecated in Java 9
    
    DelegatingFileSystemOptionsBuilder.setConfigClass[es](FileSystemOptions,
    String, String, Class<?>) now throw the more general
    ReflectiveOperationException instead of 2 subclasses
---
 commons-vfs2/src/main/java/org/apache/commons/vfs2/VFS.java  |  2 +-
 .../apache/commons/vfs2/impl/StandardFileSystemManager.java  |  2 +-
 .../java/org/apache/commons/vfs2/util/CryptorFactory.java    |  2 +-
 .../vfs2/util/DelegatingFileSystemOptionsBuilder.java        | 12 +++++-------
 .../test/java/org/apache/commons/vfs2/AbstractTestSuite.java |  2 +-
 .../org/apache/commons/vfs2/impl/VfsClassLoaderTests.java    |  4 ++--
 src/changes/changes.xml                                      |  3 +++
 7 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/VFS.java 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/VFS.java
index bd93da16..36e4e044 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/VFS.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/VFS.java
@@ -63,7 +63,7 @@ public final class VFS {
         try {
             // Create instance
             final Class<FileSystemManager> clazz = (Class<FileSystemManager>) 
Class.forName(managerClassName);
-            final FileSystemManager manager = clazz.newInstance();
+            final FileSystemManager manager = 
clazz.getConstructor().newInstance();
             // Initialize
             if (manager instanceof AbstractFileSystem) {
                 ((AbstractFileSystem) manager).init();
diff --git 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
index 9c59ade7..3466e0f7 100644
--- 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
+++ 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
@@ -254,7 +254,7 @@ public class StandardFileSystemManager extends 
DefaultFileSystemManager {
      */
     private Object createInstance(final String className) throws 
FileSystemException {
         try {
-            return loadClass(className).newInstance();
+            return loadClass(className).getConstructor().newInstance();
         } catch (final Exception e) {
             throw new FileSystemException("vfs.impl/create-provider.error", 
className, e);
         }
diff --git 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/CryptorFactory.java 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/CryptorFactory.java
index 0d2bd94f..533cde0f 100644
--- 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/CryptorFactory.java
+++ 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/CryptorFactory.java
@@ -52,7 +52,7 @@ public final class CryptorFactory {
         if (cryptorClass != null) {
             try {
                 final Class<?> clazz = Class.forName(cryptorClass);
-                instance = (Cryptor) clazz.newInstance();
+                instance = (Cryptor) clazz.getConstructor().newInstance();
                 return instance;
             } catch (final Exception ex) {
                 throw new IllegalStateException("Unable to create Cryptor " + 
cryptorClass, ex);
diff --git 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
index fb742085..ba4d3b1b 100644
--- 
a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
+++ 
b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
@@ -283,11 +283,10 @@ public class DelegatingFileSystemOptionsBuilder {
      * @param name name
      * @param className className
      * @throws FileSystemException if an error occurs.
-     * @throws IllegalAccessException if a class cannot be accessed.
-     * @throws InstantiationException if a class cannot be instantiated.
+     * @throws ReflectiveOperationException if a class cannot be accessed or 
instantiated.
      */
     public void setConfigClass(final FileSystemOptions fso, final String 
scheme, final String name,
-            final Class<?> className) throws FileSystemException, 
IllegalAccessException, InstantiationException {
+            final Class<?> className) throws FileSystemException, 
ReflectiveOperationException {
         setConfigClasses(fso, scheme, name, new Class[] {className});
     }
 
@@ -302,14 +301,13 @@ public class DelegatingFileSystemOptionsBuilder {
      * @param name name
      * @param classNames classNames
      * @throws FileSystemException if an error occurs.
-     * @throws IllegalAccessException if a class cannot be accessed.
-     * @throws InstantiationException if a class cannot be instantiated.
+     * @throws ReflectiveOperationException if a class cannot be accessed or 
instantiated.
      */
     public void setConfigClasses(final FileSystemOptions fso, final String 
scheme, final String name,
-            final Class<?>[] classNames) throws FileSystemException, 
IllegalAccessException, InstantiationException {
+            final Class<?>[] classNames) throws FileSystemException, 
ReflectiveOperationException {
         final Object[] values = new Object[classNames.length];
         for (int iterClassNames = 0; iterClassNames < values.length; 
iterClassNames++) {
-            values[iterClassNames] = classNames[iterClassNames].newInstance();
+            values[iterClassNames] = 
classNames[iterClassNames].getConstructor().newInstance();
         }
 
         final Context ctx = new Context(fso, scheme, name, values);
diff --git 
a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java 
b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
index c068ba77..49a931ab 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/AbstractTestSuite.java
@@ -115,7 +115,7 @@ public abstract class AbstractTestSuite extends TestSetup {
             }
 
             // Create instance
-            final AbstractProviderTestCase testCase = 
(AbstractProviderTestCase) testClass.newInstance();
+            final AbstractProviderTestCase testCase = 
(AbstractProviderTestCase) testClass.getConstructor().newInstance();
             testCase.setMethod(method);
             testCase.setName(prefix + method.getName());
             testCase.addEmptyDir(this.addEmptyDir);
diff --git 
a/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/VfsClassLoaderTests.java
 
b/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/VfsClassLoaderTests.java
index cee9f8e9..57d413ca 100644
--- 
a/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/VfsClassLoaderTests.java
+++ 
b/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/VfsClassLoaderTests.java
@@ -185,7 +185,7 @@ public class VfsClassLoaderTests extends 
AbstractProviderTestCase {
         assertEquals("code", pack.getName());
         verifyPackage(pack, false);
 
-        final Object testObject = testClass.newInstance();
+        final Object testObject = testClass.getConstructor().newInstance();
         assertEquals("**PRIVATE**", testObject.toString());
     }
 
@@ -294,7 +294,7 @@ public class VfsClassLoaderTests extends 
AbstractProviderTestCase {
                 assertEquals("code", pack.getName());
                 verifyPackage(pack, false);
 
-                final Object testObject = testClass.newInstance();
+                final Object testObject = 
testClass.getConstructor().newInstance();
                 assertEquals("**PRIVATE**", testObject.toString());
             } catch (ReflectiveOperationException e) {
                 throw new IllegalStateException(e);
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index ae401edb..de4072a0 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -167,6 +167,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action type="fix" dev="ggregory" due-to="Gary Gregory">
         Reduce deprecated calls in org.apache.commons.vfs2.provider.http5.
       </action>
+      <action type="fix" dev="ggregory" due-to="Gary Gregory">
+        
DelegatingFileSystemOptionsBuilder.setConfigClass[es](FileSystemOptions, 
String, String, Class) now throw the more general ReflectiveOperationException 
instead of 2 subclasses.
+      </action>
       <!-- ADD -->
       <action type="add" dev="ggregory" due-to="Seth Falco">
         Add vscode files to gitignore #205.

Reply via email to