-
Notifications
You must be signed in to change notification settings - Fork 58
Description
While testing Java21 with EE8 we started seeing a com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call memcache.Get in a thread that is neither the original request thread nor a thread created by ThreadManager
exception[1] when sessions are enabled in the appengine-web.xml file. This issue is reproducible using the HelloWorld for App Engine Standard (Java 21) and making the following changes:
- Edit pom.xml to replace:
with:
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.1.0</version> <type>jar</type> <scope>provided</scope> </dependency>
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <type>jar</type> <scope>provided</scope> </dependency>
- Edit HelloAppEngine.java to replace the
jakarta.servlet
imports withjavax.servlet
. - Edit the appengine-web.xml file to include:
<system-properties> <property name="appengine.use.EE8" value="true"/> </system-properties> <sessions-enabled>true</sessions-enabled>
Once the application has been started and you visit http://localhost:8080/ the exception will occur. The HelloWorld application doesn't use the session data for anything so it's operation isn't really impacted but for applications that do use sessions there will be issues.
Other than moving to EE10 this issue can be worked around by setting the cloudSdkVersion
configuration property to "449.0.0" in appengine-maven-plugin in pom.xml file like so:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.8.0</version>
<configuration>
<!-- can be set w/ -DprojectId=myProjectId on command line -->
<projectId>myProjectId</projectId>
<!-- set the GAE version or use "GCLOUD_CONFIG" for an autogenerated GAE version -->
<version>GCLOUD_CONFIG</version>
<!-- Workaround -->
<cloudSdkVersion>449.0.0</cloudSdkVersion>
</configuration>
</plugin>
Attempting to upgrade to a more recent version of the Cloud SDK results in a Exception in thread "main" java.lang.NoClassDefFoundError: com/google/apphosting/runtime/SessionStore
exception[2].
If any additional information is needed or if this should be reported elsewhere please let me know. Thank you.
[1] CallNotFoundException stack trace:
[INFO] GCLOUD: INFO: Dev App Server is now running
[INFO] GCLOUD: 2025-02-10 20:49:23.268:WARN :oejs.CachingSessionDataStore:qtp2035070981-44: Unable to load id HKhykSO55ecwVvbd21POXA
[INFO] GCLOUD: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call memcache.Get in a thread that is neither the original request thread nor a thread created by ThreadManager
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$CallNotFoundException.foreignThread(ApiProxy.java:855)
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:183)
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:180)
[INFO] GCLOUD: at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:107)
[INFO] GCLOUD: at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:40)
[INFO] GCLOUD: at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:63)
[INFO] GCLOUD: at com.google.apphosting.runtime.MemcacheSessionStore.getSession(MemcacheSessionStore.java:46)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.MemcacheSessionDataMap.lambda$load$0(MemcacheSessionDataMap.java:68)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
[INFO] GCLOUD: at org.eclipse.jetty.session.SessionContext.run(SessionContext.java:92)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.MemcacheSessionDataMap.load(MemcacheSessionDataMap.java:64)
[INFO] GCLOUD: at org.eclipse.jetty.session.CachingSessionDataStore.load(CachingSessionDataStore.java:91)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.loadSession(AbstractSessionCache.java:391)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.lambda$getAndEnter$0(AbstractSessionCache.java:328)
[INFO] GCLOUD: at org.eclipse.jetty.session.NullSessionCache.doComputeIfAbsent(NullSessionCache.java:86)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.getAndEnter(AbstractSessionCache.java:321)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.get(AbstractSessionCache.java:302)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.getManagedSession(AbstractSessionManager.java:405)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.resolveRequestedSessionId(AbstractSessionManager.java:1293)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler$CoreSessionManager.resolveRequestedSessionId(SessionHandler.java:654)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:451)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:826)
[INFO] GCLOUD: at com.google.appengine.tools.development.jetty.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1424)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2385)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
[INFO] GCLOUD: at org.eclipse.jetty.server.Server.handle(Server.java:182)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
[INFO] GCLOUD: at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
[INFO] GCLOUD: at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
[INFO] GCLOUD: at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
[INFO] GCLOUD: at java.base/java.lang.Thread.run(Thread.java:1583)
[INFO] GCLOUD: 2025-02-10 20:49:23.269:WARN :oejs.AbstractSessionManager:qtp2035070981-44: Unable to get Session
[INFO] GCLOUD: java.lang.NullPointerException: Operation not allowed in a thread that is neither the original request thread nor a thread created by ThreadManager
[INFO] GCLOUD: at com.google.appengine.api.NamespaceManager.set(NamespaceManager.java:112)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.DatastoreSessionStore$SessionDataStoreImpl.createKeyForSession(DatastoreSessionStore.java:209)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.DatastoreSessionStore$SessionDataStoreImpl.doLoad(DatastoreSessionStore.java:196)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionDataStore.lambda$load$1(AbstractSessionDataStore.java:152)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
[INFO] GCLOUD: at org.eclipse.jetty.session.SessionContext.run(SessionContext.java:92)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionDataStore.load(AbstractSessionDataStore.java:160)
[INFO] GCLOUD: at org.eclipse.jetty.session.CachingSessionDataStore.load(CachingSessionDataStore.java:102)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.loadSession(AbstractSessionCache.java:391)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.lambda$getAndEnter$0(AbstractSessionCache.java:328)
[INFO] GCLOUD: at org.eclipse.jetty.session.NullSessionCache.doComputeIfAbsent(NullSessionCache.java:86)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.getAndEnter(AbstractSessionCache.java:321)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.get(AbstractSessionCache.java:302)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.getManagedSession(AbstractSessionManager.java:405)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.resolveRequestedSessionId(AbstractSessionManager.java:1293)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler$CoreSessionManager.resolveRequestedSessionId(SessionHandler.java:654)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:451)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:826)
[INFO] GCLOUD: at com.google.appengine.tools.development.jetty.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1424)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2385)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
[INFO] GCLOUD: at org.eclipse.jetty.server.Server.handle(Server.java:182)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
[INFO] GCLOUD: at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
[INFO] GCLOUD: at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
[INFO] GCLOUD: at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
[INFO] GCLOUD: at java.base/java.lang.Thread.run(Thread.java:1583)
[INFO] GCLOUD: 2025-02-10 20:49:23.290:WARN :oejs.CachingSessionDataStore:qtp2035070981-35: Unable to load id HKhykSO55ecwVvbd21POXA
[INFO] GCLOUD: com.google.apphosting.api.ApiProxy$CallNotFoundException: Can't make API call memcache.Get in a thread that is neither the original request thread nor a thread created by ThreadManager
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$CallNotFoundException.foreignThread(ApiProxy.java:855)
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:183)
[INFO] GCLOUD: at com.google.apphosting.api.ApiProxy$1.get(ApiProxy.java:180)
[INFO] GCLOUD: at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:107)
[INFO] GCLOUD: at com.google.appengine.api.memcache.MemcacheServiceImpl.quietGet(MemcacheServiceImpl.java:40)
[INFO] GCLOUD: at com.google.appengine.api.memcache.MemcacheServiceImpl.get(MemcacheServiceImpl.java:63)
[INFO] GCLOUD: at com.google.apphosting.runtime.MemcacheSessionStore.getSession(MemcacheSessionStore.java:46)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.MemcacheSessionDataMap.lambda$load$0(MemcacheSessionDataMap.java:68)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
[INFO] GCLOUD: at org.eclipse.jetty.session.SessionContext.run(SessionContext.java:92)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.MemcacheSessionDataMap.load(MemcacheSessionDataMap.java:64)
[INFO] GCLOUD: at org.eclipse.jetty.session.CachingSessionDataStore.load(CachingSessionDataStore.java:91)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.loadSession(AbstractSessionCache.java:391)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.lambda$getAndEnter$0(AbstractSessionCache.java:328)
[INFO] GCLOUD: at org.eclipse.jetty.session.NullSessionCache.doComputeIfAbsent(NullSessionCache.java:86)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.getAndEnter(AbstractSessionCache.java:321)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.get(AbstractSessionCache.java:302)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.getManagedSession(AbstractSessionManager.java:405)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.resolveRequestedSessionId(AbstractSessionManager.java:1293)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler$CoreSessionManager.resolveRequestedSessionId(SessionHandler.java:654)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:451)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:826)
[INFO] GCLOUD: at com.google.appengine.tools.development.jetty.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1424)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2385)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
[INFO] GCLOUD: at org.eclipse.jetty.server.Server.handle(Server.java:182)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
[INFO] GCLOUD: at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
[INFO] GCLOUD: at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
[INFO] GCLOUD: at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:195)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
[INFO] GCLOUD: at java.base/java.lang.Thread.run(Thread.java:1583)
[INFO] GCLOUD: 2025-02-10 20:49:23.290:WARN :oejs.AbstractSessionManager:qtp2035070981-35: Unable to get Session
[INFO] GCLOUD: java.lang.NullPointerException: Operation not allowed in a thread that is neither the original request thread nor a thread created by ThreadManager
[INFO] GCLOUD: at com.google.appengine.api.NamespaceManager.set(NamespaceManager.java:112)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.DatastoreSessionStore$SessionDataStoreImpl.createKeyForSession(DatastoreSessionStore.java:209)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.DatastoreSessionStore$SessionDataStoreImpl.doLoad(DatastoreSessionStore.java:196)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionDataStore.lambda$load$1(AbstractSessionDataStore.java:152)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1507)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.run(ContextHandler.java:1500)
[INFO] GCLOUD: at org.eclipse.jetty.session.SessionContext.run(SessionContext.java:92)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionDataStore.load(AbstractSessionDataStore.java:160)
[INFO] GCLOUD: at org.eclipse.jetty.session.CachingSessionDataStore.load(CachingSessionDataStore.java:102)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.loadSession(AbstractSessionCache.java:391)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.lambda$getAndEnter$0(AbstractSessionCache.java:328)
[INFO] GCLOUD: at org.eclipse.jetty.session.NullSessionCache.doComputeIfAbsent(NullSessionCache.java:86)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.getAndEnter(AbstractSessionCache.java:321)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionCache.get(AbstractSessionCache.java:302)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.getManagedSession(AbstractSessionManager.java:405)
[INFO] GCLOUD: at org.eclipse.jetty.session.AbstractSessionManager.resolveRequestedSessionId(AbstractSessionManager.java:1293)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler$CoreSessionManager.resolveRequestedSessionId(SessionHandler.java:654)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.SessionHandler.doScope(SessionHandler.java:451)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.nextScope(ScopedHandler.java:150)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.doScope(ContextHandler.java:826)
[INFO] GCLOUD: at com.google.appengine.tools.development.jetty.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ScopedHandler.handle(ScopedHandler.java:117)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler.handle(ContextHandler.java:1424)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1289)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.dispatch(HttpChannel.java:616)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.HttpChannel.handle(HttpChannel.java:459)
[INFO] GCLOUD: at org.eclipse.jetty.ee8.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:2385)
[INFO] GCLOUD: at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
[INFO] GCLOUD: at org.eclipse.jetty.server.Server.handle(Server.java:182)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
[INFO] GCLOUD: at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
[INFO] GCLOUD: at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
[INFO] GCLOUD: at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
[INFO] GCLOUD: at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:195)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
[INFO] GCLOUD: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
[INFO] GCLOUD: at java.base/java.lang.Thread.run(Thread.java:1583)
[2] NoClassDefFoundError stack trace:
INFO] GCLOUD: 2025-02-10 14:24:29.930 java[23740:23195694] +[IMKClient subclass]: chose IMKClient_Modern
[INFO] GCLOUD: 2025-02-10 14:24:29.931 java[23740:23195694] +[IMKInputSession subclass]: chose IMKInputSession_Modern
[INFO] GCLOUD: Exception in thread "main" java.lang.NoClassDefFoundError: com/google/apphosting/runtime/SessionStore
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
[INFO] GCLOUD: at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
[INFO] GCLOUD: at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:524)
[INFO] GCLOUD: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:427)
[INFO] GCLOUD: at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:421)
[INFO] GCLOUD: at java.base/java.security.AccessController.doPrivileged(AccessController.java:714)
[INFO] GCLOUD: at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:420)
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerClassLoader.loadClass(DevAppServerClassLoader.java:117)
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
[INFO] GCLOUD: at com.google.apphosting.runtime.jetty.SessionManagerHandler.create(SessionManagerHandler.java:75)
[INFO] GCLOUD: at com.google.appengine.tools.development.jetty.JettyContainerService.startContainer(JettyContainerService.java:390)
[INFO] GCLOUD: at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:293)
[INFO] GCLOUD: at com.google.appengine.tools.development.AutomaticInstanceHolder.startUp(AutomaticInstanceHolder.java:42)
[INFO] GCLOUD: at com.google.appengine.tools.development.AbstractModule.startup(AbstractModule.java:102)
[INFO] GCLOUD: at com.google.appengine.tools.development.Modules.startup(Modules.java:118)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerImpl.doStart(DevAppServerImpl.java:280)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerImpl.access$000(DevAppServerImpl.java:57)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:229)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerImpl$1.run(DevAppServerImpl.java:227)
[INFO] GCLOUD: at java.base/java.security.AccessController.doPrivileged(AccessController.java:571)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:227)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:381)
[INFO] GCLOUD: at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:58)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:239)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:230)
[INFO] GCLOUD: Caused by: java.lang.ClassNotFoundException: com.google.apphosting.runtime.SessionStore
[INFO] GCLOUD: at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
[INFO] GCLOUD: at com.google.appengine.tools.development.DevAppServerClassLoader.loadClass(DevAppServerClassLoader.java:117)
[INFO] GCLOUD: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
[INFO] GCLOUD: ... 27 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35.299 s
[INFO] Finished at: 2025-02-10T21:24:33Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:appengine-maven-plugin:2.8.0:run (default-cli) on project helloworld-jdk21: Failed to run devappserver: com.google.cloud.tools.appengine.operations.cloudsdk.process.ProcessHandlerException: com.google.cloud.tools.appengine.AppEngineException: Non zero exit: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException