Re: TomEE does not launch on Java 24

Richard Zowalla <[email protected]> Sun, 13 Jul 2025 11:04:05 +0200
Newsgroups gmane.comp.java.openejb.user
Message-ID <[email protected]>
--Apple-Mail=_FA6E216C-7524-4609-AABB-EFE643E7E08D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Hi Wolfgang,

Thanks for the reproducer and for testing the snapshot. It is really =
appreciated, that you took the time to provide feedback.

 I have fixed the underlying issue on =E2=80=9Emain=E2=80=9C and the =
reproducer should now work correctly.

Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
Maven home: /Applications/IntelliJ IDEA =
CE.app/Contents/plugins/maven/lib/maven3
Java version: 24.0.1, vendor: Homebrew, runtime: =
/opt/homebrew/Cellar/openjdk/24.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: de_DE, platform encoding: UTF-8
OS name: "mac os x", version: "15.5", arch: "aarch64", family: =E2=80=9EMa=
c"

[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: =
3.381 s -- in org.sample.tomee_java24.test.SampleIT
[INFO]=20
[INFO] Results:
[INFO]=20
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]=20
[INFO]=20
[INFO] --- failsafe:3.5.3:verify (default) @ tomee-java24 ---
[INFO]=20
[INFO] --- install:3.1.2:install (default-install) @ tomee-java24 ---
[INFO] Installing /Users/rz/Downloads/tomee-java24/pom.xml to =
/Users/rz/.m2/repository/org/sample/tomee-java24/0.0.1-SNAPSHOT/tomee-java=
24-0.0.1-SNAPSHOT.pom
[INFO] Installing =
/Users/rz/Downloads/tomee-java24/target/tomee-java24.war to =
/Users/rz/.m2/repository/org/sample/tomee-java24/0.0.1-SNAPSHOT/tomee-java=
24-0.0.1-SNAPSHOT.war
[INFO] =
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] =
------------------------------------------------------------------------
[INFO] Total time:  4.583 s
[INFO] Finished at: 2025-07-13T10:59:45+02:00
[INFO] =
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=
=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=
=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=
=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=80=94=E2=
=80=94=E2=80=94=E2=80=94

A job to deploy the latest snapshot is running: =
https://ci-builds.apache.org/job/Tomee/job/master-deploy/12937/

Gru=C3=9F
Richard

