2016-11-24 68 views
0

我一直在努力升级,从春季3应用程序4,现在的Hibernate 3至4精确版本: 春:4.1.9 休眠:4.3.7Java堆空间的问题,同时运行Junits

由于依赖关系我也必须升级Junit版本,现在我们使用4.12。

由于升级我得到一个Java堆空间异常大部分单元测试:

net.sf.ehcache.CacheException: java.lang.OutOfMemoryError: Java heap space 
    at net.sf.ehcache.CacheManager.init(CacheManager.java:361) 
    at net.sf.ehcache.CacheManager.<init>(CacheManager.java:237) 
    at net.sf.ehcache.CacheManager.create(CacheManager.java:856) 
    at net.sf.ehcache.CacheManager.create(CacheManager.java:743) 
    at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:758) 
    at com.rsa.csd.RsaBaseTestCase.setUp(RsaBaseTestCase.java:144) 
    at junit.framework.TestCase.runBare(TestCase.java:139) 
    at junit.framework.TestResult$1.protect(TestResult.java:122) 
    at junit.framework.TestResult.runProtected(TestResult.java:142) 
    at junit.framework.TestResult.run(TestResult.java:125) 
    at junit.framework.TestCase.run(TestCase.java:129) 
    at junit.framework.TestSuite.runTest(TestSuite.java:252) 
    at junit.framework.TestSuite.run(TestSuite.java:247) 
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:234) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:133) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:114) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:188) 
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:166) 
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86) 
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:101) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) 
Caused by: java.lang.OutOfMemoryError: Java heap space 
    at net.sf.ehcache.store.chm.ConcurrentHashMap$HashEntry.newArray(ConcurrentHashMap.java:226) 
    at net.sf.ehcache.store.chm.ConcurrentHashMap$Segment.<init>(ConcurrentHashMap.java:316) 
    at net.sf.ehcache.store.chm.SelectableConcurrentHashMap$MemoryStoreSegment.<init>(SelectableConcurrentHashMap.java:270) 
    at net.sf.ehcache.store.chm.SelectableConcurrentHashMap$MemoryStoreSegment.<init>(SelectableConcurrentHashMap.java:262) 
    at net.sf.ehcache.store.chm.SelectableConcurrentHashMap.createSegment(SelectableConcurrentHashMap.java:245) 
    at net.sf.ehcache.store.chm.ConcurrentHashMap.<init>(ConcurrentHashMap.java:634) 
    at net.sf.ehcache.store.chm.SelectableConcurrentHashMap.<init>(SelectableConcurrentHashMap.java:52) 
    at net.sf.ehcache.store.MemoryStore.<init>(MemoryStore.java:146) 
    at net.sf.ehcache.store.NotifyingMemoryStore.<init>(NotifyingMemoryStore.java:37) 
    at net.sf.ehcache.store.NotifyingMemoryStore.create(NotifyingMemoryStore.java:49) 
    at net.sf.ehcache.store.MemoryOnlyStore.create(MemoryOnlyStore.java:69) 
    at net.sf.ehcache.Cache.initialise(Cache.java:1105) 
    at net.sf.ehcache.CacheManager.initializeEhcache(CacheManager.java:1128) 
    at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:1159) 
    at net.sf.ehcache.CacheManager.addConfiguredCaches(CacheManager.java:708) 
    at net.sf.ehcache.CacheManager.doInit(CacheManager.java:426) 
    at net.sf.ehcache.CacheManager.init(CacheManager.java:352) 
    at net.sf.ehcache.CacheManager.<init>(CacheManager.java:237) 
    at net.sf.ehcache.CacheManager.create(CacheManager.java:856) 
    at net.sf.ehcache.CacheManager.create(CacheManager.java:743) 
    at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:758) 
    at com.rsa.csd.RsaBaseTestCase.setUp(RsaBaseTestCase.java:144) 
    at junit.framework.TestCase.runBare(TestCase.java:139) 
    at junit.framework.TestResult$1.protect(TestResult.java:122) 
    at junit.framework.TestResult.runProtected(TestResult.java:142) 
    at junit.framework.TestResult.run(TestResult.java:125) 
    at junit.framework.TestCase.run(TestCase.java:129) 
    at junit.framework.TestSuite.runTest(TestSuite.java:252) 
    at junit.framework.TestSuite.run(TestSuite.java:247) 
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:234) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:133) 

我试图在网上寻找,但还没有能找到任何解决方案。

请让我知道我需要发布的任何配置文件。

+0

哪个版本的ehcache正在使用?我会更新使用最新的2.x版本。那么,你有一个'ehcache.xml'文件吗? – Henri

+0

我正在使用ehcache 2.5。有办公室的笔记本电脑没有访问权限now..so将尽快共享文件尽可能 – Sid

回答

0

你去运行配置,然后根据参数,你可以设置vm arguments。在参数选项卡中,将参数设置为"-Xms64m -Xmx256m"或更高取决于您的系统配置。

+0

已尝试,我甚至把它设置为高达4 GB,仍然得到同样的异常。 – Sid

+0

你正在使用什么IDE?如果您使用的是eclipse,请增加eclipse.ini中分配给eclipse的内存。 – Mohit

+0

我甚至得到这个问题,当我从运行命令提示符下的测试案例,所以不知道这是一个Eclipse相关的问题。 – Sid