[ http://issues.apache.org/jira/browse/IBATIS-171?page=comments#action_12316023 ]
kevinliu commented on IBATIS-171: --------------------------------- Thx For Your Best Help...I will check my program.. > 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