2010-07-16 3 views
7

Je viens d'avoir ce message d'erreur d'un de mes utilisateurs. (IE8, Java 1.6.20). C'est à partir d'une applet qui reçoit des instructions de Javascript et exécute certains processus sur le client.java.lang.RuntimeException: ERREUR: Impossible de récupérer l'entrée de cache corrompue

RangeError 
java.lang.RuntimeException: ERROR: Failed to recover corrupt cache entry 
at com.sun.deploy.cache.CacheEntry.recover 
at com.sun.deploy.cache.CacheEntry.getSignerMap 
at com.sun.deploy.cache.CachedJarFile.getSignerMap 
at com.sun.deploy.cache.CachedJarFile.access$100 
.... 

Tout iddeas ce qui pourrait être à l'origine de cela?

+0

J'ai le même problème avec Java 1.7. – Horcrux7

+0

Même problème avec Java 1.6, mise à jour 29 –

+0

Un peu plus d'infos: Cela se passe sur webstart et l'effacement du cache n'a pas aidé. En outre, il semble être rapporté à nouveau ici: https://forums.oracle.com/forums/thread.jspa?messageID=10114803 –

Répondre

0

J'ai rencontré ce problème à java1.8_0.31 et seulement solution de contournement que j'ai trouvé jusqu'à présent qui a mis des jars emballés (pack.gz) dans le même répertoire avec votre jar (s). Lors de la recherche du servlet je vois que

JnlpDownloadServlet(3): Request: /MyWeb/signed.jnlp 
JnlpDownloadServlet(3): User-Agent: JNLP/1.7.0 javaws/11.31.2.13 (<internal>) Java/1.8.0_31 
JnlpDownloadServlet(4): DownloadRequest[path=/signed.jnlp encoding=gzip isPlatformRequest=false] 
JnlpDownloadServlet(4): Basic Protocol lookup 
JnlpDownloadServlet(4): JnlpResource: JnlpResource[WAR Path: /signed.jnlp lastModified=Wed Feb 11 09:13:42 EET 2015]] 
JnlpDownloadServlet(3): Resource returned: /signed.jnlp 
JnlpDownloadServlet(4): SupportQuery in Href: true 
JnlpDownloadServlet(4): lastModified: 1423638822000 Wed Feb 11 09:13:42 EET 2015 
JnlpDownloadServlet(3): Request: /MyWeb/GUIJars/signed/main.jar?version-id=1.101 
JnlpDownloadServlet(3): User-Agent: JNLP/1.7.0 javaws/11.31.2.13 (<internal>) Java/1.8.0_31 
JnlpDownloadServlet(4): DownloadRequest[path=/GUIJars/signed/main.jar encoding=pack200-gzip,gzip query=version-id=1.101 version=1.101 isPlatformRequest=false] 
JnlpDownloadServlet(4): Version-based/Extension based lookup 
JnlpDownloadServlet(4): JnlpResource: JnlpResource[WAR Path: /GUIJars/signed/main__V1.101.jar versionId=1.101 name=main.jar lastModified=Fri Feb 13 16:28:36 EET 2015] returnVersionId=1.101] 
JnlpDownloadServlet(3): Resource returned: /GUIJars/signed/main__V1.101.jar 
JnlpDownloadServlet(4): Real resource returned: JnlpResource[WAR Path: /GUIJars/signed/main__V1.101.jar versionId=1.101 name=main.jar lastModified=Fri Feb 13 16:28:36 EET 2015] returnVersionId=1.101] 

Et à côté client lors du traçage journal est montré que

network: ResponseCode for http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar?version-id=1.101 : 200 
network: Encoding for http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar?version-id=1.101 : gzip 
network: Server response: (length: -1, lastModified: Fri Feb 13 16:28:36 EET 2015, downloadVersion: 1.101, mimeType: application/java-archive) 
network: Created version ID: 1.101 
network: Created version ID: 1.101 
network: Created version ID: 1.101 
network: Cache entry not found [url: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar, version: 1.101] 
network: Downloading resource: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar?version-id=1.101 
    Content-Length: -1 
    Content-Encoding: gzip 
