Git Product home page Git Product logo

hibernate4-memcached's Introduction

hibernate4-memcached's People

Contributors

kwon37xi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hibernate4-memcached's Issues

SpyMemcachedAdapter에 cachekeyprefix 지정

CacheKeyPrefix를 지정할 수 있도록 하여, 하나의 memcached 서버군에서 여러 용도의 캐시가 존재할 때에 대비한 네임스페이스를 확보한다.

Cache is not multitenant-safe

The query cache happens to be multitenant-safe since its refineKey includes the hashCode of the QueryKey (presumably to guard against MD5 collisions between queries). The rest of the caches, however, only use the string representation of the key in refineKey, which does not include the tenant identifier. Hibernate does not include an easy way to get this identifier outside of the hashCode of the CacheKey, so while that isn't ideal, it still needs to be included in all keys.

rollback test

update/delete 등을 한 뒤에 flush를 하고서,
최종적으로 rollback을 했을 때의 반응 살펴보기.

ClassNotFoundException: kr.pe.kwonnam.hibernate4memcached.spymemcached.SpyMemcachedAdapter

Hello,

I'm getting a ClassNotFoundException while my application is booting up.

Looking over the packages, it seems its completely missing from the JAR itself:

http://mvnrepository.com/artifact/kr.pe.kwonnam.hibernate4memcached/hibernate4-memcached-core/0.6

Packages

kr.pe.kwonnam.hibernate4memcached
kr.pe.kwonnam.hibernate4memcached.memcached
kr.pe.kwonnam.hibernate4memcached.regions
kr.pe.kwonnam.hibernate4memcached.strategies
kr.pe.kwonnam.hibernate4memcached.timestamper
kr.pe.kwonnam.hibernate4memcached.util

Where is kr.pe.kwonnam.hibernate4memcached.spymemcached package?

Classloader can't find my own classes

Hi

I upgraded my play framework application to use hibernate 4.2.15 and switched from the com.googlecode.xmemcached cache project to this one.

When I'm doing a query I get a ClassNotFoundException inside your code.

It's pretty hard to find out if it's hibernate that creates a classloader that doesn't see my classes, or if it's play, or if it's your code that does it somehow. So this might not be an issue in this project.

I'm attaching the stacktrace that I get when I try to do a JPA.em().createNamedQuery(namedQuery).getResultList().

play.exceptions.JavaExecutionException: models.common.retailer.RetailerTransportPoint class is not found.
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:228)
        at Invocation.HTTP Request(Play!)
    Caused by: java.lang.IllegalArgumentException: models.common.retailer.RetailerTransportPoint class is not found.
        at kr.pe.kwonnam.hibernate4memcached.regions.CacheItem.getSubclassName(CacheItem.java:83)
        at kr.pe.kwonnam.hibernate4memcached.regions.CacheItem.parseTargetClass(CacheItem.java:57)
        at kr.pe.kwonnam.hibernate4memcached.regions.CacheItem.<init>(CacheItem.java:53)
        at kr.pe.kwonnam.hibernate4memcached.regions.GeneralDataMemcachedRegion.put(GeneralDataMemcachedRegion.java:80)
        at kr.pe.kwonnam.hibernate4memcached.strategies.MemcachedRegionAccessStrategy.putFromLoad(MemcachedRegionAccessStrategy.java:52)
        at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:219)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)
        at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1112)
        at org.hibernate.loader.Loader.processResultSet(Loader.java:969)
        at org.hibernate.loader.Loader.doQuery(Loader.java:917)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:348)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:318)
        at org.hibernate.loader.Loader.loadEntity(Loader.java:2145)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3939)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:462)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:431)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadByDerivedIdentitySimplePkValue(DefaultLoadEventListener.java:179)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:124)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1017)
        at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:944)
        at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:714)
        at org.hibernate.type.EntityType.resolve(EntityType.java:502)
        at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168)
        at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)
        at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1112)
        at org.hibernate.loader.Loader.processResultSet(Loader.java:969)
        at org.hibernate.loader.Loader.doQuery(Loader.java:917)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:348)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:318)
        at org.hibernate.loader.Loader.loadEntity(Loader.java:2145)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:82)
        at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:72)
        at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3939)
        at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:462)
        at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:431)
        at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:208)
        at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:264)
        at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1017)
        at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:944)
        at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:714)
        at org.hibernate.type.ManyToOneType.assemble(ManyToOneType.java:282)
        at org.hibernate.cache.internal.StandardQueryCache.get(StandardQueryCache.java:170)
        at org.hibernate.loader.Loader.getResultFromQueryCache(Loader.java:2477)
        at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2385)
        at org.hibernate.loader.Loader.list(Loader.java:2358)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:495)
        at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:357)
        at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:198)
        at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1194)
        at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
        at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:287)
        at common.util.JPAWrapper.getQueryCachedSingleResultFromNamedQuery(JPAWrapper.java:363)
        at controllers.retailer.Retailers.show(Retailers.java:1297)
        at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:524)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:475)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:451)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:446)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:160)
        ... 1 more
    Caused by: java.lang.ClassNotFoundException: models.common.retailer.RetailerTransportPoint
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at kr.pe.kwonnam.hibernate4memcached.regions.CacheItem.getSubclassName(CacheItem.java:81)
        ... 61 more

Kryo Serializing error

spring4(MVC)+hibernate4+memcached+mysql os:windows+tomcat7+jdk1.6

