Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Session handling issue with Java21 EE8 and Cloud SDK 449.0.0+ #342

@ryantgraham

Description

@ryantgraham

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:

  1. Edit pom.xml to replace:
     <dependency>
       <groupId>jakarta.servlet</groupId>
       <artifactId>jakarta.servlet-api</artifactId>
       <version>6.1.0</version>
       <type>jar</type>
       <scope>provided</scope>
     </dependency>
    with:
     <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>4.0.1</version>
       <type>jar</type>
       <scope>provided</scope>
     </dependency>
  2. Edit HelloAppEngine.java to replace the jakarta.servlet imports with javax.servlet.
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions