magro / memcached-session-manager

A tomcat session manager that backups sessions in memcached and pulls them from there if asked for unknown sessions
Apache License 2.0
760 stars 346 forks source link

tomcat 9, openjdk 10.0.1 error : java.lang.NoSuchFieldException: parentOffset #386

Closed AlbertTj closed 5 years ago

AlbertTj commented 6 years ago

hi all i had an issue from fresh installation, hope can help me

12-Aug-2018 10:09:57.207 INFO [http-nio-8080-exec-8] de.javakaffee.web.msm.BackupSessionService.backupSession Could not store session ACFAFCA140E520F8183B42466BA8B10E-n2 in memcached. java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.NoSuchFieldException: parentOffset at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:347) at de.javakaffee.web.msm.BackupSessionService.backupSession(BackupSessionService.java:204) at de.javakaffee.web.msm.MemcachedSessionService.backupSession(MemcachedSessionService.java:1098) at de.javakaffee.web.msm.RequestTrackingHostValve.backupSession(RequestTrackingHostValve.java:232) at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:161) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:844) Caused by: java.lang.RuntimeException: java.lang.NoSuchFieldException: parentOffset at de.javakaffee.kryoserializers.SubListSerializers$ArrayListSubListSerializer.<init>(SubListSerializers.java:105) at de.javakaffee.kryoserializers.SubListSerializers$ArrayListSubListSerializer.addDefaultSerializer(SubListSerializers.java:121) at de.javakaffee.kryoserializers.SubListSerializers.addDefaultSerializers(SubListSerializers.java:78) at de.javakaffee.web.msm.serializer.kryo.KryoTranscoder$1.create(KryoTranscoder.java:129) at com.esotericsoftware.kryo.pool.KryoPoolQueueImpl.borrow(KryoPoolQueueImpl.java:48) at de.javakaffee.web.msm.serializer.kryo.KryoTranscoder.serializeAttributes(KryoTranscoder.java:230) at de.javakaffee.web.msm.TranscoderService.serializeAttributes(TranscoderService.java:151) at de.javakaffee.web.msm.BackupSessionTask.serializeAttributes(BackupSessionTask.java:179) at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:109) at de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:50) at de.javakaffee.web.msm.BackupSessionService$SynchronousExecutorService.submit(BackupSessionService.java:345) ... 17 more Caused by: java.lang.NoSuchFieldException: parentOffset at java.base/java.lang.Class.getDeclaredField(Class.java:2370) at de.javakaffee.kryoserializers.SubListSerializers$ArrayListSubListSerializer.<init>(SubListSerializers.java:99) ... 27 more

openjdk 10.0.1 2018-04-17 OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode) tomcat version 9.0.10

shuxte commented 5 years ago

应该是jdk的问题,我也遇到这个情况了,后来把jdk降级到8就可以了。

magro commented 5 years ago

Seems to be an issue of kryo-serializers with openjdk 10.

magro commented 5 years ago

Fixed with https://github.com/magro/kryo-serializers/pull/106 (released with kryo-serializers 0.45). Please override the version of kryo-serializers in your pom.xml by adding

<dependency>
  <groupId>de.javakaffee</groupId>
  <artifactId>kryo-serializers</artifactId>
  <version>0.45</version>
</dependency>