Re: TomEE does not launch on Java 24

Richard Zowalla <[email protected]> Sat, 12 Jul 2025 13:53:19 +0200
Newsgroups gmane.comp.java.openejb.user
Message-ID <93633230-411F-4CB3-84ED-B63555B9A695__33158.2646280125$1752321219$gmane$org@apache.org>
Hi Wolfgang,

You could try to configure the pluginRepository / repository into your =
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. =
Similar can be done for <pluginRepository>.

Gru=C3=9F
Richard

> 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>