0 Replies Latest reply: Oct 21, 2013 9:08 PM by user8647545 RSS

    Another 7u45 regression.  Deadlock launching webstart app.

    user8647545

      Here another new webstart problem from 7u45.

       

      Also posted to stack overflow but posting here in case this helps someone.

       

      java - new Deadlock bug in 7u45 webstart? - Stack Overflow

       

      I've got this deadlock in 7u45 launching a large web application:

       

      Found one Java-level deadlock:
      =============================
      "Java Web Start Main Thread":
        waiting to lock monitor
      0x066368bc (object 0x29e65428, a java.lang.Class),
        which is held by
      "Finalizer"
      "Finalizer":
        waiting to lock monitor
      0x00dbc954 (object 0x2a1b52b0, a com.sun.deploy.cache.CacheEntry),
        which is held by
      "Java Web Start Main Thread"

      Java stack information for the threads listed above:
      ===================================================
      "Java Web Start Main Thread":
        at com
      .sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
       
      - waiting to lock <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
        at com
      .sun.deploy.cache.CachedJarFile.getCacheEntry(Unknown Source)
       
      - locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
        at com
      .sun.deploy.cache.CachedJarFile.getManifest(Unknown Source)
       
      - locked <0x24810058> (a com.sun.deploy.cache.CachedJarFile)
        at com
      .sun.deploy.util.JarUtil.isBlobSigned(Unknown Source)
        at com
      .sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
       
      - locked <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
        at com
      .sun.deploy.security.DeployManifestChecker.verify(Unknown Source)
        at com
      .sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)
        at com
      .sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
        at com
      .sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
        at com
      .sun.javaws.Launcher.prepareResources(Unknown Source)
        at com
      .sun.javaws.Launcher.prepareAllResources(Unknown Source)
        at com
      .sun.javaws.Launcher.prepareToLaunch(Unknown Source)
        at com
      .sun.javaws.Launcher.prepareToLaunch(Unknown Source)
        at com
      .sun.javaws.Launcher.launch(Unknown Source)
        at com
      .sun.javaws.Main.launchApp(Unknown Source)
        at com
      .sun.javaws.Main.continueInSecureThread(Unknown Source)
        at com
      .sun.javaws.Main.access$000(Unknown Source)
        at com
      .sun.javaws.Main$1.run(Unknown Source)
        at java
      .lang.Thread.run(Unknown Source)
      "Finalizer":
        at com
      .sun.deploy.cache.CacheEntry.storageFilesExist(Unknown Source)
       
      - waiting to lock <0x2a1b52b0> (a com.sun.deploy.cache.CacheEntry)
        at com
      .sun.deploy.cache.MemoryCache.validateResource(Unknown Source)
        at com
      .sun.deploy.cache.MemoryCache.getLoadedResource(Unknown Source)
       
      - locked <0x29e65428> (a java.lang.Class for com.sun.deploy.cache.MemoryCache)
        at com
      .sun.deploy.cache.CachedJarFile.isReferencedTo(Unknown Source)
        at com
      .sun.deploy.cache.CachedJarFile.close(Unknown Source)
        at java
      .util.zip.ZipFile.finalize(Unknown Source)
        at java
      .lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
        at java
      .lang.ref.Finalizer.runFinalizer(Unknown Source)
        at java
      .lang.ref.Finalizer.access$100(Unknown Source)
        at java
      .lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

      Found 1 deadlock.


      I've filed bug 9007571, but it's not visible yet. (how long does it take, Oracle????).



      <rant>

      Is Oracle really trying to kill java?  Microsoft didn't manage to do it, but Oracle sure is trying their hardest.  Ever since 6u19 and the introduction of the webstart jar caching problems, it's been one headache after another.  With almost ever java update since 6u19, there's some problem I have to spend time explaining to my boss (and customers).  After a while, it's hard to shut down the discussions of "well, what alternatives to java/web-start are there?".  If I had a good one, I'd be jumping on it.  Or at least cross implementing in case the ship keeps springing more leaks.  And don't get me started about forced expiration dates that started in 7u10.  That just makes the problem 100x worse.  Now, once you account for all the know java bugs, you can't let an existing installation rest, because the damn things are forcing updates.  Yes, I know there are ways to turn it off, but that's just 1 more step that we have to teach and add to deployments.  Oracle/Java is trying hard to out-do microsoft/windows for most-yelled-at component of our environment. 


      I'm sure I'm not alone in this feeling of frustration.  I realize 'security' is a constant pain that oracle has to stay ahead of and mitigate risks from.  But when every update introduces as many problems as it fixes and then the default rules change so that updates are strongly encouraged or forced, it makes it almost impossible to stay ahead of the curve as an application developer.

       

      GRRR!!!!

      </rant!>