9

In application thread dump I can see threadpool with five threads like following:

"pool-1-thread-5" prio=10 tid=0x000000000101a000 nid=0xe1f in Object.wait() [0x00007f3c66086000]
  java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
    at java.lang.Object.wait(Object.java:503)
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:316)
    - locked <0x00000007b8e57af8> (a hidden.edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue$SerializableLock)
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:994)
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1054)
    at hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
    at java.lang.Thread.run(Thread.java:722)

But I don't use nothing like this directly and don't see anything like this in dependencies.

What is this (hidden.edu.emory.mathcs.backport) and why it used (application running on jdk 7)? Can I detect what part of application starting it?

valodzka
  • 5,535
  • 4
  • 39
  • 50
  • If you can debug this app during startup, put a breakpoint on `hidden.edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor`'s constructor, and see who calls it. If you can only debug it while it runs, breakpoint the `execute` and `submit` methods. The nature of the calling code will tell you why it is being used. – Tom Anderson Jan 22 '13 at 19:09

1 Answers1

14

This edu.emory.mathcs.backport package tree belongs to backport-util-concurrent which is a backport of java.util.concurrent to the older Java versions. The hidden prefix might have been added by tools like maven-shade-plugin.

If you're using Maven you can search for this dependency with:

mvn dependency:tree -Dincludes=backport-util-concurrent:backport-util-concurrent
pingw33n
  • 12,292
  • 2
  • 37
  • 38
  • 2
    It was dependency of maven itself on debian (http://packages.debian.org/squeeze/libbackport-util-concurrent-java). And maven starts (and seems doesn't stop) 5 threads for downloading artifacts (http://maven.apache.org/guides/mini/guide-configuring-maven.html). – valodzka Jan 23 '13 at 07:28