title: deadlock on synchronized ( String intern())
body: <p>I user sun jdk 1.5  ThreadPoolExecutor( 24, 24,60,TimeUnit.SECONDS, new LinkedBlockingQueue()). soemtime I use jdb tool to find the status of all threads in thread pool are " waiting in a monitor", the code is : </p>
  
  <pre><code>    String key = getKey(dt.getPrefix(), id);
      synchronized (key.intern()) {      -----&gt;
  </code></pre>
  
  <p>Is there a problem in  "synchronized (key.intern()) "  ?</p>
  
  <hr>
  
  <p>I get following informatnio  using jdb tool, the status of  24 threads is "waiting in a monitor", it means 24 threads are deadlock at "key.intern()".</p>
  
  <p>(java.lang.Thread)0x28    pool-3-thread-2         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x27    pool-3-thread-3         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x1b    pool-3-thread-4         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x1a    pool-3-thread-5         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x19    pool-3-thread-6         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x18    pool-3-thread-7         waiting in a monitor</p>
  
  <p>(java.lang.Thread)0x17    pool-3-thread-8         waiting in a monitor
    ...</p>
  
  <p>so the result is : in multi-threads environment,  Sting intern() method  may be deadlock, ok ?</p>