Author: gk
Date: Thu Jun  6 15:12:48 2019
New Revision: 1860719

URL: http://svn.apache.org/viewvc?rev=1860719&view=rev
Log:
- fix check of pool type: isInstanceOf returns false in in tests + tomcat - 
avalon proxy / class loading issue? This might exhaust a pool.
- fix pool test as external object is not in service

Modified:
    
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
    
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/CookieParserPoolTest.java
    
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/ParameterParserPoolTest.java

Modified: 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java?rev=1860719&r1=1860718&r2=1860719&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultParserService.java
 Thu Jun  6 15:12:48 2019
@@ -313,16 +313,21 @@ public class DefaultParserService
         if ( parser.getClass().isInstance(BaseValueParser.class) )
         {
                        valueParserPool.returnObject( (BaseValueParser) parser 
);
-        }
-
-        if ( parser.getClass().isInstance(DefaultParameterParser.class) )
+                       
+        } else if ( parser.getClass().isInstance(DefaultParameterParser.class) 
||
+                parser instanceof DefaultParameterParser)
         {
                parameterParserPool.returnObject( (DefaultParameterParser) 
parser );
-        }
-
-        if ( parser.getClass().isInstance(DefaultCookieParser.class) )
+               
+        } else if ( parser.getClass().isInstance(DefaultCookieParser.class) ||
+                parser instanceof DefaultCookieParser)
         {
                cookieParserPool.returnObject( (DefaultCookieParser) parser );
+               
+        } else {
+            // log
+            getLogger().warn(parser.getClass() + " could not be put back into 
any pool exhausting some pool");
+            // log even borrowed count of each pool?: 
cookieParserPool.getBorrowedCount())
         }
     }
 

Modified: 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/CookieParserPoolTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/CookieParserPoolTest.java?rev=1860719&r1=1860718&r2=1860719&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/CookieParserPoolTest.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/CookieParserPoolTest.java
 Thu Jun  6 15:12:48 2019
@@ -70,7 +70,9 @@ public class CookieParserPoolTest extend
     @AfterEach
     public void tearDown()
     {
-        parserService.putParser(parser);
+        // pool object already explicitely released by call to returnObject in 
test
+        // will throw java.lang.IllegalStateException, as pool is external to 
parserService
+        //parserService.putParser(parser);
         this.release(parserService);
     }
     

Modified: 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/ParameterParserPoolTest.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/ParameterParserPoolTest.java?rev=1860719&r1=1860718&r2=1860719&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/ParameterParserPoolTest.java
 (original)
+++ 
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/pool/ParameterParserPoolTest.java
 Thu Jun  6 15:12:48 2019
@@ -84,7 +84,9 @@ public class ParameterParserPoolTest ext
     @AfterEach
     public void tearDown()
     {
-        parserService.putParser(parser);
+        // pool object already explicitely released by call to returnObject in 
test
+        // will throw java.lang.IllegalStateException, as pool is external to 
parserService
+        //parserService.putParser(parser);
         this.release(parserService);
     }
     


Reply via email to