network: Wrote URL http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar?version-id=1.101 to File C:\myCache\MyWeb\6.0\33\5a0dab21-647c684d-1.101--temp 
network: Disconnect connection to http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar?version-id=1.101 
network: Cache: Enable a new CacheEntry: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar 
network: Downloaded http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar: C:\myCache\MyWeb\6.0\33\5a0dab21-647c684d-1.101- 
cache: Adding MemoryCache entry: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar 
java.util.zip.ZipException: error in opening zip file 
    at java.util.zip.ZipFile.open(Native Method) 
    at java.util.zip.ZipFile.<init>(Unknown Source) 
    at java.util.zip.ZipFile.<init>(Unknown Source) 
    at java.util.jar.JarFile.<init>(Unknown Source) 
    at java.util.jar.JarFile.<init>(Unknown Source) 
    at com.sun.deploy.security.EnhancedJarVerifier.validate(Unknown Source) 
    at com.sun.deploy.cache.CacheEntry.getJarSigningData(Unknown Source) 
    at com.sun.deploy.cache.CacheEntry.getCodeSigners(Unknown Source) 
    at com.sun.deploy.ref.CodeRef.getCodeSigners(Unknown Source) 
    at com.sun.deploy.security.ruleset.RuleId.contains(Unknown Source) 
    at com.sun.deploy.security.ruleset.DRSHelper.findRule(Unknown Source) 
    at com.sun.deploy.security.ruleset.DeploymentRuleSet.getDRS(Unknown Source) 
    at com.sun.deploy.security.ruleset.DeploymentRuleSet.findDRS(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getMainDeploymentRuleSet(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getMatchImpl(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getJREMatcher(Unknown Source) 
    at com.sun.javaws.Launcher.prepareLaunchFile(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) 
cache: Trying to recover cache entry for http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar 
cache: MemoryCache: removed entry http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar 
network: Remove cache entry: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar 
network: Cache entry not found [url: http://mydomain.com.tr/MyWeb/GUIJars/signed/main.jar, version: 1.101] 
java.lang.RuntimeException: ERROR: Recovery got null entry 
    at com.sun.deploy.cache.CacheEntry.recover(Unknown Source) 
    at com.sun.deploy.cache.CacheEntry.getJarSigningData(Unknown Source) 
    at com.sun.deploy.cache.CacheEntry.getCodeSigners(Unknown Source) 
    at com.sun.deploy.ref.CodeRef.getCodeSigners(Unknown Source) 
    at com.sun.deploy.security.ruleset.RuleId.contains(Unknown Source) 
    at com.sun.deploy.security.ruleset.DRSHelper.findRule(Unknown Source) 
    at com.sun.deploy.security.ruleset.DeploymentRuleSet.getDRS(Unknown Source) 
    at com.sun.deploy.security.ruleset.DeploymentRuleSet.findDRS(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getMainDeploymentRuleSet(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getMatchImpl(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDesc.getJREMatcher(Unknown Source) 
    at com.sun.javaws.Launcher.prepareLaunchFile(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) 

client se comporte à venir fichier jar plaine comme pot emballé et gziped. Peut-être besoin d'examiner HTTP Header pour savoir pourquoi le client fait cela.

+0

La deuxième solution est que dans notre cas, nous n'utilisons pas JnlpDownloadServlet et HTTP Server (IBM HTTP SERVER) appliquent gzip au fichier JAR simple. Nous configurons "ne pas appliquer gzip à la requête jar" et le problème a disparu. – mbsau

+0

Dans mon cas, Apache servait les fichiers jar. Et le SetOutputFilter DEFLATE a été inclus dans le fichier de configuration Apache. L'ajout d'une exception à ce filtre (SetEnvIfNoCase Request_URI \ .jar $ no-gzip ne-vary) a résolu mon problème. – lOlive

Questions connexes