[ http://issues.apache.org/jira/browse/IBATIS-171?page=all ]
Clinton Begin updated IBATIS-171:
---------------------------------
Summary: Possible Memory Leak (was: iBatis Memory Leak Bug!)
> Possible Memory Leak
> ---------------------
>
> Key: IBATIS-171
> URL: http://issues.apache.org/jira/browse/IBATIS-171
> Project: iBatis for Java
> Type: Bug
> Components: Build/Deployment
> Versions: 2.1.0
> Environment: OS:Solars10.5
> Hardware:P3 128M RAM,40G HD
> Reporter: kevinliu
> Priority: Critical
>
> I'm a China programer.It's very happy for writing this letter to u.
> When i had used ibatis 2.0.9b,i met a trouble:my program take a lot of
> memory for work to make my solaris halt by memory leak..And then i checked my
> program and use profiler to test it,i found some ibatis class maybe has
> memory leak at the "hashMap" class.
> So i opened the ibatis source code,and found some code as
> "\com\ibatis\sqlmap\engine\builder\xml\BaseParser.java" and
> "SqlMapExecutorDelegate.java" etc which used one or one more hashmap to store
> some data,But they didn't release these hashmap by "remove" or "clear"
> statement.I think them take my program to death and eat too many memory.
> Please help us who using and loving iBatis..:-) Waiting for your
> reply.THX!
>
> This is the list that some trouble java file in iBatis 2.10 with this
> problem:
> ----------------------------------------
> \com\ibatis\sqlmap\engine\builder\xml\BaseParser.java' :
> \com\ibatis\sqlmap\engine\builder\xml\BaseParser.java(22): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\builder\xml\BaseParser.java(130): public Map
> sqlIncludes = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\cache\CacheModel.java' :
> \com\ibatis\sqlmap\engine\cache\CacheModel.java(31): private static final
> Map lockMap = new HashMap();
> Found 'hashmap' 1 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\cache\fifo\FifoCacheController.java' :
> \com\ibatis\sqlmap\engine\cache\fifo\FifoCacheController.java(19): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\cache\fifo\FifoCacheController.java(42):
> this.cache = Collections.synchronizedMap(new HashMap());
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\cache\lru\LruCacheController.java' :
> \com\ibatis\sqlmap\engine\cache\lru\LruCacheController.java(19): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\cache\lru\LruCacheController.java(42):
> this.cache = Collections.synchronizedMap(new HashMap());
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheController.java' :
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheController.java(24): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheController.java(34):
> private Map cache = Collections.synchronizedMap(new HashMap());
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheLevel.java' :
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheLevel.java(20): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\cache\memory\MemoryCacheLevel.java(28): private
> static Map cacheLevelMap = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\exchange\MapDataExchange.java' :
> \com\ibatis\sqlmap\engine\exchange\MapDataExchange.java(25): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\exchange\MapDataExchange.java(61): map = new
> HashMap();
> \com\ibatis\sqlmap\engine\exchange\MapDataExchange.java(79): map = new
> HashMap();
> Found 'hashmap' 3 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java' :
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(47): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(82): private
> HashMap mappedStatements;
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(83): private
> HashMap cacheModels;
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(84): private
> HashMap resultMaps;
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(85): private
> HashMap parameterMaps;
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(98):
> mappedStatements = new HashMap();
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(99):
> cacheModels = new HashMap();
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(100):
> resultMaps = new HashMap();
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(101):
> parameterMaps = new HashMap();
> \com\ibatis\sqlmap\engine\impl\SqlMapExecutorDelegate.java(698): Map map
> = new HashMap();
> Found 'hashmap' 10 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\parameter\BasicParameterMap.java' :
> \com\ibatis\sqlmap\engine\mapping\parameter\BasicParameterMap.java(30):
> import java.util.HashMap;
> \com\ibatis\sqlmap\engine\mapping\parameter\BasicParameterMap.java(44):
> private Map parameterMappingIndex = new HashMap();
> \com\ibatis\sqlmap\engine\mapping\parameter\BasicParameterMap.java(89):
> Map props = new HashMap();
> Found 'hashmap' 3 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\result\AutoResultMap.java' :
> \com\ibatis\sqlmap\engine\mapping\result\AutoResultMap.java(29): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\mapping\result\AutoResultMap.java(75): Map
> propertyMap = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\result\BasicResultMap.java' :
> \com\ibatis\sqlmap\engine\mapping\result\BasicResultMap.java(253): Map
> props = new HashMap();
> \com\ibatis\sqlmap\engine\mapping\result\BasicResultMap.java(329):
> uniqueKeys = new HashMap();
> \com\ibatis\sqlmap\engine\mapping\result\BasicResultMap.java(505):
> parameterObject = new HashMap();
> Found 'hashmap' 3 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\result\Discriminator.java' :
> \com\ibatis\sqlmap\engine\mapping\result\Discriminator.java(6): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\mapping\result\Discriminator.java(37):
> subMaps = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagContext.java' :
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagContext.java(21):
> import java.util.HashMap;
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagContext.java(32):
> private HashMap attributes;
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagContext.java(45):
> attributes = new HashMap();
> Found 'hashmap' 3 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagHandlerFactory.java'
> :
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagHandlerFactory.java(18):
> import java.util.HashMap;
> \com\ibatis\sqlmap\engine\mapping\sql\dynamic\elements\SqlTagHandlerFactory.java(23):
> private static final Map HANDLER_MAP = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\scope\BaseScope.java' :
> \com\ibatis\sqlmap\engine\scope\BaseScope.java(18): import java.util.HashMap;
> \com\ibatis\sqlmap\engine\scope\BaseScope.java(25): private HashMap map =
> new HashMap(0);
> Found 'hashmap' 3 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\scope\RequestScope.java' :
> \com\ibatis\sqlmap\engine\scope\RequestScope.java(25): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\scope\RequestScope.java(207): uniqueKeys =
> new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\type\JdbcTypeRegistry.java' :
> \com\ibatis\sqlmap\engine\type\JdbcTypeRegistry.java(19): import
> java.util.HashMap;
> \com\ibatis\sqlmap\engine\type\JdbcTypeRegistry.java(32): private static
> final Map TYPE_MAP = new HashMap();
> Found 'hashmap' 2 time(s).
> ----------------------------------------
> \com\ibatis\sqlmap\engine\type\TypeHandlerFactory.java' :
> \com\ibatis\sqlmap\engine\type\TypeHandlerFactory.java(28): private final
> Map typeHandlerMap = new HashMap();
> \com\ibatis\sqlmap\engine\type\TypeHandlerFactory.java(30): private final
> HashMap typeAliases = new HashMap();
> \com\ibatis\sqlmap\engine\type\TypeHandlerFactory.java(104):
> putTypeAlias("hashmap", HashMap.class.getName());
> \com\ibatis\sqlmap\engine\type\TypeHandlerFactory.java(186): map = new
> HashMap();
> Found 'hashmap' 6 time(s).
> Search complete, found 'hashmap' 52 time(s). (18 files.)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira