You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2023/09/13 16:46:27 UTC

[tika] branch TIKA-4128 created (now 8d6a46485)

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

tallison pushed a change to branch TIKA-4128
in repository https://gitbox.apache.org/repos/asf/tika.git


      at 8d6a46485 TIKA-4128 -- bump to Java 11

This branch includes the following new commits:

     new 8d6a46485 TIKA-4128 -- bump to Java 11

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.



[tika] 01/01: TIKA-4128 -- bump to Java 11

Posted by ta...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch TIKA-4128
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 8d6a464851bff6e60ada2662bb05486396609179
Author: tallison <ta...@apache.org>
AuthorDate: Wed Sep 13 12:46:12 2023 -0400

    TIKA-4128 -- bump to Java 11
---
 .github/workflows/main-jdk8-build.yml              | 41 ----------------------
 CHANGES.txt                                        |  4 ++-
 .../java/org/apache/tika/util/ClassLoaderUtil.java |  7 ++--
 .../java/org/apache/tika/config/ConfigBase.java    |  5 +--
 .../main/java/org/apache/tika/config/Param.java    |  5 +--
 .../java/org/apache/tika/config/TikaConfig.java    |  4 +--
 .../org/apache/tika/fork/ClassLoaderProxy.java     |  2 +-
 .../org/apache/tika/utils/ServiceLoaderUtils.java  | 10 +++---
 .../java/org/apache/tika/utils/XMLReaderUtils.java |  9 +++--
 .../org/apache/tika/parser/mock/MockParser.java    |  2 +-
 .../tika/eval/core/tokens/TokenCounterTest.java    |  2 +-
 tika-parent/pom.xml                                | 23 ++----------
 .../apache/tika/parser/ner/NamedEntityParser.java  |  3 +-
 .../microsoft/onenote/FndStructureConstants.java   |  2 +-
 .../tika/parser/microsoft/onenote/OneNotePtr.java  |  4 +--
 .../onenote/fsshttpb/streamobj/DataElement.java    |  6 ++--
 .../onenote/fsshttpb/streamobj/StreamObject.java   |  7 ++--
 .../fsshttpb/streamobj/basic/BasicObject.java      |  6 ++--
 .../onenote/fsshttpb/streamobj/basic/ExGuid.java   |  2 +-
 .../org/apache/tika/parser/csv/CSVSnifferTest.java |  8 ++---
 .../org/apache/tika/xmp/convert/TikaToXMP.java     |  2 +-
 .../java/org/apache/tika/xmp/XMPMetadataTest.java  |  2 +-
 22 files changed, 59 insertions(+), 97 deletions(-)

diff --git a/.github/workflows/main-jdk8-build.yml b/.github/workflows/main-jdk8-build.yml
deleted file mode 100644
index 3e00d49a3..000000000
--- a/.github/workflows/main-jdk8-build.yml
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-name: main pr build
-
-on:
-  push:
-    branches: [ main ]
-  pull_request:
-    branches: [ main ]
-        
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        java: [ '1.8' ]
-
-    steps:
-      - uses: actions/checkout@v2
-      - name: Set up JDK ${{ matrix.java }}
-        uses: actions/setup-java@v1
-        with:
-          java-version: ${{ matrix.java }}
-      - name: Build with Maven
-        run: mvn clean test install javadoc:aggregate
diff --git a/CHANGES.txt b/CHANGES.txt
index 9d6a3b3ad..30c137609 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
-Release 2.9.1 - ??
+Release 3.0.0-BETA - ??
+
+   * Require Java 11 (TIKA-4128).
 
    * Fix bug in DateUtils that stripped timezone information from
      incoming Calendar objects (TIKA-4126).
diff --git a/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java b/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java
index c0ad512f2..bbefed089 100644
--- a/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java
+++ b/tika-batch/src/main/java/org/apache/tika/util/ClassLoaderUtil.java
@@ -16,6 +16,8 @@
  */
 package org.apache.tika.util;
 
