diff --git a/.travis.yml b/.travis.yml
index 72b9493..9e0c2d3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,6 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 language: java
+dist: bionic
 addons:
   apt:
     packages:
@@ -24,8 +25,8 @@
 jdk:
   - openjdk11
 before_script:
-  - wget 'https://archive.apache.org/dist/netbeans/netbeans/12.3/netbeans-12.3-bin.zip' -O /tmp/netbeans-12.3-bin.zip
-  - (cd $HOME; unzip /tmp/netbeans-12.3-bin.zip)
+  - wget 'https://www.apache.org/dist/netbeans/netbeans/12.5/netbeans-12.5-bin.zip' -O /tmp/netbeans-12.5-bin.zip
+  - (cd $HOME; unzip /tmp/netbeans-12.5-bin.zip)
   - unset _JAVA_OPTIONS
 script:
   - export JDK11=$JAVA_HOME
diff --git a/cmdline/README.md b/cmdline/README.md
index c439325..094ccf7 100644
--- a/cmdline/README.md
+++ b/cmdline/README.md
@@ -27,7 +27,7 @@
 
 #### To Build
 
-* Apache NetBeans 12.3
+* Apache NetBeans 12.5
 * JDK 8 and JDK 11
 * bash
 * Apache ant 1.9.9 or above
@@ -42,7 +42,7 @@
 Build using:
 
 ```
-$ ant -DNETBEANS_PLATFORM=<path-to-NetBeans-12.3> -DJDK11=<path-to-JDK-11> build-and-test
+$ ant -DNETBEANS_PLATFORM=<path-to-NetBeans-12.5> -DJDK11=<path-to-JDK-11> build-and-test
 ```
 
 The built product is in tool/build/jackpot.
diff --git a/cmdline/build.xml b/cmdline/build.xml
index 308eaab..f386b5e 100644
--- a/cmdline/build.xml
+++ b/cmdline/build.xml
@@ -52,7 +52,7 @@
     </target>
 
     <target name="build-and-test">
-        <property name="version" value="12.3" />
+        <property name="version" value="12.5" />
         <condition property="jackpot.root" value="${basedir}" else="${basedir}/..">
             <available file="${basedir}/LICENSE" />
         </condition>
diff --git a/cmdline/maven/pom.xml b/cmdline/maven/pom.xml
index 2526a0e..6c61c58 100644
--- a/cmdline/maven/pom.xml
+++ b/cmdline/maven/pom.xml
@@ -21,7 +21,7 @@
 
   <groupId>org.apache.netbeans.modules.jackpot30</groupId>
   <artifactId>jackpot30-maven-plugin</artifactId>
-  <version>12.3</version>
+  <version>12.5</version>
   <packaging>maven-plugin</packaging>
 
   <name>Jackpot 3.0 Command Line Tool Maven Bridge</name>
diff --git a/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java b/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
index de02a51..1e64e92 100644
--- a/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
+++ b/cmdline/maven/src/test/java/org/netbeans/modules/jackpot30/maven/RunJackpot30Test.java
@@ -67,7 +67,7 @@
 
         Process p = Runtime.getRuntime().exec(new String[] {
             maven,
-            "-Djackpot.plugin.version=12.3",
+            "-Djackpot.plugin.version=12.5",
             "-q",
             "jackpot30:analyze"
         }, null, testDir);
diff --git a/cmdline/tool/scripts/pom.xml b/cmdline/tool/scripts/pom.xml
index 2bb3fb3..34488f6 100644
--- a/cmdline/tool/scripts/pom.xml
+++ b/cmdline/tool/scripts/pom.xml
@@ -21,7 +21,7 @@
 
   <groupId>org.apache.netbeans.modules.jackpot30</groupId>
   <artifactId>jackpot30-maven-plugin</artifactId>
-  <version>12.3</version>
+  <version>12.5</version>
   <packaging>maven-plugin</packaging>
 
   <name>Jackpot 3.0 Command Line Tool</name>
diff --git a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
index 0826581..6082d4d 100644
--- a/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
+++ b/cmdline/tool/src/org/netbeans/modules/jackpot30/cmdline/ProcessorImpl.java
@@ -193,7 +193,15 @@
 
             HintsSettings settings = HintsSettings.createPreferencesBasedHintsSettings(ToolPreferences.from(settingsURI).getPreferences("hints", "text/x-java"), true, null);
 
-            final Map<HintMetadata, ? extends Collection<? extends HintDescription>> allHints = RulesManager.getInstance().readHints(null, Arrays.asList(bootCP, compileCP, sourceCP), new AtomicBoolean());
+            final Map<HintMetadata, ? extends Collection<? extends HintDescription>> allHints;
+            java.io.PrintStream oldErr = System.err;
+            try {
+                //XXX: TreeUtilities.unenter prints exceptions to stderr on JDK 11, throw the output away:
+                System.setErr(new java.io.PrintStream(new java.io.ByteArrayOutputStream()));
+                allHints = RulesManager.getInstance().readHints(null, Arrays.asList(bootCP, compileCP, sourceCP), new AtomicBoolean());
+            } finally {
+                System.setErr(oldErr);
+            }
             List<HintDescription> hints = new ArrayList<>();
 
             for (Entry<HintMetadata, ? extends Collection<? extends HintDescription>> e : allHints.entrySet()) {