threw exception [Request processing failed; nested exception is
com.esotericsoftware.kryo.KryoException:
java.util.ConcurrentModificationException

libs:

hibernate4-memcached-core-0.6
hibernate4-memcached-spymemcached-adapter-0.6
kryo-2.24.0
kryo-serializers-0.27
lz4-1.2.0
minlog-1.2
objenesis-1.2
reflectasm-1.09
spymemcached-2.10.3
spring-4.0.2.RELEASE
hibernate-4.3.6.Final

full error

threw exception [Request processing failed; nested exception is com.esotericsoftware.kryo.KryoException: java.util.ConcurrentModificationException
Serialization trace:
classes (sun.misc.Launcher$AppClassLoader)
classloader (java.security.ProtectionDomain)
context (java.security.AccessControlContext)
acc (org.apache.catalina.loader.StandardClassLoader)
classloader (java.security.ProtectionDomain)
context (java.security.AccessControlContext)
acc (org.apache.catalina.loader.WebappClassLoader)
referent (java.util.ResourceBundle$LoaderReference)
loaderRef (java.util.ResourceBundle$CacheKey)
cacheKey (java.util.PropertyResourceBundle)
catalog (java.util.logging.Logger)
referent (java.lang.ref.WeakReference)
kids (java.util.logging.LogManager$RootLogger)
parent (java.util.logging.Logger)
loggers (java.util.logging.LogManager)
manager (java.util.logging.Logger)
logger (org.slf4j.impl.JDK14LoggerAdapter)
log (kr.pe.kwonnam.hibernate4memcached.regions.CacheItem)] with root cause
java.util.ConcurrentModificationException
    at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
    at java.util.AbstractList$Itr.next(AbstractList.java:343)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:81)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:22)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
    at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:348)
    at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:289)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:577)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:68)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
    at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:348)
    at com.esotericsoftware.kryo.serializers.DefaultArraySerializers$ObjectArraySerializer.write(DefaultArraySerializers.java:289)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:577)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:68)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:577)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:68)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObjectOrNull(Kryo.java:577)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:68)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:82)
    at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:22)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
    at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:95)
    at com.esotericsoftware.kryo.serializers.MapSerializer.write(MapSerializer.java:21)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
    at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
    at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:42)
    at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599)
    at kr.pe.kwonnam.hibernate4memcached.spymemcached.KryoTranscoder.kryoEncode(KryoTranscoder.java:94)
    at kr.pe.kwonnam.hibernate4memcached.spymemcached.KryoTranscoder.encode(KryoTranscoder.java:76)
    at net.spy.memcached.MemcachedClient.asyncStore(MemcachedClient.java:296)
    at net.spy.memcached.MemcachedClient.set(MemcachedClient.java:884)
    at net.spy.memcached.MemcachedClient.set(MemcachedClient.java:137)
    at kr.pe.kwonnam.hibernate4memcached.spymemcached.SpyMemcachedAdapter.set(SpyMemcachedAdapter.java:154)
    at kr.pe.kwonnam.hibernate4memcached.regions.GeneralDataMemcachedRegion.put(GeneralDataMemcachedRegion.java:82)
    at kr.pe.kwonnam.hibernate4memcached.strategies.MemcachedRegionAccessStrategy.putFromLoad(MemcachedRegionAccessStrategy.java:46)
    at org.hibernate.engine.internal.TwoPhaseLo
ad.doInitializeEntity(TwoPhaseLoad.java:221)
    at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144)
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1114)
    at org.hibernate.loader.Loader.processResultSet(Loader.java:972)
    at org.hibernate.loader.Loader.doQuery(Loader.java:920)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:354)
    at org.hibernate.loader.Loader.doList(Loader.java:2553)
    at org.hibernate.loader.Loader.doList(Loader.java:2539)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2369)
    at org.hibernate.loader.Loader.list(Loader.java:2364)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:496)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:231)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at org.springframework.orm.hibernate4.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:875)
    at org.springframework.orm.hibernate4.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:864)
    at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:340)
    at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:308)
    at org.springframework.orm.hibernate4.HibernateTemplate.find(HibernateTemplate.java:864)
----- .......
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
    at $Proxy22.getXXX(Unknown Source)
    at com.xxxx.controller.XXxController.fetchXxx(XXxController.java:51)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at de.javakaffee.web.msm.RequestTrackingContextValve.invoke(RequestTrackingContextValve.java:99)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:124)
    at de.javakaffee.web.msm.RequestTrackingHostValve.invoke(RequestTrackingHostValve.java:156)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:619)

Exception "could not set a field value by reflection" with enum and "object references an unsaved transient instance : save the transient instance before flushing"

I'm switching to memcached and since the introduction I get this error when an Enum value for a cached object is deserialized.
Also a try to save a new created entity is erroneously rejected with "object references an unsaved transient instance"

What could be the reason? In the debugger the cached enum value and the target object are looking good, all POJO criterias are met, it was working before.When turning off the cache all tests are working.

The deserialization exception is raised in around org/hibernate/tuple/entity/AbstractEntityTuplizer.java:712 / org/hibernate/property/DirectPropertyAccessor.java:122

org.springframework.orm.jpa.JpaSystemException: org.hibernate.PropertyAccessException: could not set a field value by reflection setter of foobar.Person.gender; nested exception is javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not set a field value by reflection setter of foobar.Person.gender

Generated key is too long when a QueryKey from StandardQueryCache is used as key

GeneralDataMemcachedRegion.refineKey does a toString on Hibernate's provided key. This works fine when it's used as 2nd level cache as it's provided a CacheKey object which generates a relatively short toString string.

When used as standard query cache a QueryKey object is provided. The toString of the QueryKey is possibly long as it includes the whole SQL and this is quite often longer than the allowed 250 chars of a Memcached key.

The multitenant issue (#15) is in the same method, will do a PR to fix them both.

Support isMinimalPuts

With isMinimalPuts option, Hibernate cache minimalize unnecessary put operations.
Support isMinimalPuts with memcached get feature.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.