+import java.lang.reflect.InvocationTargetException;
+
 public class ClassLoaderUtil {
 
     @SuppressWarnings("unchecked")
@@ -26,11 +28,12 @@ public class ClassLoaderUtil {
         try {
             clazz = loader.loadClass(className);
             if (iface.isAssignableFrom(clazz)) {
-                return (T) clazz.newInstance();
+                return (T) clazz.getDeclaredConstructor().newInstance();
             }
             throw new IllegalArgumentException(
                     iface + " is not assignable from " + className);
-        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
+                 NoSuchMethodException | InvocationTargetException e) {
             throw new RuntimeException(e);
         }
 
diff --git a/tika-core/src/main/java/org/apache/tika/config/ConfigBase.java b/tika-core/src/main/java/org/apache/tika/config/ConfigBase.java
index 41833ed9d..405294fae 100644
--- a/tika-core/src/main/java/org/apache/tika/config/ConfigBase.java
+++ b/tika-core/src/main/java/org/apache/tika/config/ConfigBase.java
@@ -202,8 +202,9 @@ public abstract class ConfigBase {
                         elementName + " with class name " + className + " must be of type '" +
                                 itemClass.getName() + "'");
             }
-            return (T) clazz.newInstance();
-        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+            return (T) clazz.getDeclaredConstructor().newInstance();
+        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException |
+                 NoSuchMethodException | InvocationTargetException e) {
             throw new TikaConfigException("problem loading " + elementName +
                     " with class " + itemClass.getName(), e);
         }
diff --git a/tika-core/src/main/java/org/apache/tika/config/Param.java b/tika-core/src/main/java/org/apache/tika/config/Param.java
index 7de36acbc..25d367fe1 100644
--- a/tika-core/src/main/java/org/apache/tika/config/Param.java
+++ b/tika-core/src/main/java/org/apache/tika/config/Param.java
@@ -193,8 +193,9 @@ public class Param<T> implements Serializable {
     private static <T> void loadObject(Param<T> ret, Node root, Class clazz) throws TikaConfigException {
 
         try {
-            ret.actualValue = (T)clazz.newInstance();
-        } catch (InstantiationException | IllegalAccessException e) {
+            ret.actualValue = (T)clazz.getDeclaredConstructor().newInstance();
+        } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                 InvocationTargetException e) {
             throw new TikaConfigException("can't build class: " + clazz, e);
         }
 
diff --git a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
index cb23cec21..ff62af95b 100644
--- a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
+++ b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
@@ -800,7 +800,7 @@ public class TikaConfig {
         T newInstance(Class<? extends T> loadedClass)
                 throws IllegalAccessException, InstantiationException, NoSuchMethodException,
                 InvocationTargetException {
-            return loadedClass.newInstance();
+            return loadedClass.getDeclaredConstructor().newInstance();
         }
 
         /**
@@ -987,7 +987,7 @@ public class TikaConfig {
                 Constructor ctor = loadedClass.getConstructor(EncodingDetector.class);
                 parser = (Parser) ctor.newInstance(encodingDetector);
             } else {
-                parser = loadedClass.newInstance();
+                parser = loadedClass.getDeclaredConstructor().newInstance();
             }
 
             if (parser instanceof RenderingParser) {
diff --git a/tika-core/src/main/java/org/apache/tika/fork/ClassLoaderProxy.java b/tika-core/src/main/java/org/apache/tika/fork/ClassLoaderProxy.java
index 968ad8096..51b1beeff 100644
--- a/tika-core/src/main/java/org/apache/tika/fork/ClassLoaderProxy.java
+++ b/tika-core/src/main/java/org/apache/tika/fork/ClassLoaderProxy.java
@@ -125,7 +125,7 @@ class ClassLoaderProxy extends ClassLoader implements ForkProxy {
 
     private void definePackageIfNecessary(String className, Class<?> clazz) {
         String packageName = toPackageName(className);
-        if (packageName != null && getPackage(packageName) == null) {
+        if (packageName != null && getDefinedPackage(packageName) == null) {
             definePackage(packageName, null, null, null, null, null, null, null);
         }
     }
diff --git a/tika-core/src/main/java/org/apache/tika/utils/ServiceLoaderUtils.java b/tika-core/src/main/java/org/apache/tika/utils/ServiceLoaderUtils.java
index 9e922c71b..1e61c97ae 100644
--- a/tika-core/src/main/java/org/apache/tika/utils/ServiceLoaderUtils.java
+++ b/tika-core/src/main/java/org/apache/tika/utils/ServiceLoaderUtils.java
@@ -55,8 +55,9 @@ public class ServiceLoaderUtils {
      */
     public static <T> T newInstance(String className, ClassLoader loader) {
         try {
-            return ((Class<T>) Class.forName(className, true, loader)).newInstance();
-        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+            return ((Class<T>) Class.forName(className, true, loader)).getDeclaredConstructor().newInstance();
+        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
+                 NoSuchMethodException | InvocationTargetException e) {
             throw new RuntimeException(e);
         }
     }
@@ -77,11 +78,12 @@ public class ServiceLoaderUtils {
                 Constructor<T> constructor = klass.getDeclaredConstructor(ServiceLoader.class);
                 return constructor.newInstance(loader);
             } catch (NoSuchMethodException e) {
-                return (T)klass.newInstance();
+                return (T)klass.getDeclaredConstructor().newInstance();
             } catch (InvocationTargetException e) {
                 throw new RuntimeException(e);
             }
-        } catch (InstantiationException | IllegalAccessException e) {
+        } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                 InvocationTargetException e) {
             throw new RuntimeException(e);
         }
     }