> Am 13.07.2025 um 10:30 schrieb Wolfgang Knauf =
<[email protected]>:
>=20
> I reopened https://issues.apache.org/jira/browse/TOMEE-4474 and =
attached a reproducer.
>=20
> I am not sure whether it is really related to Java 24, but my sample =
works with Java 17 and fails with 24. If my conclusion is not correct, I =
can create a new one.
>=20
> Gr=C3=BC=C3=9Fe
>=20
> Wolfgang
>=20
> Am 12.07.25 um 20:31 schrieb Richard Zowalla:
>> If that still doesn't work, maybe you could put up a simple =
reproducer project, which mimics your case and we can have a look.
>> Gru=C3=9F
>> Richard
>> On 2025/07/12 18:23:08 Richard Zowalla wrote:
>>> I see. You can check out TomEE main, run a mvn clean install with =
skipped test. It only needs a JDK 17.
>>>=20
>>> That should install everything you need locally, so you can just use =
it as usual.
>>>=20
>>> Regarding browser download: yeah, might be an ASF INFRA restriction =
:-)
>>>=20
>>> Gru=C3=9F
>>> Richard
>>>=20
>>> Am 12. Juli 2025 19:15:27 MESZ schrieb Wolfgang Knauf =
<[email protected]>:
>>>> Well, this did not work for me (the project where I want to test =
the new version uses ShrinkWrap resolver to download the container and I =
did not manage to make it use the snapshot repository), but I found out =
that I can configure the direct URL to the tomee artifact in the =
project.
>>>> But this resulted in the same error.
>>>>=20
>>>> Or is it related to me not using the arquillian container artifact =
from =
"https://repository.apache.org/content/groups/snapshots/org/apache/tomee/a=
rquillian-tomee-remote/10.1.1-SNAPSHOT/"?
>>>>=20
>>>> About not being able to download files by browser: firefox console =
reports this error:
>>>>=20
>>>> Das Herunterladen von =
"https://repository.apache.org/content/groups/snapshots/org/apache/tomee/a=
pache-tomee/10.1.1-SNAPSHOT/apache-tomee-10.1.1-20250712.035301-33-webprof=
ile.zip" wurde blockiert, weil f=C3=BCr den ausl=C3=B6senden iframe das =
sandbox-Attribut gesetzt ist.
>>>>=20
>>>> So it seems it is intended to block manual downloads?
>>>>=20
>>>> Best regards
>>>>=20
>>>> Wolfgang
>>>>=20
>>>>=20
>>>> Am 12.07.25 um 13:53 schrieb Richard Zowalla:
>>>>> Hi Wolfgang,
>>>>>=20
>>>>> You could try to configure the pluginRepository / repository into =
your local Maven POM for testing the snapshots:
>>>>>=20
>>>>> <repositories>
>>>>>    <repository>
>>>>>      <id>apache</id>
>>>>>      <url>https://repository.apache.org/snapshots/</url>
>>>>>      <releases>
>>>>>        <enabled>false</enabled>
>>>>>      </releases>
>>>>>      <snapshots>
>>>>>        <enabled>true</enabled>
>>>>>      </snapshots>
>>>>>    </repository>
>>>>> </repositories>
>>>>>=20
>>>>> You can reference the snapshot directly in your build afterwards. =
Similar can be done for <pluginRepository>.
>>>>>=20
>>>>> Gru=C3=9F
>>>>> Richard
>>>>>=20
>>>>>> Am 12.07.2025 um 11:14 schrieb Wolfgang Knauf =
<[email protected]>:
>>>>>>=20
>>>>>> There might be a problem with snapshot =
"apache-tomee-10.1.1-20250712.035301-33-webprofile.zip"
>>>>>>=20
>>>>>> (by the way: I cannot click the download links in a browser, had =
to use "wget" to download it. Tried two different browsers and two OS)
>>>>>>=20
>>>>>>=20
>>>>>> I tested it with an arquillian project, where the tomee container =
is pulled from maven and managed by =
"org.apache.tomee:arquillian-tomee-remote", so I had to replace the =
10.1.0 version in my local maven repository with the snapshot (replaced =
"C:\Users\MYUSERNAME\.m2\repository\org\apache\tomee\apache-tomee\10.1.0\a=
pache-tomee-10.1.0-webprofile.zip" with snapshot file and renamed =
directory "apache-tomee-webprofile-10.1.1-SNAPSHOT" to =
"apache-tomee-webprofile-10.1.0" in zip).
>>>>>>=20
>>>>>> Attached is the output of a maven run using Java 24. At some =
point, it starts printing thousands of errors:
>>>>>>=20
>>>>>> java.util.concurrent.ExecutionException: =
java.lang.IllegalArgumentException: can't parse argument number:
>>>>>> 	at =
java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124)
>>>>>> 	at =
java.base/java.util.concurrent.FutureTask.get(FutureTask.java:193)
>>>>>> 	at org.apache.openejb.util.Memoizer.compute(Memoizer.java:63)
>>>>>> 	at org.apache.openejb.util.Logger.formatMessage(Logger.java:398)
>>>>>> 	at org.apache.openejb.util.Logger.warning(Logger.java:643)
>>>>>> 	at =
org.apache.openejb.core.security.AbstractSecurityService.isCallerAuthorize=
d(AbstractSecurityService.java:398)
>>>>>> 	at =
org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonConta=
iner.java:192)
>>>>>> 	at =
org.apache.openejb.core.ivm.EjbHomeProxyHandler.create(EjbHomeProxyHandler=
.java:343)
>>>>>> 	at =
org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandle=
r.java:196)
>>>>>> 	at =
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler=
.java:349)
>>>>>> 	at jdk.proxy3/jdk.proxy3.$Proxy30.create(Unknown Source)
>>>>>> 	at =
org.apache.openejb.core.ivm.naming.BusinessRemoteReference.getObject(Busin=
essRemoteReference.java:36)
>>>>>> 	at =
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:186)
>>>>>> 	at =
org.apache.openejb.server.ejbd.JndiRequestHandler.doLookup(JndiRequestHand=
ler.java:261)
>>>>>> 	at =
org.apache.openejb.server.ejbd.JndiRequestHandler.processResponse(JndiRequ=
estHandler.java:174)
>>>>>> 	at =
org.apache.openejb.server.ejbd.EjbDaemon.processJndiResponse(EjbDaemon.jav=
a:380)
>>>>>> 	at =
org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:282)
>>>>>> 	at =
org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:104)
>>>>>> 	at =
org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:6=
0)
>>>>>> 	at =
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
>>>>>> 	at =
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati=
onFilterChain.java:195)
>>>>>> 	at =
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter=
Chain.java:140)
>>>>>> 	at =
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.=
java:167)
>>>>>> 	at =
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.=
java:90)
>>>>>> 	at =
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
>>>>>> 	at =
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1=
16)
>>>>>> 	at =
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:9=
3)
>>>>>> 	at =
org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(O=
penEJBSecurityListener.java:97)
>>>>>> 	at =
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLog=
Valve.java:666)
>>>>>> 	at =
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja=
va:74)
>>>>>> 	at =
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344=
)
>>>>>> 	at =
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)=

