"Unable to make public"... opens java.util.zip (Masa CMS)

Version: Tried both Lucee 5.3.8.206 and 5.3.9.80-RC
Apache Tomcat/9.0.11
Java 16.0.1 (AdoptOpenJDK) 64bit
Linux (5.13.0-30-generic) 64bit
Compress tags extension: Tried versions 1.0.0.0, 1.0.0.1, 1.0.0.2 and 1.0.0.7 SNAPSHOT

I’ve been able to pull and fire up the Masa CMS (fork of Mura) and it seems to run ok at first. The problem seems to be in attempts to update the core or deploy a site bundle - both processes which use the zip libraries.

Although Masa will shield users from a complete stack trace, the core message is always along the lines of:
Unable to make public boolean java.util.zip.ZipFile$ZipEntryIterator.hasMoreElements() accessible: module java.base does not “opens java.util.zip” to unnamed module…

hasMoreElements() for example, is a library method that they’re calling on line 526 of their file /mura/Zip.cfc

Here’s the conversation link:

From a quick search, this hints of a Java version or options-passing problem - in accessing a library that’s not as public as it used to be in older versions?

I can’t find where they specify a min or max Java or Lucee version over there at MasaCMS, and wondered if you fine folk had any helpful insights on what I should look for.

Lucee doesn’t run on Java 16. Stick with Java 11 for now

1 Like

@bdw429s thanks for the spec!
Here’s a helpful link on keeping your Linux on the correct version(s) as needed:

in case the above goes 404 down the road, here’s the meat:

$ java -version
$ sudo update-alternatives --config java

Thanks for sharing that content! To add some additional information to yours, there are admins who like to use a dedicated JDK version to run their Tomcat/Lucee instance. You event won’'t need to have Java installed on your OS (it’s just an extracted JDK)

You can specify that specific JRE Home/Java Home in Tomcats setenv.sh, as specified in Tomcat docs at 3.2 Set JRE_HOME or JAVA_HOME that can be found here.

In short: You just need to download and unzip a supported JDK (e.g. from adoptium.net) to a physical location of your OS and add the JRE_HOME variable to your path-to-tomcat\bin\setenv.sh. Here is a snippet as an example:

# Set set a path to a dedicated JDK 
JRE_HOME=/path-to-your-jdk/
CATALINA_PID="$CATALINA_BASE/tomcat.pid"

If you use the Lucee installer, it will do it like this for you.