diff --git a/tika-core/src/main/java/org/apache/tika/utils/XMLReaderUtils.java b/tika-core/src/main/java/org/apache/tika/utils/XMLReaderUtils.java
index 9db9d291a..53ebc154e 100644
--- a/tika-core/src/main/java/org/apache/tika/utils/XMLReaderUtils.java
+++ b/tika-core/src/main/java/org/apache/tika/utils/XMLReaderUtils.java
@@ -707,7 +707,8 @@ public class XMLReaderUtils implements Serializable {
                 //"com.sun.org.apache.xerces.internal.util.SecurityManager",
                 XERCES_SECURITY_MANAGER}) {
             try {
-                Object mgr = Class.forName(securityManagerClassName).newInstance();
+                Object mgr =
+                        Class.forName(securityManagerClassName).getDeclaredConstructor().newInstance();
                 Method setLimit = mgr.getClass().getMethod("setEntityExpansionLimit",
                         Integer.TYPE);
                 setLimit.invoke(mgr, MAX_ENTITY_EXPANSIONS);
@@ -750,7 +751,8 @@ public class XMLReaderUtils implements Serializable {
                 //"com.sun.org.apache.xerces.internal.util.SecurityManager",
                 XERCES_SECURITY_MANAGER}) {
             try {
-                Object mgr = Class.forName(securityManagerClassName).newInstance();
+                Object mgr =
+                        Class.forName(securityManagerClassName).getDeclaredConstructor().newInstance();
                 Method setLimit = mgr.getClass().getMethod("setEntityExpansionLimit", Integer.TYPE);
                 setLimit.invoke(mgr, MAX_ENTITY_EXPANSIONS);
 
@@ -902,7 +904,8 @@ public class XMLReaderUtils implements Serializable {
         }
         boolean hasSecurityManager = false;
         try {
-            Object mgr = Class.forName(XERCES_SECURITY_MANAGER).newInstance();
+            Object mgr =
+                    Class.forName(XERCES_SECURITY_MANAGER).getDeclaredConstructor().newInstance();
             Method setLimit = mgr.getClass().getMethod("setEntityExpansionLimit", Integer.TYPE);
             setLimit.invoke(mgr, MAX_ENTITY_EXPANSIONS);
 
diff --git a/tika-core/src/test/java/org/apache/tika/parser/mock/MockParser.java b/tika-core/src/test/java/org/apache/tika/parser/mock/MockParser.java
index f57884044..8a2166f65 100644
--- a/tika-core/src/test/java/org/apache/tika/parser/mock/MockParser.java
+++ b/tika-core/src/test/java/org/apache/tika/parser/mock/MockParser.java
@@ -417,7 +417,7 @@ public class MockParser extends AbstractParser {
         Throwable t = null;
         if (msg == null || msg.equals("")) {
             try {
-                t = (Throwable) Class.forName(className).newInstance();
+                t = (Throwable) Class.forName(className).getDeclaredConstructor().newInstance();
             } catch (Exception e) {
                 throw new RuntimeException("couldn't create throwable class:" + className, e);
             }
diff --git a/tika-eval/tika-eval-core/src/test/java/org/apache/tika/eval/core/tokens/TokenCounterTest.java b/tika-eval/tika-eval-core/src/test/java/org/apache/tika/eval/core/tokens/TokenCounterTest.java
index e96557150..dc687a2b2 100644
--- a/tika-eval/tika-eval-core/src/test/java/org/apache/tika/eval/core/tokens/TokenCounterTest.java
+++ b/tika-eval/tika-eval-core/src/test/java/org/apache/tika/eval/core/tokens/TokenCounterTest.java
@@ -110,7 +110,7 @@ public class TokenCounterTest {
         ts.end();
         ts.close();
         assertEquals(7, tokens.size());
-        assertEquals(new Integer(1), tokens.get("林斯"));
+        assertEquals(Integer.valueOf(1), tokens.get("林斯"));
     }
 
     private String generateString() {
diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml
index ca414f0ba..6547b90a8 100644
--- a/tika-parent/pom.xml
+++ b/tika-parent/pom.xml
@@ -281,8 +281,8 @@
   </contributors>
 
   <properties>
-    <maven.compiler.source>1.8</maven.compiler.source>
-    <maven.compiler.target>1.8</maven.compiler.target>
+    <maven.compiler.source>11</maven.compiler.source>
+    <maven.compiler.target>11</maven.compiler.target>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
     <project.build.outputTimestamp>1692799752</project.build.outputTimestamp>
@@ -966,8 +966,7 @@
         <artifactId>maven-compiler-plugin</artifactId>
         <version>${maven.compiler.plugin.version}</version>
         <configuration>
-          <source>${maven.compiler.source}</source>
-          <target>${maven.compiler.target}</target>
+          <release>11</release>
         </configuration>
       </plugin>
       <!--
@@ -1273,22 +1272,6 @@
         </plugins>
       </build>
     </profile>
-    <profile>
-      <id>jdk9</id>
-      <activation>
-        <jdk>[1.9,)</jdk>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-compiler-plugin</artifactId>
-            <configuration>
-              <release>8</release>
-            </configuration>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
     <profile>
       <id>ossindex-fail</id>
       <!-- actually fail the build on vulnerabilities -->
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
index 806f7f61f..d23d78ead 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
@@ -88,7 +88,8 @@ public class NamedEntityParser extends AbstractParser {
             className = className.trim();
             LOG.info("going to load, instantiate and bind the instance of {}", className);
             try {
-                NERecogniser recogniser = (NERecogniser) Class.forName(className).newInstance();
+                NERecogniser recogniser =
+                        (NERecogniser) Class.forName(className).getDeclaredConstructor().newInstance();
                 LOG.info("{} is available ? {}", className, recogniser.isAvailable());
                 if (recogniser.isAvailable()) {
                     nerChain.add(recogniser);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FndStructureConstants.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FndStructureConstants.java
index 74fb6cbc8..90f5463ce 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FndStructureConstants.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/FndStructureConstants.java
@@ -60,7 +60,7 @@ final class FndStructureConstants {
     }
 
     static String nameOf(long type) {
-        switch (new Long(type).intValue()) {
+        switch (Long.valueOf(type).intValue()) {
             case (int) ObjectSpaceManifestRootFND:
                 return "ObjectSpaceManifestRootFND";
             case (int) ObjectSpaceManifestListReferenceFND:
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java
index a78e4f29b..e5f0b2767 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java
@@ -885,7 +885,7 @@ class OneNotePtr {
         long local8;
         long local16;
         long local32;
-        switch (new Long(stpFormat).intValue()) {
+        switch (Long.valueOf(stpFormat).intValue()) {
             case 0: // 8 bytes, uncompressed
                 data.stp = deserializeLittleEndianLong();
                 break;
@@ -906,7 +906,7 @@ class OneNotePtr {
             default:
                 throw new TikaException("Unknown STP file node format " + stpFormat);
         }
-        switch (new Long(cbFormat).intValue()) {
+        switch (Long.valueOf(cbFormat).intValue()) {
             case 0: // 4 bytes, uncompressed
                 local32 = deserializeLittleEndianInt();
                 data.cb = local32;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/DataElement.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/DataElement.java
index 058c92425..99f747d3e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/DataElement.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/DataElement.java
@@ -18,6 +18,7 @@
 package org.apache.tika.parser.microsoft.onenote.fsshttpb.streamobj;
 
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
@@ -147,8 +148,9 @@ public class DataElement extends StreamObject {
         if (DATA_ELEMENT_DATA_TYPE_MAPPING.containsKey(this.dataElementType)) {
             try {
                 this.data = (DataElementData) DATA_ELEMENT_DATA_TYPE_MAPPING.get(this.dataElementType)
-                        .newInstance();
-            } catch (InstantiationException | IllegalAccessException e) {
+                        .getDeclaredConstructor().newInstance();
+            } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                     InvocationTargetException e) {
                 throw new TikaException("Could not instantiate a " + dataElementType, e);
             }
 
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/StreamObject.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/StreamObject.java
index 81192b22e..0b592b028 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/StreamObject.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/StreamObject.java
@@ -18,6 +18,7 @@
 package org.apache.tika.parser.microsoft.onenote.fsshttpb.streamobj;
 
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -171,8 +172,10 @@ public abstract class StreamObject implements IFSSHTTPBSerializable {
             Class headerTypeClass = streamObjectTypeMapping.get(header.type);
             StreamObject streamObject;
             try {
-                streamObject = (StreamObject) headerTypeClass.newInstance();
-            } catch (InstantiationException | IllegalAccessException e) {
+                streamObject =
+                        (StreamObject) headerTypeClass.getDeclaredConstructor().newInstance();
+            } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                     InvocationTargetException e) {
                 throw new TikaException("Could not instantiate class " + headerTypeClass, e);
             }
 
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/BasicObject.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/BasicObject.java
index 68db7718d..c59983dd9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/BasicObject.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/BasicObject.java
@@ -18,6 +18,7 @@
 package org.apache.tika.parser.microsoft.onenote.fsshttpb.streamobj.basic;
 
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -39,11 +40,12 @@ public abstract class BasicObject implements IFSSHTTPBSerializable {
                                                   Class<T> clazz) throws TikaException,
             IOException {
         try {
-            T fsshttpbObject = clazz.newInstance();
+            T fsshttpbObject = clazz.getDeclaredConstructor().newInstance();
             index.addAndGet(fsshttpbObject.deserializeFromByteArray(byteArray, index.get()));
 
             return fsshttpbObject;
-        } catch (InstantiationException | IllegalAccessException e) {
+        } catch (InstantiationException | IllegalAccessException | NoSuchMethodException |
+                 InvocationTargetException e) {
             throw new TikaException("Could not parse basic object", e);
         }
     }
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/ExGuid.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/ExGuid.java
index 417fa2679..8f52c0834 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/ExGuid.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/fsshttpb/streamobj/basic/ExGuid.java
@@ -142,7 +142,7 @@ public class ExGuid extends BasicObject {
      */
     @Override
     public int hashCode() {
-        return this.guid.hashCode() + new Integer(this.value).hashCode();
+        return this.guid.hashCode() + Integer.valueOf(this.value).hashCode();
     }
 
     /**
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/CSVSnifferTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/CSVSnifferTest.java
index 2f3ba44ff..338593901 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/CSVSnifferTest.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/test/java/org/apache/tika/parser/csv/CSVSnifferTest.java
@@ -71,11 +71,11 @@ public class CSVSnifferTest extends TikaTest {
     public void testCSVBasic() throws Exception {
         List<CSVResult> results = sniff(DELIMITERS, CSV_BASIC, StandardCharsets.UTF_8);
         assertEquals(2, results.size());
-        assertEquals(new Character(','), results.get(0).getDelimiter());
+        assertEquals(Character.valueOf(','), results.get(0).getDelimiter());
 
         results = sniff(DELIMITERS, TSV_BASIC, StandardCharsets.UTF_8);
         assertEquals(2, results.size());
-        assertEquals(new Character('\t'), results.get(0).getDelimiter());
+        assertEquals(Character.valueOf('\t'), results.get(0).getDelimiter());
     }
 
     @Test
@@ -91,11 +91,11 @@ public class CSVSnifferTest extends TikaTest {
         List<CSVResult> results =
                 sniff(DELIMITERS, ALLOW_SPACES_BEFORE_QUOTE, StandardCharsets.UTF_8);
         assertEquals(2, results.size());
-        assertEquals(new Character(','), results.get(0).getDelimiter());
+        assertEquals(Character.valueOf(','), results.get(0).getDelimiter());
 
         results = sniff(DELIMITERS, ALLOW_SPACES_AFTER_QUOTE, StandardCharsets.UTF_8);
         assertEquals(2, results.size());
-        assertEquals(new Character(','), results.get(0).getDelimiter());
+        assertEquals(Character.valueOf(','), results.get(0).getDelimiter());
     }
 
     @Test
diff --git a/tika-xmp/src/main/java/org/apache/tika/xmp/convert/TikaToXMP.java b/tika-xmp/src/main/java/org/apache/tika/xmp/convert/TikaToXMP.java
index 4c891d1a4..152b94191 100644
--- a/tika-xmp/src/main/java/org/apache/tika/xmp/convert/TikaToXMP.java
+++ b/tika-xmp/src/main/java/org/apache/tika/xmp/convert/TikaToXMP.java
@@ -140,7 +140,7 @@ public class TikaToXMP {
             Class<? extends ITikaToXMPConverter> clazz = getConverterMap().get(type);
             if (clazz != null) {
                 try {
-                    converter = clazz.newInstance();
+                    converter = clazz.getDeclaredConstructor().newInstance();
                 } catch (Exception e) {
                     throw new TikaException(
                             "TikaToXMP converter class cannot be instantiated for mimetype: " +
diff --git a/tika-xmp/src/test/java/org/apache/tika/xmp/XMPMetadataTest.java b/tika-xmp/src/test/java/org/apache/tika/xmp/XMPMetadataTest.java
index 0e4117e3c..e358453d8 100644
--- a/tika-xmp/src/test/java/org/apache/tika/xmp/XMPMetadataTest.java
+++ b/tika-xmp/src/test/java/org/apache/tika/xmp/XMPMetadataTest.java
@@ -164,7 +164,7 @@ public class XMPMetadataTest {
     public void getInt_IntegerProperty_valueReturned() throws TikaException {
         xmpMeta.process(tikaMetadata);
 
-        assertEquals(new Integer(2), xmpMeta.getInt(Property.get("xmp:Integer")));
+        assertEquals(Integer.valueOf(2), xmpMeta.getInt(Property.get("xmp:Integer")));
     }
 
     @Test