You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2025/07/25 13:30:36 UTC
(jackrabbit) branch feature/remove-deprecated-class-newinstance created (now 2a179e0ae)
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a change to branch feature/remove-deprecated-class-newinstance
in repository https://gitbox.apache.org/repos/asf/jackrabbit.git
at 2a179e0ae JCR-5154 Remove deprecated Class.newInstance()
This branch includes the following new commits:
new 2a179e0ae JCR-5154 Remove deprecated Class.newInstance()
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(jackrabbit) 01/01: JCR-5154 Remove deprecated Class.newInstance()
Posted by kw...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/remove-deprecated-class-newinstance
in repository https://gitbox.apache.org/repos/asf/jackrabbit.git
commit 2a179e0ae23973f68c7df788bb97d247ca889e42
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Fri Jul 25 15:30:12 2025 +0200
JCR-5154 Remove deprecated Class.newInstance()
---
.../main/java/org/apache/jackrabbit/core/SearchManager.java | 2 +-
.../apache/jackrabbit/core/config/SimpleBeanFactory.java | 6 ++++--
.../apache/jackrabbit/core/query/lucene/SearchIndex.java | 12 ++++++------
.../core/security/principal/ProviderRegistryImpl.java | 13 ++++---------
.../core/query/lucene/directory/DirectoryManagerTest.java | 8 ++++----
.../apache/jackrabbit/core/util/db/ConnectionFactory.java | 10 ++++------
.../org/apache/jackrabbit/client/RepositoryFactoryImpl.java | 2 +-
.../server/remoting/davex/ProtectedRemoveManager.java | 9 +++------
.../org/apache/jackrabbit/webdav/simple/ResourceConfig.java | 2 +-
.../apache/jackrabbit/test/api/RepositoryFactoryTest.java | 2 +-
.../apache/jackrabbit/jcr2spi/Jcr2spiRepositoryFactory.java | 4 ++--
.../java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java | 2 +-
.../security/authorization/AccessControlProviderStub.java | 2 +-
.../java/org/apache/jackrabbit/vfs/ext/ds/VFSDataStore.java | 2 +-
.../org/apache/jackrabbit/vfs/ext/fs/VFSFileSystem.java | 2 +-
.../apache/jackrabbit/webdav/version/report/ReportType.java | 8 +++-----
16 files changed, 38 insertions(+), 48 deletions(-)
diff --git a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
index 05cd8fc40..f98a9e209 100644
--- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
+++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/SearchManager.java
@@ -431,7 +431,7 @@ public class SearchManager implements SynchronousEventListener {
protected AbstractQueryImpl createQueryInstance() throws RepositoryException {
try {
String queryImplClassName = handler.getQueryClass();
- Object obj = Class.forName(queryImplClassName).newInstance();
+ Object obj = Class.forName(queryImplClassName).getDeclaredConstructor().newInstance();
if (obj instanceof AbstractQueryImpl) {
return (AbstractQueryImpl) obj;
} else {
diff --git a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java
index d81230003..56dd2daa1 100644
--- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java
+++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/SimpleBeanFactory.java
@@ -17,6 +17,8 @@
package org.apache.jackrabbit.core.config;
+import java.lang.reflect.InvocationTargetException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,12 +41,12 @@ public class SimpleBeanFactory implements BeanFactory {
}
// Instantiate the object using the default constructor
- return objectClass.newInstance();
+ return objectClass.getDeclaredConstructor().newInstance();
} catch (ClassNotFoundException e) {
throw new ConfigurationException(
"Configured bean implementation class " + cname
+ " was not found.", e);
- } catch (InstantiationException e) {
+ } catch (InstantiationException|IllegalArgumentException|InvocationTargetException|NoSuchMethodException|SecurityException e) {
throw new ConfigurationException(
"Configured bean implementation class " + cname
+ " can not be instantiated.", e);
diff --git a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
index 8e4db22cc..0f79761fa 100644
--- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
+++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
@@ -933,7 +933,7 @@ public class SearchIndex extends AbstractQueryHandler {
throws IOException {
ExcerptProvider ep;
try {
- ep = (ExcerptProvider) excerptProviderClass.newInstance();
+ ep = (ExcerptProvider) excerptProviderClass.getDeclaredConstructor().newInstance();
} catch (Exception e) {
throw Util.createIOException(e);
}
@@ -1307,7 +1307,7 @@ public class SearchIndex extends AbstractQueryHandler {
SynonymProvider sp = null;
if (synonymProviderClass != null) {
try {
- sp = (SynonymProvider) synonymProviderClass.newInstance();
+ sp = (SynonymProvider) synonymProviderClass.getDeclaredConstructor().newInstance();
sp.initialize(createSynonymProviderConfigResource());
} catch (Exception e) {
log.warn("Exception initializing synonym provider: "
@@ -1331,7 +1331,7 @@ public class SearchIndex extends AbstractQueryHandler {
throw new IOException(directoryManagerClass +
" is not a DirectoryManager implementation");
}
- DirectoryManager df = (DirectoryManager) clazz.newInstance();
+ DirectoryManager df = (DirectoryManager) clazz.getDeclaredConstructor().newInstance();
df.init(this);
return df;
} catch (IOException e) {
@@ -1356,7 +1356,7 @@ public class SearchIndex extends AbstractQueryHandler {
throw new IOException(redoLogFactoryClass +
" is not a RedoLogFactory implementation");
}
- return (RedoLogFactory) clazz.newInstance();
+ return (RedoLogFactory) clazz.getDeclaredConstructor().newInstance();
} catch (Exception e) {
IOException ex = new IOException();
ex.initCause(e);
@@ -1420,7 +1420,7 @@ public class SearchIndex extends AbstractQueryHandler {
SpellChecker spCheck = null;
if (spellCheckerClass != null) {
try {
- spCheck = (SpellChecker) spellCheckerClass.newInstance();
+ spCheck = (SpellChecker) spellCheckerClass.getDeclaredConstructor().newInstance();
spCheck.init(this);
} catch (Exception e) {
log.warn("Exception initializing spell checker: "
@@ -2422,7 +2422,7 @@ public class SearchIndex extends AbstractQueryHandler {
public void setSimilarityClass(String className) {
try {
Class<?> similarityClass = Class.forName(className);
- similarity = (Similarity) similarityClass.newInstance();
+ similarity = (Similarity) similarityClass.getDeclaredConstructor().newInstance();
} catch (Exception e) {
log.warn("Invalid Similarity class: " + className, e);
}
diff --git a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/ProviderRegistryImpl.java b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/ProviderRegistryImpl.java
index 6a233db45..674a5e8c0 100644
--- a/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/ProviderRegistryImpl.java
+++ b/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/principal/ProviderRegistryImpl.java
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.core.security.principal;
+import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -128,17 +129,11 @@ public class ProviderRegistryImpl implements PrincipalProviderRegistry {
}
try {
- Class pc = Class.forName(className, true, BeanConfig.getDefaultClassLoader());
- PrincipalProvider pp = (PrincipalProvider) pc.newInstance();
+ Class<?> pc = Class.forName(className, true, BeanConfig.getDefaultClassLoader());
+ PrincipalProvider pp = (PrincipalProvider) pc.getDeclaredConstructor().newInstance();
pp.init(config);
return pp;
- } catch (ClassNotFoundException e) {
- throw new RepositoryException("Unable to create new principal provider.", e);
- } catch (IllegalAccessException e) {
- throw new RepositoryException("Unable to create new principal provider.", e);
- } catch (InstantiationException e) {
- throw new RepositoryException("Unable to create new principal provider.", e);
- } catch (ClassCastException e) {
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
throw new RepositoryException("Unable to create new principal provider.", e);
}
}
diff --git a/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/directory/DirectoryManagerTest.java b/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/directory/DirectoryManagerTest.java
index 5651aaef3..1b80f02c2 100644
--- a/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/directory/DirectoryManagerTest.java
+++ b/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/query/lucene/directory/DirectoryManagerTest.java
@@ -32,7 +32,7 @@ import junit.framework.TestCase;
*/
public class DirectoryManagerTest extends TestCase {
- private static final Collection IMPLEMENTATIONS = Arrays.asList(
+ private static final Collection<Class<?>> IMPLEMENTATIONS = Arrays.asList(
new Class[]{FSDirectoryManager.class, RAMDirectoryManager.class});
private static final SearchIndex INDEX = new SearchIndex();
@@ -91,9 +91,9 @@ public class DirectoryManagerTest extends TestCase {
}
private void execute(Callable callable) throws Exception {
- for (Iterator it = IMPLEMENTATIONS.iterator(); it.hasNext(); ) {
- Class clazz = (Class) it.next();
- DirectoryManager dirMgr = (DirectoryManager) clazz.newInstance();
+ for (Iterator<Class<?>> it = IMPLEMENTATIONS.iterator(); it.hasNext(); ) {
+ Class<?> clazz = it.next();
+ DirectoryManager dirMgr = (DirectoryManager) clazz.getDeclaredConstructor().newInstance();
dirMgr.init(INDEX);
try {
callable.call(dirMgr);
diff --git a/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionFactory.java b/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionFactory.java
index b5241e897..65f63eb56 100644
--- a/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionFactory.java
+++ b/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/util/db/ConnectionFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.core.util.db;
+import java.lang.reflect.InvocationTargetException;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
@@ -286,7 +287,7 @@ public final class ConnectionFactory {
Class<Context> contextClass, String name)
throws RepositoryException {
try {
- Object object = contextClass.newInstance().lookup(name);
+ Object object = contextClass.getDeclaredConstructor().newInstance().lookup(name);
if (object instanceof DataSource) {
return (DataSource) object;
} else {
@@ -294,10 +295,7 @@ public final class ConnectionFactory {
"Object " + object + " with JNDI name "
+ name + " is not a JDBC DataSource");
}
- } catch (InstantiationException e) {
- throw new RepositoryException(
- "Invalid JNDI context: " + contextClass.getName(), e);
- } catch (IllegalAccessException e) {
+ } catch (InstantiationException|IllegalAccessException|IllegalArgumentException|InvocationTargetException|NoSuchMethodException|SecurityException e) {
throw new RepositoryException(
"Invalid JNDI context: " + contextClass.getName(), e);
} catch (NamingException e) {
@@ -328,7 +326,7 @@ public final class ConnectionFactory {
// The JDBC specification recommends the Class.forName
// method without the .newInstance() method call,
// but it is required after a Derby 'shutdown'
- instance = (Driver) driverClass.newInstance();
+ instance = (Driver) driverClass.getDeclaredConstructor().newInstance();
} catch (Throwable e) {
// Ignore exceptions as there's no requirement for
// a JDBC driver class to have a public default constructor
diff --git a/jackrabbit-jcr-client/src/main/java/org/apache/jackrabbit/client/RepositoryFactoryImpl.java b/jackrabbit-jcr-client/src/main/java/org/apache/jackrabbit/client/RepositoryFactoryImpl.java
index a8923f4ad..924689a07 100644
--- a/jackrabbit-jcr-client/src/main/java/org/apache/jackrabbit/client/RepositoryFactoryImpl.java
+++ b/jackrabbit-jcr-client/src/main/java/org/apache/jackrabbit/client/RepositoryFactoryImpl.java
@@ -65,7 +65,7 @@ public class RepositoryFactoryImpl implements RepositoryFactory {
Class<?> repositoryFactoryClass = Class.forName(repositoryFactoryName, true,
Thread.currentThread().getContextClassLoader());
- repositoryFactory = repositoryFactoryClass.newInstance();
+ repositoryFactory = repositoryFactoryClass.getDeclaredConstructor().newInstance();
}
catch (Exception e) {
throw new RepositoryException(e);
diff --git a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/remoting/davex/ProtectedRemoveManager.java b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/remoting/davex/ProtectedRemoveManager.java
index f6e3f785a..3e85135c6 100644
--- a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/remoting/davex/ProtectedRemoveManager.java
+++ b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/remoting/davex/ProtectedRemoveManager.java
@@ -21,6 +21,7 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
@@ -91,14 +92,10 @@ class ProtectedRemoveManager {
if (!className.isEmpty()) {
Class<?> irHandlerClass = Class.forName(className);
if (ProtectedItemRemoveHandler.class.isAssignableFrom(irHandlerClass)) {
- irHandler = (ProtectedItemRemoveHandler) irHandlerClass.newInstance();
+ irHandler = (ProtectedItemRemoveHandler) irHandlerClass.getDeclaredConstructor().newInstance();
}
}
- } catch (ClassNotFoundException e) {
- log.error(e.getMessage(), e);
- } catch (InstantiationException e) {
- log.error(e.getMessage(), e);
- } catch (IllegalAccessException e) {
+ } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
log.error(e.getMessage(), e);
}
return irHandler;
diff --git a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/ResourceConfig.java b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/ResourceConfig.java
index 1292b129c..defe7a522 100644
--- a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/ResourceConfig.java
+++ b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/webdav/simple/ResourceConfig.java
@@ -351,7 +351,7 @@ public class ResourceConfig {
String className = DomUtil.getAttribute(classElem, "name", null);
if (className != null) {
Class<?> c = Class.forName(className);
- instance = c.newInstance();
+ instance = c.getDeclaredConstructor().newInstance();
} else {
log.error("Invalid configuration: missing 'class' element");
}
diff --git a/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/RepositoryFactoryTest.java b/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/RepositoryFactoryTest.java
index 2f39caedc..16a7c1f55 100644
--- a/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/RepositoryFactoryTest.java
+++ b/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/api/RepositoryFactoryTest.java
@@ -47,7 +47,7 @@ public class RepositoryFactoryTest extends AbstractJCRTest {
fail("Property '" + RepositoryStub.REPOSITORY_FACTORY + "' is not defined.");
} else {
try {
- return (RepositoryFactory) Class.forName(className).newInstance();
+ return (RepositoryFactory) Class.forName(className).getDeclaredConstructor().newInstance();
} catch (Exception e) {
fail(e.toString());
}
diff --git a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/Jcr2spiRepositoryFactory.java b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/Jcr2spiRepositoryFactory.java
index b4e00ee38..7200b74fc 100644
--- a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/Jcr2spiRepositoryFactory.java
+++ b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/Jcr2spiRepositoryFactory.java
@@ -191,7 +191,7 @@ public class Jcr2spiRepositoryFactory implements RepositoryFactory {
serviceFactoryClass = Class.forName(serviceFactoryName);
}
- Object serviceFactory = serviceFactoryClass.newInstance();
+ Object serviceFactory = serviceFactoryClass.getDeclaredConstructor().newInstance();
if (serviceFactory instanceof RepositoryServiceFactory) {
log.debug("Found RepositoryServiceFactory {}", serviceFactory);
@@ -248,7 +248,7 @@ public class Jcr2spiRepositoryFactory implements RepositoryFactory {
public <T> T getConfiguration(String name, T defaultValue) {
if (parameters.containsKey(name)) {
Object value = parameters.get(name);
- Class clazz = (defaultValue == null)
+ Class<?> clazz = (defaultValue == null)
? value.getClass()
: defaultValue.getClass();
if (clazz.isAssignableFrom(value.getClass())) {
diff --git a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
index 712cb5cbe..5dd6d9ce7 100644
--- a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
+++ b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/RepositoryImpl.java
@@ -243,7 +243,7 @@ public class RepositoryImpl extends AbstractRepository implements Referenceable
}
String repositoryConfigClassName = (String)((StringRefAddr)rclas).getContent();
- Object rof = Class.forName(configFactoryClassName).newInstance();
+ Object rof = Class.forName(configFactoryClassName).getDeclaredConstructor().newInstance();
if (! (rof instanceof ObjectFactory)) {
throw new Exception(rof + " must implement ObjectFactory");
diff --git a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/security/authorization/AccessControlProviderStub.java b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/security/authorization/AccessControlProviderStub.java
index 23ace3a6c..fcb2c2b8c 100644
--- a/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/security/authorization/AccessControlProviderStub.java
+++ b/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/security/authorization/AccessControlProviderStub.java
@@ -69,7 +69,7 @@ public class AccessControlProviderStub {
try {
Class<?> acProviderClass = Class.forName(className);
if (AccessControlProvider.class.isAssignableFrom(acProviderClass)) {
- AccessControlProvider acProvider = (AccessControlProvider) acProviderClass.newInstance();
+ AccessControlProvider acProvider = (AccessControlProvider) acProviderClass.getDeclaredConstructor().newInstance();
acProvider.init(config);
return acProvider;
} else {
diff --git a/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/ds/VFSDataStore.java b/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/ds/VFSDataStore.java
index 5e03d66ad..8dd9cfe96 100644
--- a/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/ds/VFSDataStore.java
+++ b/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/ds/VFSDataStore.java
@@ -300,7 +300,7 @@ public class VFSDataStore extends CachingDataStore {
fileSystemManager = new StandardFileSystemManager();
} else {
final Class<?> mgrClass = Class.forName(getFileSystemManagerClassName());
- fileSystemManager = (FileSystemManager) mgrClass.newInstance();
+ fileSystemManager = (FileSystemManager) mgrClass.getDeclaredConstructor().newInstance();
}
if (fileSystemManager instanceof DefaultFileSystemManager) {
diff --git a/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/fs/VFSFileSystem.java b/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/fs/VFSFileSystem.java
index 8eb1ea195..21f08a4b6 100755
--- a/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/fs/VFSFileSystem.java
+++ b/jackrabbit-vfs-ext/src/main/java/org/apache/jackrabbit/vfs/ext/fs/VFSFileSystem.java
@@ -528,7 +528,7 @@ public class VFSFileSystem implements FileSystem {
fileSystemManager = new StandardFileSystemManager();
} else {
final Class<?> mgrClass = Class.forName(getFileSystemManagerClassName());
- fileSystemManager = (FileSystemManager) mgrClass.newInstance();
+ fileSystemManager = (FileSystemManager) mgrClass.getDeclaredConstructor().newInstance();
}
if (fileSystemManager instanceof DefaultFileSystemManager) {
diff --git a/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/report/ReportType.java b/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/report/ReportType.java
index 36bbe30b6..8366814ba 100644
--- a/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/report/ReportType.java
+++ b/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/version/report/ReportType.java
@@ -28,6 +28,7 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
/**
@@ -68,13 +69,10 @@ public class ReportType implements DeltaVConstants, XmlSerializable {
*/
public Report createReport(DeltaVResource resource, ReportInfo info) throws DavException {
try {
- Report report = reportClass.newInstance();
+ Report report = reportClass.getDeclaredConstructor().newInstance();
report.init(resource, info);
return report;
- } catch (IllegalAccessException e) {
- // should never occur
- throw new DavException(DavServletResponse.SC_INTERNAL_SERVER_ERROR, "Failed to create new report (" + reportClass.getName() + ") from class: " + e.getMessage());
- } catch (InstantiationException e) {
+ } catch (IllegalAccessException|InstantiationException|IllegalArgumentException|InvocationTargetException|NoSuchMethodException|SecurityException e) {
// should never occur
throw new DavException(DavServletResponse.SC_INTERNAL_SERVER_ERROR, "Failed to create new report (" + reportClass.getName() + ") from class: " + e.getMessage());
}