0

我只是想从线程转储中了解一些被阻止的项目:

"Thread-65" : 151 : RUNNABLE : cpu=36796875000 : cpuLoad= 0.29151857
BlockedCount:94117 BlockedTime:-1 LockName:null LockOwnerID:-1 LockOwnerName:null
WaitedCount:16 WaitedTime:-1 InNative:false IsSuspended:false   at java.util.zip.ZipFile.open(ZipFile.java:-2)
    at java.util.zip.ZipFile.(ZipFile.java:219)
    at java.util.zip.ZipFile.(ZipFile.java:149)
    at java.util.jar.JarFile.(JarFile.java:166)
    at java.util.jar.JarFile.(JarFile.java:130)
    at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:188)
    at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:173)
    at org.apache.catalina.webresources.AbstractArchiveResourceSet.openJarFile(AbstractArchiveResourceSet.java:316)
    at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.getArchiveEntry(AbstractSingleArchiveResourceSet.java:96)
    at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:265)
    at org.apache.catalina.webresources.StandardRoot.getResourceInternal(StandardRoot.java:281)
    at org.apache.catalina.webresources.CachedResource.validateResource(CachedResource.java:97)
    at org.apache.catalina.webresources.Cache.getResource(Cache.java:69)
    at org.apache.catalina.webresources.StandardRoot.getResource(StandardRoot.java:216)
    at org.apache.catalina.webresources.StandardRoot.getClassLoaderResource(StandardRoot.java:225)
    at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1067)
    at java.lang.Class.getResourceAsStream(Class.java:2223)
    at bsh.BshClassManager.getResourceAsStream(null:-1)
    at bsh.classpath.ClassManagerImpl.getResourceAsStream(null:-1)
    at bsh.BshClassManager.loadSourceClass(null:-1)
    at bsh.classpath.ClassManagerImpl.classForName(null:-1)
    at bsh.NameSpace.classForName(null:-1)
    at bsh.NameSpace.getImportedClassImpl(null:-1)
    at bsh.NameSpace.getClassImpl(null:-1)
    at bsh.NameSpace.getClass(null:-1)
    at bsh.Name.consumeNextObjectField(null:-1)
    at bsh.Name.toObject(null:-1)
    at bsh.Name.toObject(null:-1)
    at bsh.NameSpace.get(null:-1)
    at bsh.Interpreter.get(null:-1)
    at bsh.Interpreter.getu(null:-1)
    at bsh.Interpreter.(null:-1)
    at bsh.Interpreter.(null:-1)
    at bsh.Interpreter.(null:-1)

我没有得到的是负行号。是不是说找不到源?

4

1 回答 1

0

这些都是 beanshell 类。我猜他们这样做是为了避免混淆。

我猜他们在某些情况下(例如当您在 beanshell repl 中运行时)将其用作“技巧”来删除这些行。

您可以使用相同的技巧从转储中删除这些行。

这个可能相关的问题How to get the complete log for bean shell scripts in jmeter

建议将 debug() 指令添加到 beanshell 以获得较少限制的堆栈跟踪——也许如果你这样做了,那么它会填充那些 bsh 堆栈行?

于 2018-06-25T23:41:44.280 回答