>>>>>> 	at =
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.ja=
va:63)
>>>>>> 	at =
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProto=
col.java:903)
>>>>>> 	at =
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.j=
ava:1769)
>>>>>> 	at =
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.jav=
a:52)
>>>>>> 	at =
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExec=
utor.java:1189)
>>>>>> 	at =
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExe=
cutor.java:658)
>>>>>> 	at =
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.=
java:63)
>>>>>> 	at java.base/java.lang.Thread.run(Thread.java:1447)
>>>>>> Caused by: java.lang.IllegalArgumentException: can't parse =
argument number:
>>>>>> 	at =
java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:=
1644)
>>>>>> 	at =
java.base/java.text.MessageFormat.applyPatternImpl(MessageFormat.java:660)=

>>>>>> 	at =
java.base/java.text.MessageFormat.<init>(MessageFormat.java:516)
>>>>>> 	at org.apache.openejb.util.Memoizer$1.call(Memoizer.java:52)
>>>>>> 	at =
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
>>>>>> 	at org.apache.openejb.util.Memoizer.compute(Memoizer.java:59)
>>>>>> 	... 37 more
>>>>>> Caused by: java.lang.NumberFormatException: For input string: ""
>>>>>> 	at =
java.base/java.lang.NumberFormatException.forInputString(NumberFormatExcep=
tion.java:67)
>>>>>> 	at java.base/java.lang.Integer.parseInt(Integer.java:541)
>>>>>> 	at java.base/java.lang.Integer.parseInt(Integer.java:661)
>>>>>> 	at =
java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:=
1642)
>>>>>> 	... 42 more
>>>>>>=20
>>>>>> Seems the server is not stopped or it takes too long to print all =
thoses errors, I killed it after a few seconds an 1GB of log file ;-)
>>>>>>=20
>>>>>> The project where the issue occured uses arquillian and =
"org.apache.tomee:arquillian-tomee-remote". In the failed run, I still =
used 10.1.0 of this plugin, without trying to replace it with a snapshot =
version. Is it maybe caused by this one?
>>>>>>=20
>>>>>>=20
>>>>>> Best regards
>>>>>>=20
>>>>>> Wolfgang
>>>>>>=20
>>>>>> Am 11.07.25 um 22:14 schrieb Wolfgang Knauf:
>>>>>>> Thanks, great work.
>>>>>>> I will give it a try the next few days and report back if there =
are further problems.
>>>>>>> Best regards
>>>>>>> Wolfgang
>>>>>>> Am 11.07.25 um 14:15 schrieb Richard Zowalla:
>>>>>>>> Hi Wolfgang,
>>>>>>>>=20
>>>>>>>> we just pushed some changes, which should allow TomEE to run on =
Java 24 (with some limitations regarding EJB method security, etc.)
>>>>>>>>=20
>>>>>>>> Nightlies should be available via =
https://repository.apache.org/ =
content/groups/snapshots/org/apache/tomee/apache-tomee/10.1.1- SNAPSHOT/ =
soon.
>>>>>>>>=20
>>>>>>>> Gru=C3=9F
>>>>>>>> Richard
>>>>>>>>=20
>>>>>>>> On 2025/04/04 08:28:20 Wolfgang Knauf wrote:
>>>>>>>>> Hi all,
>>>>>>>>>=20
>>>>>>>>> (sorry if this is a duplicate one, I already sent it a few =
days ago, but as it did not appear, I think it might be related to the =
fact that I did not subscribe to the list)
>>>>>>>>>=20
>>>>>>>>> TomEE 10.0.1 fails to launch with Java 24:
>>>>>>>>>=20
>>>>>>>>> 01-Apr-2025 13:10:36.888 SCHWERWIEGEND [main] =
org.apache.openejb.util.OpenEJBErrorHandler.handleUnknownError FATAL =
ERROR: Unknown error in Assembler. Please send the following stack trace =
and this message to [email protected] :
>>>>>>>>> org.apache.xbean.recipe.ConstructionException: Error invoking =
constructor: public org.apache.tomee.catalina.TomcatSecurityService()
>>>>>>>>>     at =
org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(Reflectio=
nUtil.java:981)
>>>>>>>>>     at =
org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:279)=

