Re: 'for each' statements are only available if source level is 1.5 or greater
Mark Foley <[email protected]>
| Newsgroups | gmane.comp.jakarta.tomcat.user |
|---|---|
| Organization | Novatec Software Engineering, LLC |
| Message-ID | <[email protected]> |
> From [email protected] Fri Dec 12 19:34:05 2025 > Authentication-Results: server.novatec-inc.com; > dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com [email protected] header.b=APW3uc4B > Authentication-Results: apache.org; auth=none > X-Spam-Status: No, score=-8.8 required=5.0 tests=BAYES_00, > FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, > MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,RCVD_IN_MSPIKE_H5, > RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,USER_IN_DEF_SPF_WL > autolearn=ham autolearn_force=no version=3.4.6-_revision__1.0__ > Authentication-Results: spamproc1-he-fi.apache.org (amavisd-new); > dkim=pass (2048-bit key) header.d=gmail.com > DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; > d=gmail.com; s=20230601; t=1765585991; x=1766190791; darn=tomcat.apache.org; > h=message-id:in-reply-to:to:references:date:subject:mime-version:from > :from:to:cc:subject:date:message-id:reply-to; > bh=DO1/BPpYzxh48vytKsb8h26b2Dd+yXPLR56DBPQHtGE=; > b=APW3uc4BoTqp+3hwzGQC242zLvz1Guy+psslG7miZK6XXGqVw3UQEA96NtrUvy0nQl > bbyj4h3hhnkZQ1Gg47f6X0EzWXOGVj7z5e6E+kHMVI793XSZyLW4AQDjJGNxBIcpRx/+ > k3CORPLLfjZiyZVG4UiGjOcuUZ811fuGQS4Z+ILtB+WKhP5ShfaByAp5dKKh/OkF5I6w > 2shumQiN17xeU5NfN3CdGco9FNTfaJvXmmkvtmGetbBPyKrAq3Ysb6QNWfKJ4CBErwZD > Ga05t2sBN9TcE6EDyF89V2XnQd27ALN86QmDNVZro9hZWK/4I0cru3vdkMbTiC1T+JzS > 1gKw== > Subject: Re: 'for each' statements are only available if source level is 1.5 > or greater > Date: Fri, 12 Dec 2025 18:32:59 -0600 > To: Tomcat Users List <[email protected]> > From: Chuck Caldarale <[email protected]> > X-Spam-Report: > * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% > * [score: 0.0000] > * 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level > * mail domains are different > * 0.0 RCVD_IN_MSPIKE_H5 RBL: Excellent reputation (+5) > * [3.227.148.255 listed in wl.mailspike.net] > * -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at https://www.dnswl.org/, > * high trust > * [3.227.148.255 listed in list.dnswl.org] > * -1.0 SPF_HELO_PASS SPF: HELO matches SPF record > * -0.0 USER_IN_DEF_SPF_WL From: address is in the default SPF > * welcome-list > * 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail > * provider > * [n828cl[at]gmail.com] > * -0.1 SPF_PASS SPF: sender matches SPF record > * 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and > * EnvelopeFrom freemail headers are different > * 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders > * -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list > * manager > X-Spam-Checker-Version: SpamAssassin 3.4.6-_revision__1.0__ (2021-04-09) on > server.novatec-inc.com > > > > > On 2025 Dec 12, at 16:11, Mark Foley <[email protected]> wrote: > > > > On Fri Dec 12 14:08:03 2025 Chuck Caldarale <[email protected]> wrote: > >> > >>> On 2025 Dec 12, at 12:02, Mark Foley <[email protected]> wrote: > >>> > >>> On Fri Dec 12 06:54:21 2025 Mark Thomas <[email protected]> wrote: > >>>> > >>>> On 12/12/2025 05:17, Mark Foley wrote: > >>>> > >>>> <snip/> > >>>> > >>>>> The "source level is 1.5 or greater" is on the web page. Here are the first > >>>>> several lines: > >>>>> > >>>>> HTTP Status 500 - Internal Server Error > >>>>> > >>>>> Type Exception Report > >>>>> > >>>>> Message Unable to compile class for JSP: > >>>>> > >>>>> Description The server encountered an unexpected condition that prevented it from fulfilling the request. > >>>>> > >>>>> Exception > >>>>> > >>>>> org.apache.jasper.JasperException: Unable to compile class for JSP: > >>>>> > >>>>> An error occurred at line: [17] in the jsp file: [/include/homePageImage.inc] > >>>>> Syntax error, 'for each' statements are only available if source level is 1.5 or greater > >>>> > >>>> OK. We need to see CATALINA_BASE/conf/web.xml > >>>> > >>>> It will be big but better we see the whole thing to be sure. > >>> > >>> Here you go. I've omitted all the comments and the 1,012 <mime-mapping>s. Note > >>> that compilerSourceVM is explicitly set to 11. I didn't do that. It was in the > >>> installed web.xml: > >>> > >>> <?xml version="1.0" encoding="UTF-8"?> > >>> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" > >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >>> xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee > >>> https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" > >>> version="6.0"> > >>> > >>> <request-character-encoding>UTF-8</request-character-encoding> > >>> <response-character-encoding>UTF-8</response-character-encoding> > >>> > >>> <servlet> > >>> <servlet-name>default</servlet-name> > >>> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> > >>> <init-param> > >>> <param-name>debug</param-name> > >>> <param-value>0</param-value> > >>> </init-param> > >>> <init-param> > >>> <param-name>listings</param-name> > >>> <param-value>false</param-value> > >>> </init-param> > >>> <load-on-startup>1</load-on-startup> > >>> </servlet> > >>> > >>> <servlet> > >>> <servlet-name>jsp</servlet-name> > >>> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> > >>> <init-param> > >>> <param-name>compilerSourceVM</param-name> > >>> <param-value>11</param-value> > >>> </init-param> > >>> <init-param> > >>> <param-name>fork</param-name> > >>> <param-value>false</param-value> > >>> </init-param> > >>> <init-param> > >>> <param-name>xpoweredBy</param-name> > >>> <param-value>false</param-value> > >>> </init-param> > >>> <load-on-startup>3</load-on-startup> > >>> </servlet> > >>> > >>> <servlet-mapping> > >>> <servlet-name>default</servlet-name> > >>> <url-pattern>/</url-pattern> > >>> </servlet-mapping> > >>> > >>> <servlet-mapping> > >>> <servlet-name>jsp</servlet-name> > >>> <url-pattern>*.jsp</url-pattern> > >>> <url-pattern>*.jspx</url-pattern> > >>> </servlet-mapping> > >>> > >>> <session-config> > >>> <session-timeout>30</session-timeout> > >>> </session-config> > >>> > >>> <mime-mapping> > >>> [snip] > >>> </mime-mapping> > >>> > >>> <welcome-file-list> > >>> <welcome-file>index.html</welcome-file> > >>> <welcome-file>index.htm</welcome-file> > >>> <welcome-file>index.jsp</welcome-file> > >>> </welcome-file-list> > >>> > >>> <security-constraint> > >>> <web-resource-collection> > >>> <web-resource-name>Include files</web-resource-name> > >>> <description>No direct access to include files.</description> > >>> <url-pattern>/include/*</url-pattern> > >>> <http-method>POST</http-method> > >>> <http-method>GET</http-method> > >>> </web-resource-collection> > >>> > >>> <auth-constraint> > >>> <description>No direct browser access to include files.</description> > >>> <role-name>NobodyHasThisRole</role-name> > >>> </auth-constraint> > >>> </security-constraint> > >>> > >>> </web-app> > >>> > >>>> > >>>> Also, the a web application with that error, we need to see WEB-INF/web.xml > >>> > >>> <?xml version="1.0" encoding="ISO-8859-1"?> > >>> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" > >>> xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" > >>> xsi:schemalocation="http://xmlns.jcp.org/xml/ns/javaee > >>> http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" > >>> version="3.1" > >>> metadata-complete="true"> > >>> > >>> <env-entry> > >>> <env-entry-name>connurl</env-entry-name> > >>> <env-entry-value>jdbc:mysql://localhost/members?</env-entry-value> > >>> <env-entry-type>java.lang.string</env-entry-type> > >>> </env-entry> > >>> > >>> <env-entry> > >>> <env-entry-name>dbpassword</env-entry-name> > >>> <env-entry-value>obfuscated</env-entry-value> > >>> <env-entry-type>java.lang.string</env-entry-type> > >>> </env-entry> > >>> > >>> <env-entry> > >>> <env-entry-name>webuser</env-entry-name> > >>> <env-entry-value>user</env-entry-value> > >>> <env-entry-type>java.lang.string</env-entry-type> > >>> </env-entry> > >>> > >>> </web-app> > >>> > >>>> > >>>> <snip/> > >>>> > >>>>> i don't know that i have "junk" in the conf files. i don't tend to be inventive > >>>>> with these things myself. here's my whole server.xml file, sans comments. please > >>>>> let me know if you see anything wrong. > >>>> > >>>> <snip/> > >>>> > >>>> > >>>>> <host name="www.horeb-wright3.org" appbase="webapps" > >>>>> unpackwars="true" autodeploy="true" > >>>>> xmlvalidation="false" xmlnamespaceaware="false"> > >>>> > >>>> set autodeploy="false". i think you will be getting double deployment. > >>> > >>> Done, although it doesn't seem to have cut down on the number of log messages > >>> generated in catalina.out. > >>> > >>>> Remove the 2 xml settings. a) the belong on the Context, not the Host > >>>> and b) you are using the defaults so there is no need to include them at > >>>> all. > >>> > >>> Done. > >>> > >>>>> <Alias>horeb-wright3.org</Alias> > >>>>> <Logger className="org.apache.catalina.logger.FileLogger" directory="logs/" prefix="horeb_access_log" suffix=".log" timestamp="true"/> > >>>> > >>>> Remove the entire Logger element. It is unsupported and isn't doing > >>>> anything. > >>> > >>> Done. > >>> > >>> None of the above have altered the source level is 1.5 error. > >> > >> > >> The unchanged number of log entries, coupled with the fact that modifying compilerSourceVM has no apparent effect, makes me wonder if this Tomcat instance is actually using the configuration files you think it is. It wouldn’t be the first time that kind of non-obvious mistake has occurred. > >> > >> - Chuck > > > > So, how would I verify Tomcat is using the correct conf files? > > > If you’re using a Tomcat downloaded from tomcat.apache.org, the startup directories are displayed by default by the startup.sh script. Also, the catalina.out and catalina.yyyy-mm-dd.log files show more extensive information, including whatever is being used for CATALINA_BASE and CATALINA_HOME. For example: > > 12-Dec-2025 18:12:09.237 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.50 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 2 2025 22:57:41 UTC > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.50.0 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Mac OS X > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 26.2 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: aarch64 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /Library/Java/JavaVirtualMachines/temurin-24.jdk/Contents/Home > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 24.0.2+12 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Eclipse Adoptium > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /Users/chuck/Downloads/apache-tomcat-10.1.50 > 12-Dec-2025 18:12:09.239 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /Users/chuck/Downloads/apache-tomcat-10.1.50 > > (The above is from a completely stock fresh download of Tomcat 10.1.) If you’re using a 3rd-party repackaged version of Tomcat, things may well be a bit different... Yes I am using a Tomcat downloaded from tomcat.apache.org. Here are my VersionLoggerListener entries: 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.1.13 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Aug 23 2023 21:34:59 UTC 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.13.0 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.15.193 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /user/util/src/jdk-17.0.8 12-Dec-2025 12:31:07.013 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 17.0.8+9-LTS-211 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /user/util/src/apache-tomcat-10.1.13 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /user/util/src/apache-tomcat-10.1.13 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/srv/tomcat/conf/logging.properties 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 12-Dec-2025 12:31:07.014 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0007 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/srv/tomcat 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/srv/tomcat 12-Dec-2025 12:31:07.015 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/srv/tomcat/temp > > I am keeping separate directory links under /srv/tomcat and when I move the link > > back to the 8.5 version everything work. When I move it to the 10.1 version I > > get the errors. > > > Can you elaborate on that a bit more? Precisely what is in /srv/tomcat and what “links” are you referring to? Also, can you explain exactly how you install and start your multiple Tomcat instances? > > > - CHUCK I posted this in a reply to Olaf, but I'll repost here: These are completely different directory hierarchies with distinct files. One is in .../apache-tomcat-10.1.13/ the other is in ../apache-tomcat-8.5.11/ The 10.1.13 configs were not copied/modified from the 8.5.11 configs. They were installed from scratch from apache-tomcat-10.1.13.tar.gz. /srv/tomcat is symlinked to the 10.1.13 directory for testing and to the 8.5.11 directory for production. For example: # ls -l /srv/tomcat lrwxrwxrwx 1 root root 35 2025-12-12 13:23 /srv/tomcat -> /user/util/src/apache-tomcat-8.5.11/ The 8.5.11 config files are distinct from the 10.1.13 files: $ ls -l apache-tomcat-8.5.11/conf total 428 drwxr-s--- 28 tomcat tomcat 4096 2025-08-27 01:31 Catalina/ -rw-r----- 1 root tomcat 12895 2017-01-10 16:05 catalina.policy -rw-r----- 1 root tomcat 7202 2017-01-10 16:05 catalina.properties -rw-r----- 1 root tomcat 1612 2016-06-14 19:37 context.xml -rw-r----- 1 root tomcat 1338 2017-01-10 16:05 context.xml-orgJMF -rw-r----- 1 root tomcat 1149 2017-01-10 16:05 jaspic-providers.xml -rw-r----- 1 root tomcat 2358 2017-01-10 16:05 jaspic-providers.xsd -rw-r----- 1 root tomcat 3622 2017-01-10 16:05 logging.properties -rw-r--r-- 1 root tomcat 14658 2025-12-12 12:08 server.xml -rw-r----- 1 root tomcat 7511 2017-01-10 16:05 server.xml-orgJMF -rw-r----- 1 root tomcat 2164 2017-01-10 16:05 tomcat-users.xml -rw-r----- 1 root tomcat 2633 2017-01-10 16:05 tomcat-users.xsd -rw-r----- 1 root tomcat 167259 2021-10-28 09:47 web.xml $ ls -l apache-tomcat-10.1.13/conf total 612 drwxrws--- 24 tomcat tomcat 4096 2025-12-08 03:26 Catalina/ -rw-r----- 1 root tomcat 12926 2023-08-23 17:34 catalina.policy -rw-r----- 1 root tomcat 7693 2023-08-23 17:34 catalina.properties -rw-r----- 1 root tomcat 1447 2025-12-08 03:11 context.xml -rw-r----- 1 root tomcat 1149 2023-08-23 17:34 jaspic-providers.xml -rw-r----- 1 root tomcat 2313 2023-08-23 17:34 jaspic-providers.xsd -rw-r----- 1 root tomcat 4144 2023-08-23 17:34 logging.properties -rw-r--r-- 1 root tomcat 15199 2025-12-12 12:23 server.xml -rw-r----- 1 root tomcat 2756 2023-08-23 17:34 tomcat-users.xml -rw-r----- 1 root tomcat 2558 2023-08-23 17:34 tomcat-users.xsd -rw-r----- 1 root tomcat 2666 2025-12-12 12:46 web.txt -rw-r----- 1 root tomcat 173384 2025-12-12 13:24 web.xml To help avoid confusion I've completely removed the 8.5.11 everything. No possibility that the 8.5.11 configs, webapps, etc. are somehow being referenced. I still get the same error on the webpage. It is now 23:39 EST on Friday Dec. 12. I don't know your hours or time, but I'll leave it this way for about the next hour if you happen to be able to try it. the URL is http://horeb-wright3.org I can't leave it that way indefinitely since this is a production system. THX --Mark