Re: TomEE does not launch on Java 24

Wolfgang Knauf <[email protected]> Sun, 13 Jul 2025 10:30:39 +0200
Newsgroups gmane.comp.java.openejb.user
Message-ID <[email protected]>
I reopened https://issues.apache.org/jira/browse/TOMEE-4474 and attached=
=20
a reproducer.

I am not sure whether it is really related to Java 24, but my sample=20
works with Java 17 and fails with 24. If my conclusion is not correct, I=
=20
can create a new one.

Gr=C3=BC=C3=9Fe

Wolfgang

Am 12.07.25 um 20:31 schrieb Richard Zowalla:
> If that still doesn't work, maybe you could put up a simple reproducer p=
roject, which mimics your case and we can have a look.
>=20
> Gru=C3=9F
> Richard
>=20
> On 2025/07/12 18:23:08 Richard Zowalla wrote:
>> I see. You can check out TomEE main, run a mvn clean install with skipp=
ed test. It only needs a JDK 17.
>>
>> That should install everything you need locally, so you can just use it=
 as usual.
>>
>> Regarding browser download: yeah, might be an ASF INFRA restriction :-)
>>
>> Gru=C3=9F
>> Richard
>>
>> Am 12. Juli 2025 19:15:27 MESZ schrieb Wolfgang Knauf <wolfgang.knauf@g=
mx.de.INVALID>:
>>> Well, this did not work for me (the project where I want to test the n=
ew version uses ShrinkWrap resolver to download the container and I did no=
t manage to make it use the snapshot repository), but I found out that I c=
an configure the direct URL to the tomee artifact in the project.
>>> But this resulted in the same error.
>>>
>>> Or is it related to me not using the arquillian container artifact fro=
m "https://repository.apache.org/content/groups/snapshots/org/apache/tomee=
/arquillian-tomee-remote/10.1.1-SNAPSHOT/"?
>>>
>>> About not being able to download files by browser: firefox console rep=
orts this error:
>>>
>>> Das Herunterladen von "https://repository.apache.org/content/groups/sn=
apshots/org/apache/tomee/apache-tomee/10.1.1-SNAPSHOT/apache-tomee-10.1.1-=
20250712.035301-33-webprofile.zip" wurde blockiert, weil f=C3=BCr den ausl=
=C3=B6senden iframe das sandbox-Attribut gesetzt ist.
>>>
>>> So it seems it is intended to block manual downloads?
>>>
>>> Best regards
>>>
>>> Wolfgang
>>>
>>>
>>> Am 12.07.25 um 13:53 schrieb Richard Zowalla:
>>>> Hi Wolfgang,
>>>>
>>>> You could try to configure the pluginRepository / repository into you=
r local Maven POM for testing the snapshots:
>>>>
>>>> <repositories>
>>>>     <repository>
>>>>       <id>apache</id>
>>>>       <url>https://repository.apache.org/snapshots/</url>
>>>>       <releases>
>>>>         <enabled>false</enabled>
>>>>       </releases>
>>>>       <snapshots>
>>>>         <enabled>true</enabled>
>>>>       </snapshots>
>>>>     </repository>
>>>> </repositories>
>>>>
>>>> You can reference the snapshot directly in your build afterwards. Sim=
ilar can be done for <pluginRepository>.
>>>>
>>>> Gru=C3=9F
>>>> Richard
>>>>
>>>>> Am 12.07.2025 um 11:14 schrieb Wolfgang Knauf <[email protected]=
.INVALID>:
>>>>>
>>>>> There might be a problem with snapshot "apache-tomee-10.1.1-20250712=
.035301-33-webprofile.zip"
>>>>>
>>>>> (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)
>>>>>
>>>>>
>>>>> I tested it with an arquillian project, where the tomee container is=
 pulled from maven and managed by "org.apache.tomee:arquillian-tomee-remot=
