当前位置: 首页 > 知识库问答 >
问题:

CacheManager.clear所有投掷CacheManager已因JUnit程序而关闭

赵晨
2023-03-14

我正在做一个项目,它的大部分Junit都失败了。我的工作是修复它们并使其运行。我已经修复了约200个Junit类,但仍有约136个Junit类失败,原因不知道,有时会失败,有时还能工作。试着深入研究问题并将其应用到ehCache中。它正在被关闭。

Can any body please explain me why this exception occur in Junt testing and that to not all the time. 
Please Note we have test cases for "Action" classes as well(Which deal with Servlet Context)
But interesting point all action test classes are getting passed.

Error Message is :
   java.lang.IllegalStateException: The CacheManager has been shut down. It can no longer be used.
    at net.sf.ehcache.CacheManager.checkStatus(CacheManager.java:1504)
    at net.sf.ehcache.CacheManager.getCacheNames(CacheManager.java:1491)
    at net.sf.ehcache.CacheManager.clearAll(CacheManager.java:1526)

共有2个答案

强志学
2023-03-14

我弄清楚出了什么问题。其中一个JUnit需要时间来完成,它是一个DAO。该方法需要大约40到50分钟来完成AND,并且缓存管理器的会话超时发生,当其他JUnit尝试访问时,我得到了那个错误。我修复了JUnit,这基本上意味着DAO的查询运行得更快,并且一切正常。

钱钊
2023-03-14

代码的某些部分是关闭缓存管理器(可能是在单元测试的中断中),然后尝试清除缓存。您可以在堆栈跟踪中看到这一点:

at net.sf.ehcache.CacheManager.clearAll(CacheManager.java:1526)

但是一旦管理器关闭,您就无法对其调用操作。如果看不到其中一个单元测试的代码,就很难更具体。

 类似资料:
  • 有人可以解释我什么时候使用关键字 throw new 有用.而不是在方法的签名旁边使用抛出? 我知道当方法抛出Checked Exception时。Java迫使我们通过将Exception处理到try-catch块中,或者通过在签名旁边的关键字throws指定将在其他地方完成,从而直接在方法中处理它。 然而,我很难理解何时使用关键字throw new是有用的,以及为什么。它与处理未选中的异常有关吗

  • 我正在用python运行下面的代码 我每次都会遇到下面的错误-有人能帮忙吗! OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK 2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage、file/Users/travis/buil

  • 我有两个类(SimManager和Sim),我想为它们创建模拟对象,然后使用存根方法。 测试在上面第9行抛出这两个错误跟踪。 第一: Java语言lang.VerifyError:org/mockito/cglib/core/reflectils at org。莫基托。cglib。果心KeyFactory$发电机。在org上生成Class(KeyFactory.java:167)。莫基托。cgli

  • 我在视图中有一个ImageView,并尝试用它显示一个WritableImage实例。我正在外线程中绘制它,并通过侦听ObjectProperty的更改事件将其传递给视图。 imageView应该准备好接收图像,它由我的主视图显示。但是这是一个不合法的例外 线程“Thread-4”Java . lang . illegalstateexception中的异常:不在FX应用程序线程上;当前线程=线程

  • 我有下面的代码,它按照预期工作: 我想知道是否有一种方法,只有一个orElseThrow-Part,或做它更少的冗余?

  • 我向服务器调用一个请求网络,服务器总是响应如下所示的格式json: 对于每种请求,只有jsonObject数据包含不同的字段。新响应的示例: 因此,我决定让一个通用类调用ServerResult包含一个字段“Object”,以便将其强制转换为特定对象。 //ServerResult.class //client.java 请求完成后,我通过GSON将json转换为ServerResult对象: 然