>>>>>>>>>     at =
org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
>>>>>>>>>     at =
org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
>>>>>>>>>     at =
org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49)
>>>>>>>>>     at =
org.apache.openejb.assembler.classic.Assembler.createSecurityService(Assem=
bler.java:3553)
>>>>>>>>>     at =
org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assemb=
ler.java:579)
>>>>>>>>>     at =
org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:497)
>>>>>>>>>     at =
org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:150)
>>>>>>>>>     at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
>>>>>>>>>     at =
org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:244)
>>>>>>>>>     at =
org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.jav=
a:161)
>>>>>>>>>     at =
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.ja=
va:109)
>>>>>>>>>     at =
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java=
:389)
>>>>>>>>>     at =
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123)
>>>>>>>>>     at =
org.apache.catalina.startup.Catalina.load(Catalina.java:712)
>>>>>>>>>     at =
org.apache.catalina.startup.Catalina.load(Catalina.java:735)
>>>>>>>>>     at java.base/ =
jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleA=
ccessor.java:104)
>>>>>>>>>     at =
java.base/java.lang.reflect.Method.invoke(Method.java:565)
>>>>>>>>>     at =
org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:302)
>>>>>>>>>     at =
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
>>>>>>>>> Caused by: java.lang.IllegalStateException: Could not install =
JACC Policy Provider: =
org.apache.openejb.core.security.JaccProvider$Policy
>>>>>>>>>     at =
org.apache.openejb.core.security.AbstractSecurityService.installPolicy(Abs=
tractSecurityService.java:443)
>>>>>>>>>     at =
org.apache.openejb.core.security.AbstractSecurityService.installJacc(Abstr=
actSecurityService.java:431)
>>>>>>>>>     at =
org.apache.openejb.core.security.AbstractSecurityService.<init>(AbstractSe=
curityService.java:94)
>>>>>>>>>     at =
org.apache.openejb.core.security.AbstractSecurityService.<init>(AbstractSe=
curityService.java:88)
>>>>>>>>>     at =
org.apache.tomee.catalina.TomcatSecurityService.<init>(TomcatSecurityServi=
ce.java:55)
>>>>>>>>>     at java.base/ =
jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectCon=
structorHandleAccessor.java:62)
>>>>>>>>>     at java.base/ =
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
>>>>>>>>>     at java.base/ =
java.lang.reflect.Constructor.newInstance(Constructor.java:483)
>>>>>>>>>     at =
org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(Reflectio=
nUtil.java:971)
>>>>>>>>> ... 20 more
>>>>>>>>> Caused by: java.lang.UnsupportedOperationException: Setting a =
system- wide Policy object is not supported
>>>>>>>>>     at =
java.base/java.security.Policy.setPolicy(Policy.java:114)
>>>>>>>>>     at =
org.apache.openejb.core.security.AbstractSecurityService.installPolicy(Abs=
tractSecurityService.java:441)
>>>>>>>>> ... 28 more
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>> Is there something I should do about this (file a JIRA issue), =
or is the Java 24 support already on your roadmap?
>>>>>>>>>=20
>>>>>>>>> Best regards
>>>>>>>>>=20
>>>>>>>>> Wolfgang
>>>>>>>>>=20
>>>>>> <log.txt>
>>>>>=20
>>>>=20
>>>=20
>=20


--Apple-Mail=_FA6E216C-7524-4609-AABB-EFE643E7E08D--