You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ki...@apache.org on 2017/10/12 07:16:08 UTC

svn commit: r1811915 - in /commons/proper/jcs/trunk: commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/ commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/ src/changes/

Author: kinow
Date: Thu Oct 12 07:16:07 2017
New Revision: 1811915

URL: http://svn.apache.org/viewvc?rev=1811915&view=rev
Log:
JCS-184: move return statement outside of logging block

Added:
    commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/CompositeCacheManagerTest.java
Modified:
    commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java
    commons/proper/jcs/trunk/src/changes/changes.xml

Modified: commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java?rev=1811915&r1=1811914&r2=1811915&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java Thu Oct 12 07:16:07 2017
@@ -736,8 +736,8 @@ public class CompositeCacheManager
                 if ( log.isDebugEnabled() )
                 {
                     log.debug( "Release called, but " + clients + " remain" );
-                    return;
                 }
+                return;
             }
 
             if ( log.isDebugEnabled() )

Added: commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/CompositeCacheManagerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/CompositeCacheManagerTest.java?rev=1811915&view=auto
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/CompositeCacheManagerTest.java (added)
+++ commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/engine/control/CompositeCacheManagerTest.java Thu Oct 12 07:16:07 2017
@@ -0,0 +1,54 @@
+package org.apache.commons.jcs.engine.control;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import junit.framework.TestCase;
+
+import org.apache.commons.jcs.engine.CacheStatus;
+import org.apache.commons.jcs.engine.CompositeCacheAttributes;
+
+/** Unit tests for the composite cache manager */
+public class CompositeCacheManagerTest
+    extends TestCase
+{
+
+    /**
+     * Verify that calling release, when there are active clients, the caches are correctly disposed or not.
+     */
+    public void testRelease()
+    {
+        // See JCS-184
+        // create the manager
+        CompositeCacheManager manager = CompositeCacheManager.getInstance();
+        // add a simple cache
+        CompositeCacheAttributes cacheAttributes = new CompositeCacheAttributes();
+        CompositeCache<String, String> cache = new CompositeCache<>(cacheAttributes, /* attr */ null);
+        manager.addCache("simple_cache", cache);
+        // add a client to the cache
+        CompositeCacheManager.getUnconfiguredInstance();
+        // won't release as there are still clients. Only disposed when release() is called by
+        // the last client
+        manager.release();
+        assertEquals("The cache was disposed during release!", CacheStatus.ALIVE, cache.getStatus());
+        manager.release();
+        assertEquals("The cache was NOT disposed during release!", CacheStatus.DISPOSED, cache.getStatus());
+    }
+
+}

Modified: commons/proper/jcs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/src/changes/changes.xml?rev=1811915&r1=1811914&r2=1811915&view=diff
==============================================================================
--- commons/proper/jcs/trunk/src/changes/changes.xml (original)
+++ commons/proper/jcs/trunk/src/changes/changes.xml Thu Oct 12 07:16:07 2017
@@ -20,6 +20,9 @@
 	</properties>
 	<body>
         <release version="3.0" date="unreleased">
+            <action dev="kinow" type="fix" due-to="athun">
+                Unexpected dispose() in CompositeCacheManager.release()
+            </action>
             <action dev="tv" type="remove">
                 Remove dependency on velocity-tools
             </action>