Uploaded image for project: 'Cache Modules'
  1. Cache Modules
  2. MGNLCACHE-224

EhcacheFactory#getCache not synchronized

    XMLWordPrintable

Details

    • Yes
    • Maintenance 1
    • 0

    Description

      It was discovered that not having #getCache synchronized can lead to error like this:

      java.lang.IllegalArgumentException: Cache 'DockContainerCacheKey' already exists at org.ehcache.core.EhcacheManager.createCache(EhcacheManager.java:268) ~[ehcache-core-3.7.1.jar:3.7.1 7db6abb761a35015a750b7477e865482e97e24fb] at org.ehcache.core.EhcacheManager.createCache(EhcacheManager.java:254) ~[ehcache-core-3.7.1.jar:3.7.1 7db6abb761a35015a750b7477e865482e97e24fb] at info.magnolia.module.cache.ehcache3.EhCache3Factory.createCache(EhCache3Factory.java:136) ~[magnolia-cache-ehcache3-5.8.1.jar:?] at info.magnolia.module.cache.ehcache3.EhCache3Factory.getCache(EhCache3Factory.java:123) ~[magnolia-cache-ehcache3-5.8.1.jar:?] at info.magnolia.module.cache.factory.DelegatingCacheFactory.getCache(DelegatingCacheFactory.java:58) ~[magnolia-cache-core-5.8.1.jar:?] at at.wundermanpxp.xyz.utils.DockUtils.getDockContainer(DockUtils.java:997) ~[xyz-templates-1.0.136.jar:?] at at.wundermanpxp.xyz.utils.DockUtils.getDockContainer(DockUtils.java:993) ~[xyz-templates-1.0.136.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_221] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_221] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_221] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_221] at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1505) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.ext.beans.ReflectionCallableMemberDescriptor.invokeMethod(ReflectionCallableMemberDescriptor.java:56) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.ext.beans.MemberAndArguments.invokeMethod(MemberAndArguments.java:51) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.ext.beans.OverloadedMethodsModel.exec(OverloadedMethodsModel.java:61) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.MethodCall._eval(MethodCall.java:65) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Expression.eval(Expression.java:83) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Assignment.accept(Assignment.java:134) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Environment.visit(Environment.java:330) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Environment.visit(Environment.java:336) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Environment.visit(Environment.java:336) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Environment.visit(Environment.java:336) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.core.Environment.process(Environment.java:309) ~[freemarker-2.3.28.jar:2.3.28] at freemarker.template.Template.process(Template.java:384) ~[freemarker-2.3.28.jar:2.3.28] at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:171) ~[magnolia-freemarker-support-6.1.3.jar:?] at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.jav
      

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              rkovarik Roman Kovařík
              rgange Richard Gange
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Checklists

                  Bug DoR
                  Task DoD

                  Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Time Spent - 1h 4m Remaining Estimate - 1h
                    1h
                    Logged:
                    Time Spent - 1h 4m Remaining Estimate - 1h
                    1h 4m