Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6799277

Memory Leak in com.sun.deploy.cache.MemoryCache (deploy.jar)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 6u10
    • deploy
    • x86
    • windows_xp

      FULL PRODUCT VERSION :
      java version "1.6.0_10"
      Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
      Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

      ADDITIONAL OS VERSION INFORMATION :
      Microsoft Windows XP [Wersja 5.1.2600]

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      awt.toolkit=sun.awt.windows.WToolkit
      deployment.browser.path=C:\Program Files\Internet Explorer\IEXPLORE.EXE
      deployment.browser.vm.iexplorer=true
      deployment.browser.vm.mozilla=true
      deployment.cache.enabled=true
      deployment.cache.jarcompression=0
      deployment.cache.max.size=-1
      deployment.capture.mime.types=false
      deployment.console.startup.mode=SHOW
      deployment.control.panel.log=false
      deployment.javapi.cache.update=false
      deployment.javapi.lifecycle.exception=true
      deployment.javapi.log.filename=
      deployment.javapi.runtime.type=0
      deployment.javapi.trace.filename=
      deployment.javaws.associations=ASK_USER
      deployment.javaws.autodownload=ALWAYS
      deployment.javaws.cache.update=false
      deployment.javaws.home.jnlp.url=http://java.sun.com/products/javawebstart
      deployment.javaws.installURL=http://java.sun.com/products/autodl/j2se
      deployment.javaws.logFileName=
      deployment.javaws.muffin.max=256
      deployment.javaws.shortcut=ASK_IF_HINTED
      deployment.javaws.splash.index=C:\Documents and Settings\mwasak\Dane aplikacji\Sun\Java\Deployment\cache\6.0\splash\splash.xml
      deployment.javaws.ssv.enabled=true
      deployment.javaws.traceFileName=
      deployment.javaws.uninstall.shortcut=false
      deployment.javaws.update.timeout=1500
      deployment.javaws.viewer.bounds=280,98,720,360
      deployment.jpi.mode.new=true
      deployment.log=true
      deployment.max.output.file.size=10
      deployment.max.output.files=5
      deployment.mime.types.use.default=true
      deployment.proxy.bypass.local=false
      deployment.proxy.override.hosts=
      deployment.proxy.same=false
      deployment.proxy.type=3
      deployment.repository.askdownloaddialog.show=true
      deployment.repository.enabled=true
      deployment.security.SSLv2Hello=false
      deployment.security.SSLv3=true
      deployment.security.TLSv1=true
      deployment.security.askgrantdialog.notinca=true
      deployment.security.askgrantdialog.show=true
      deployment.security.authenticator=true
      deployment.security.browser.keystore.use=true
      deployment.security.clientauth.keystore.auto=true
      deployment.security.expired.warning=true
      deployment.security.https.warning.show=false
      deployment.security.jsse.hostmismatch.warning=true
      deployment.security.notinca.warning=true
      deployment.security.pretrust.list=true
      deployment.security.sandbox.awtwarningwindow=true
      deployment.security.sandbox.jnlp.enhanced=true
      deployment.security.trusted.policy=
      deployment.security.validation.crl=false
      deployment.security.validation.ocsp=false
      deployment.system.security.cacerts=C:\Java\jre6\lib\security\cacerts
      deployment.system.security.jssecacerts=C:\Java\jre6\lib\security\jssecacerts
      deployment.system.security.oldcacerts=C:\Java\jre6\lib\security\cacerts
      deployment.system.security.oldjssecacerts=C:\Java\jre6\lib\security\jssecacerts
      deployment.system.security.trusted.certs=C:\Java\jre6\lib\security\trusted.certs
      deployment.system.security.trusted.clientauthcerts=C:\Java\jre6\lib\security\trusted.clientcerts
      deployment.system.security.trusted.jssecerts=C:\Java\jre6\lib\security\trusted.jssecerts
      deployment.system.security.trusted.publishers=C:\Java\jre6\lib\security\trusted.publishers
      deployment.system.tray.icon=true
      deployment.trace=true
      deployment.update.mime.types=true
      java.specification.name=Java Platform API Specification
      java.specification.vendor=Sun Microsystems Inc.
      java.specification.version=1.6
      java.vendor=Sun Microsystems Inc.
      java.vendor.url=http://java.sun.com/
      java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
      java.version=1.6.0_10
      java.vm.info=mixed mode, sharing
      java.vm.name=Java HotSpot(TM) Client VM
      java.vm.specification.name=Java Virtual Machine Specification
      java.vm.specification.vendor=Sun Microsystems Inc.
      java.vm.specification.version=1.0
      java.vm.vendor=Sun Microsystems Inc.
      java.vm.version=11.0-b15

      javawebstart.version=javaws-1.6.0_10
      jnlpx.home=C:\Java\jre6\bin
      jnlpx.jvm=C:\Java\jre6\bin\javaw.exe
      jnlpx.remove=false
      jnlpx.splashport=4463
      line.separator=\r\n
      os.arch=x86
      os.name=Windows XP
      os.version=5.1
      path.separator=;
      sun.arch.data.model=32
      sun.boot.class.path=C:\Java\jre6\lib\resources.jar;C:\Java\jre6\lib\rt.jar;C:\Java\jre6\lib\sunrsasign.jar;C:\Java\jre6\lib\jsse.jar;C:\Java\jre6\lib\jce.jar;C:\Java\jre6\lib\charsets.jar;C:\Java\jre6\classes;C:\Java\jre6\lib\javaws.jar;C:\Java\jre6\lib\deploy.jar
      sun.boot.library.path=C:\Java\jre6\bin
      sun.cpu.endian=little
      sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86
      sun.desktop=windows
      sun.io.unicode.encoding=UnicodeLittle
      sun.java.launcher=SUN_STANDARD
      sun.jnu.encoding=Cp1250
      sun.management.compiler=HotSpot Client Compiler
      sun.os.patch.level=Dodatek Service Pack 3

      A DESCRIPTION OF THE PROBLEM :
      I have discovered only part of a problem.

      I have a Java Web Start app which has OOME after about 30min working - I checked it using jvisualvm.exe and discovered that during this time there is increase count for class com\sun\deploy\cache\MemoryCache$CachedResourceReference.class from about 7000 to about 225000, because this class has String fields it also triggered increase in instances of String class. My application is using castor and xerces - I see that a lot of CachedResourceReference (about 90%-95%) has url field with castor-1.2.jar and xercesImpl-2.8.1.jar values.
      I don't know what mechanism is adding this instances to com.sun.deploy.cache.MemoryCache but I can see that com.sun.deploy.cache.MemoryCache$LoadedResourceCleanupThread which is responsible for cache cleaning is wake up - but I think that it cant't remove instance from com.sun.deploy.cache.MemoryCache$LoadedResourceReference.resourceRefs using com.sun.deploy.cache.MemoryCache$LoadedResourceReference.deregisterReference because of resourceRefs is HashSet and CachedResourceReference which is used in cleaning thread as parameter to deregisterReference don't have hash and equals methods implemented - so CachedResourceReference still grows because is not removed.


      REPRODUCIBILITY :
      This bug can be reproduced always.

            Unassigned Unassigned
            ryeung Roger Yeung (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: