Java线程转储-负行号

时间:2018-06-25 23:32:20

标签: java mxbean

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

"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)

我没有得到的是负线号。这是否意味着找不到源?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

建议将debug()指令添加到beanshell中可以得到较少的堆栈跟踪记录-也许,如果这样做,它将填充那些bsh堆栈行?