e", so I had to replace the 10.1.0 version in my local maven repository wi=
th the snapshot (replaced "C:\Users\MYUSERNAME\.m2\repository\org\apache\t=
omee\apache-tomee\10.1.0\apache-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).
>>>>>
>>>>> Attached is the output of a maven run using Java 24. At some point, =
it starts printing thousands of errors:
>>>>>
>>>>> java.util.concurrent.ExecutionException: java.lang.IllegalArgumentEx=
ception: 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:19=
3)
>>>>> 	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.isCalle=
rAuthorized(AbstractSecurityService.java:398)
>>>>> 	at org.apache.openejb.core.singleton.SingletonContainer.invoke(Sing=
letonContainer.java:192)
>>>>> 	at org.apache.openejb.core.ivm.EjbHomeProxyHandler.create(EjbHomePr=
oxyHandler.java:343)
>>>>> 	at org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeP=
roxyHandler.java:196)
>>>>> 	at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbPr=
oxyHandler.java:349)
>>>>> 	at jdk.proxy3/jdk.proxy3.$Proxy30.create(Unknown Source)
>>>>> 	at org.apache.openejb.core.ivm.naming.BusinessRemoteReference.getOb=
ject(BusinessRemoteReference.java:36)
>>>>> 	at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.=
java:186)
>>>>> 	at org.apache.openejb.server.ejbd.JndiRequestHandler.doLookup(JndiR=
equestHandler.java:261)
>>>>> 	at org.apache.openejb.server.ejbd.JndiRequestHandler.processRespons=
e(JndiRequestHandler.java:174)
>>>>> 	at org.apache.openejb.server.ejbd.EjbDaemon.processJndiResponse(Ejb=
Daemon.java: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(ServerServ=
let.java:60)
>>>>> 	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter=
(ApplicationFilterChain.java:195)
>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(Applica=
tionFilterChain.java:140)
>>>>> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWra=
pperValve.java:167)
>>>>> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardCon=
textValve.java:90)
>>>>> 	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:=
45)
>>>>> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostVa=
lve.java:116)
>>>>> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVa=
lve.java:93)
>>>>> 	at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapture=
r.invoke(OpenEJBSecurityListener.java:97)
>>>>> 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(Abstrac=
tAccessLogValve.java:666)
>>>>> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngi=
neValve.java:74)
>>>>> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapte=
r.java:344)
>>>>> 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor=
.java:398)
>>>>> 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcess=
orLight.java:63)
>>>>> 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Abs=
tractProtocol.java:903)
>>>>> 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(Nio=
Endpoint.java:1769)
>>>>> 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcess=
orBase.java:52)
>>>>> 	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Thre=
adPoolExecutor.java:1189)
>>>>> 	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(Thr=
eadPoolExecutor.java:658)
>>>>> 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(T=
askThread.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(MessageFo=
rmat.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:32=
8)
>>>>> 	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(NumberF=
ormatException.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(MessageFo=
rmat.java:1642)
>>>>> 	... 42 more
>>>>>
>>>>> Seems the server is not stopped or it takes too long to print all th=
oses errors, I killed it after a few seconds an 1GB of log file ;-)
>>>>>
>>>>> 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 m=
aybe caused by this one?
>>>>>
>>>>>
>>>>> Best regards
>>>>>
>>>>> Wolfgang
>>>>>
>>>>> 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,
>>>>>>>
>>>>>>> we just pushed some changes, which should allow TomEE to run on Ja=
va 24 (with some limitations regarding EJB method security, etc.)
>>>>>>>
>>>>>>> Nightlies should be available via https://repository.apache.org/ c=
ontent/groups/snapshots/org/apache/tomee/apache-tomee/10.1.1- SNAPSHOT/ so=
on.
>>>>>>>
>>>>>>> Gru=C3=9F
>>>>>>> Richard
>>>>>>>
>>>>>>> On 2025/04/04 08:28:20 Wolfgang Knauf wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> (sorry if this is a duplicate one, I already sent it a few days a=
go, but as it did not appear, I think it might be related to the fact that=
 I did not subscribe to the list)
>>>>>>>>
>>>>>>>> TomEE 10.0.1 fails to launch with Java 24:
>>>>>>>>
>>>>>>>> 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 users=
@tomee.apache.org :
>>>>>>>> org.apache.xbean.recipe.ConstructionException: Error invoking con=
structor: public org.apache.tomee.catalina.TomcatSecurityService()
>>>>>>>>      at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory=
.create(ReflectionUtil.java:981)
>>>>>>>>      at org.apache.xbean.recipe.ObjectRecipe.internalCreate(Objec=
tRecipe.java:279)
>>>>>>>>      at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRec=
ipe.java:96)
>>>>>>>>      at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRec=
ipe.java:61)
>>>>>>>>      at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRec=
ipe.java:49)
>>>>>>>>      at org.apache.openejb.assembler.classic.Assembler.createSecu=
rityService(Assembler.java:3553)
>>>>>>>>      at org.apache.openejb.assembler.classic.Assembler.buildConta=
inerSystem(Assembler.java:579)
>>>>>>>>      at org.apache.openejb.assembler.classic.Assembler.build(Asse=
mbler.java:497)
>>>>>>>>      at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:1=
50)
>>>>>>>>      at org.apache.openejb.OpenEJB.init(OpenEJB.java:307)
>>>>>>>>      at org.apache.tomee.catalina.TomcatLoader.initialize(TomcatL=
oader.java:244)
>>>>>>>>      at org.apache.tomee.catalina.ServerListener.lifecycleEvent(S=
erverListener.java:161)
>>>>>>>>      at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent=
(LifecycleBase.java:109)
>>>>>>>>      at org.apache.catalina.util.LifecycleBase.setStateInternal(L=
ifecycleBase.java:389)
>>>>>>>>      at org.apache.catalina.util.LifecycleBase.init(LifecycleBase=
.java:123)
>>>>>>>>      at org.apache.catalina.startup.Catalina.load(Catalina.java:7=
12)
>>>>>>>>      at org.apache.catalina.startup.Catalina.load(Catalina.java:7=
35)
>>>>>>>>      at java.base/ jdk.internal.reflect.DirectMethodHandleAccesso=
r.invoke(DirectMethodHandleAccessor.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 JAC=
C Policy Provider: org.apache.openejb.core.security.JaccProvider$Policy
>>>>>>>>      at org.apache.openejb.core.security.AbstractSecurityService.=
installPolicy(AbstractSecurityService.java:443)
>>>>>>>>      at org.apache.openejb.core.security.AbstractSecurityService.=
installJacc(AbstractSecurityService.java:431)
>>>>>>>>      at org.apache.openejb.core.security.AbstractSecurityService.=
<init>(AbstractSecurityService.java:94)
>>>>>>>>      at org.apache.openejb.core.security.AbstractSecurityService.=
<init>(AbstractSecurityService.java:88)
>>>>>>>>      at org.apache.tomee.catalina.TomcatSecurityService.<init>(To=
mcatSecurityService.java:55)
>>>>>>>>      at java.base/ jdk.internal.reflect.DirectConstructorHandleAc=
cessor.newInstance(DirectConstructorHandleAccessor.java:62)
>>>>>>>>      at java.base/ java.lang.reflect.Constructor.newInstanceWithC=
aller(Constructor.java:499)
>>>>>>>>      at java.base/ java.lang.reflect.Constructor.newInstance(Cons=
tructor.java:483)
>>>>>>>>      at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory=
.create(ReflectionUtil.java:971)
>>>>>>>> ... 20 more
>>>>>>>> Caused by: java.lang.UnsupportedOperationException: Setting a sys=
tem- wide Policy object is not supported
>>>>>>>>      at java.base/java.security.Policy.setPolicy(Policy.java:114)
>>>>>>>>      at org.apache.openejb.core.security.AbstractSecurityService.=
installPolicy(AbstractSecurityService.java:441)
>>>>>>>> ... 28 more
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Is there something I should do about this (file a JIRA issue), or=
 is the Java 24 support already on your roadmap?
>>>>>>>>
>>>>>>>> Best regards
>>>>>>>>
>>>>>>>> Wolfgang
>>>>>>>>
>>>>> <log.txt>
>>>>
>>>
>>