Skip to content

java.lang.NoSuchMethodError: com.google.code.ssm.json.ClassAliasIdResolver._idFrom(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/String; #64

@aronk

Description

@aronk

There seems to be a dependency compatibility issue between Simple Spring Memcached (xmemcached) 3.6.1 (and 3.6.0) and Jackson 2.8.1 since we upgraded to Spring to 4.3.2.

Specifically, the issue comes when the class com.google.code.ssm.json.ClassAliasIdResolver.idFromValueAndType.java
tries to call:
[:71] return _idFrom(value, type);

The target of which is meant to be:
[:81] protected final String com.fasterxml.jackson.databind.jsontype.impl.ClassNameIdResolver._idFrom(Object value, Class<?> cls, TypeFactory typeFactory)

As a result a NoSuchMethodError is thrown:

java.lang.NoSuchMethodError: com.google.code.ssm.json.ClassAliasIdResolver._idFrom(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/String;
    at com.google.code.ssm.json.ClassAliasIdResolver.idFromValueAndType(ClassAliasIdResolver.java:71) ~[simple-spring-memcached-3.6.1.jar:na]
    at com.google.code.ssm.json.ClassAliasIdResolver.idFromValue(ClassAliasIdResolver.java:58) ~[simple-spring-memcached-3.6.1.jar:na]
    at com.fasterxml.jackson.databind.jsontype.impl.TypeSerializerBase.idFromValue(TypeSerializerBase.java:36) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.jsontype.impl.AsWrapperTypeSerializer.writeTypePrefixForObject(AsWrapperTypeSerializer.java:36) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeWithType(BeanSerializerBase.java:573) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:695) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:690) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:292) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3672) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:3005) ~[jackson-databind-2.8.1.jar:2.8.1]
    at com.google.code.ssm.transcoders.JsonTranscoder.encode(JsonTranscoder.java:95) ~[simple-spring-memcached-3.6.1.jar:na]
    at com.google.code.ssm.providers.xmemcached.TranscoderAdapter.encode(TranscoderAdapter.java:48) ~[xmemcached-provider-3.6.1.jar:na]
    at net.rubyeye.xmemcached.command.text.TextStoreCommand.encodeValue(TextStoreCommand.java:199) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.command.text.TextStoreCommand.encode(TextStoreCommand.java:155) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.impl.MemcachedTCPSession.wrapMessage(MemcachedTCPSession.java:178) ~[xmemcached-2.0.1.jar:na]
    at com.google.code.yanf4j.core.impl.AbstractSession.write(AbstractSession.java:382) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.impl.MemcachedConnector.send(MemcachedConnector.java:513) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.XMemcachedClient.sendCommand(XMemcachedClient.java:327) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.XMemcachedClient.sendStoreCommand(XMemcachedClient.java:2510) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1352) ~[xmemcached-2.0.1.jar:na]
    at net.rubyeye.xmemcached.XMemcachedClient.set(XMemcachedClient.java:1422) ~[xmemcached-2.0.1.jar:na]
    at com.google.code.ssm.providers.xmemcached.MemcacheClientWrapper.set(MemcacheClientWrapper.java:250) ~[xmemcached-provider-3.6.1.jar:na]
    at com.google.code.ssm.CacheImpl.set(CacheImpl.java:299) ~[simple-spring-memcached-3.6.1.jar:na]
    at com.google.code.ssm.CacheImpl.set(CacheImpl.java:125) ~[simple-spring-memcached-3.6.1.jar:na]
    at com.google.code.ssm.spring.SSMCache.put(SSMCache.java:180) ~[spring-cache-3.6.1.jar:na]
    at org.springframework.cache.interceptor.AbstractCacheInvoker.doPut(AbstractCacheInvoker.java:82) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.cache.interceptor.CacheAspectSupport$CachePutRequest.apply(CacheAspectSupport.java:780) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:428) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:327) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61) ~[spring-context-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) ~[spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
    at com.qantasloyalty.lsl.member.service.MemberProfileService$$EnhancerBySpringCGLIB$$2e7ce384.getMember(<generated>) ~[classes/:na]
    at com.qantasloyalty.lsl.member.v1.controller.MemberServicesController.retrieveMemberProfile(MemberServicesController.java:63) ~[classes/:na]

Any ideas or suggestions would be really appreciated ?

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions