Details

      Description

      Upgrade Ehcache version to 2.6.5

        Issue Links

          Activity

          Hide
          edward.han Edward Han added a comment -

          A quirk picked up by the upgrade:

          18:52:06,473 ERROR [com.liferay.portlet.layoutconfiguration.util.RuntimePageImpl
          -1][AdvancedPermissionChecker:905] java.lang.ClassCastException: net.sf.ehcache.
          store.chm.SelectableConcurrentHashMap$DummyPinnedKey cannot be cast to com.lifer
          ay.portal.security.permission.PermissionCacheUtil$BagKey
          java.lang.ClassCastException: net.sf.ehcache.store.chm.SelectableConcurrentHashM
          ap$DummyPinnedKey cannot be cast to com.liferay.portal.security.permission.Permi
          ssionCacheUtil$BagKey
          at com.liferay.portal.security.permission.PermissionCacheUtil$BagKey.equ
          als(PermissionCacheUtil.java:225)
          at net.sf.ehcache.Element.equals(Element.java:318)
          at net.sf.ehcache.store.chm.SelectableConcurrentHashMap$Segment.get(Sele
          ctableConcurrentHashMap.java:876)
          at net.sf.ehcache.store.chm.SelectableConcurrentHashMap.get(SelectableCo
          ncurrentHashMap.java:360)
          at net.sf.ehcache.store.MemoryStore.get(MemoryStore.java:300)
          at net.sf.ehcache.store.MemoryOnlyStore.get(MemoryOnlyStore.java:107)
          at net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2072)
          at net.sf.ehcache.Cache.get(Cache.java:1590)
          at net.sf.ehcache.Cache.get(Cache.java:1557)
          at com.liferay.portal.cache.ehcache.EhcachePortalCache.get(EhcachePortal
          Cache.java:61)

          Examining further, but it appears that with the introduction of pinning we can no longer be sure that all the keys in a cache will have been placed there by us. In other words, we may have to do instanceof checks when we implement keys with custom equals checks.

          Show
          edward.han Edward Han added a comment - A quirk picked up by the upgrade: 18:52:06,473 ERROR [com.liferay.portlet.layoutconfiguration.util.RuntimePageImpl -1] [AdvancedPermissionChecker:905] java.lang.ClassCastException: net.sf.ehcache. store.chm.SelectableConcurrentHashMap$DummyPinnedKey cannot be cast to com.lifer ay.portal.security.permission.PermissionCacheUtil$BagKey java.lang.ClassCastException: net.sf.ehcache.store.chm.SelectableConcurrentHashM ap$DummyPinnedKey cannot be cast to com.liferay.portal.security.permission.Permi ssionCacheUtil$BagKey at com.liferay.portal.security.permission.PermissionCacheUtil$BagKey.equ als(PermissionCacheUtil.java:225) at net.sf.ehcache.Element.equals(Element.java:318) at net.sf.ehcache.store.chm.SelectableConcurrentHashMap$Segment.get(Sele ctableConcurrentHashMap.java:876) at net.sf.ehcache.store.chm.SelectableConcurrentHashMap.get(SelectableCo ncurrentHashMap.java:360) at net.sf.ehcache.store.MemoryStore.get(MemoryStore.java:300) at net.sf.ehcache.store.MemoryOnlyStore.get(MemoryOnlyStore.java:107) at net.sf.ehcache.Cache.searchInStoreWithoutStats(Cache.java:2072) at net.sf.ehcache.Cache.get(Cache.java:1590) at net.sf.ehcache.Cache.get(Cache.java:1557) at com.liferay.portal.cache.ehcache.EhcachePortalCache.get(EhcachePortal Cache.java:61) Examining further, but it appears that with the introduction of pinning we can no longer be sure that all the keys in a cache will have been placed there by us. In other words, we may have to do instanceof checks when we implement keys with custom equals checks.
          Hide
          brian.chan Brian Chan added a comment -

          Rolled back because the latest Ehcahe has too many regressions.

          Show
          brian.chan Brian Chan added a comment - Rolled back because the latest Ehcahe has too many regressions.
          Hide
          willtran Will Tran (Inactive) added a comment -

          If you ensure all multi-vm caches are created up-front by defining them in liferay-multi-vm-clustered.xml, the latest EHCache should work. I ran into this problem when another WebApplicationClassloader containing my custom portlets would try to create a cache in the MultiVMPool because it didn't already exist. This would ususally happen during startup.

          Show
          willtran Will Tran (Inactive) added a comment - If you ensure all multi-vm caches are created up-front by defining them in liferay-multi-vm-clustered.xml, the latest EHCache should work. I ran into this problem when another WebApplicationClassloader containing my custom portlets would try to create a cache in the MultiVMPool because it didn't already exist. This would ususally happen during startup.
          Hide
          michael.han Michael Han added a comment -

          Regressions are due to performance regressions. Terracotta in process of fixing. May reapply if latest version satisfy our perf requirements.

          Show
          michael.han Michael Han added a comment - Regressions are due to performance regressions. Terracotta in process of fixing. May reapply if latest version satisfy our perf requirements.

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development

                  Subcomponents