Bug 20668

Summary: update manager stymied if leftover team download files are corrupt
Product: [Eclipse Project] Platform Reporter: Jim des Rivieres <jeem>
Component: Update (deprecated - use Eclipse>Equinox>p2)Assignee: Dejan Glozic <dejan>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: P3    
Version: 2.0   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Jim des Rivieres CLA 2002-06-19 12:24:04 EDT
20020618

I got a timeout while downloading a feature from the eclipse.org Nevada test
site. When it tried to repeat the operation, I immediately got
a different error:

The file C:\Documents and Settings\jeem\Local 
Settings\Temp\eclipse\.update\1024493136231\1024493136258\eclipse5215.tmp is 
not a valid JAR file. [java.util.zip.ZipException: error in opening zip file]

eclipse5215.tmp is a 0-byte file. It appears that it was left behind by the 
unsuccessful download. The repeat download is opening the identical file and
being unpleased.

This problem is potentially serious if it could affect people with slow or 
unreliable connections to update sites and make it difficult from them to 
recover from an unsuccessful attempt without assistance.

(If the update mananger is trying to be smart about downloading files that it 
recently downloaded on a previous attempt, it needs to protect itself from 
partially downloaded file. A separate bug report covers the problem created
by these temporary files not being cleaned out.)
 
.log excerpt follows
====================
!ENTRY org.eclipse.update.core 4 0 Jun 19, 2002 11:57:46.590
!MESSAGE Error 
retrieving "plugins/org.eclipse.sdk.examples_2.0.0.v20020618.jar". 
[java.net.ConnectException: Operation timed out: connect]
!STACK 0
java.net.ConnectException: Operation timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:345)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:157)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:144)
	at java.net.Socket.<init>(Socket.java:294)
	at java.net.Socket.<init>(Socket.java:121)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:65)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:356)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:543)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:291)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:301)
	at sun.net.www.http.HttpClient.New(HttpClient.java:313)
	at sun.net.www.protocol.http.HttpURLConnection.connect
(HttpURLConnection.java:429)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream
(HttpURLConnection.java:522)
	at java.net.HttpURLConnection.getResponseCode
(HttpURLConnection.java:260)
	at 
org.eclipse.update.internal.core.UpdateManagerUtils.checkConnectionResult
(UpdateManagerUtils.java:465)
	at org.eclipse.update.core.ContentReference.getInputSize
(ContentReference.java:136)
	at org.eclipse.update.core.FeatureContentProvider.asLocalReference
(FeatureContentProvider.java:116)
	at 
org.eclipse.update.internal.core.FeaturePackagedContentProvider.getPluginEntryA
rchiveReferences(FeaturePackagedContentProvider.java:199)
	at org.eclipse.update.core.Feature.install(Feature.java:293)
	at org.eclipse.update.internal.core.SiteFile.install(SiteFile.java:71)
	at org.eclipse.update.internal.core.ConfiguredSite.install
(ConfiguredSite.java:209)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.execute
(InstallWizard.java:153)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.access$2
(InstallWizard.java:140)
	at org.eclipse.update.internal.ui.wizards.InstallWizard$1.run
(InstallWizard.java:62)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:98)
!SUBENTRY 1 org.eclipse.update.core 4 0 Jun 19, 2002 11:57:46.684
!MESSAGE Error 
retrieving "plugins/org.eclipse.sdk.examples_2.0.0.v20020618.jar". 
[java.net.ConnectException: Operation timed out: connect]
!STACK 0
java.net.ConnectException: Operation timed out: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:345)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:157)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:144)
	at java.net.Socket.<init>(Socket.java:294)
	at java.net.Socket.<init>(Socket.java:121)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:65)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:356)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:543)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:291)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:301)
	at sun.net.www.http.HttpClient.New(HttpClient.java:313)
	at sun.net.www.protocol.http.HttpURLConnection.connect
(HttpURLConnection.java:429)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream
(HttpURLConnection.java:522)
	at java.net.HttpURLConnection.getResponseCode
(HttpURLConnection.java:260)
	at 
org.eclipse.update.internal.core.UpdateManagerUtils.checkConnectionResult
(UpdateManagerUtils.java:465)
	at org.eclipse.update.core.ContentReference.getInputSize
(ContentReference.java:136)
	at org.eclipse.update.core.FeatureContentProvider.asLocalReference
(FeatureContentProvider.java:116)
	at 
org.eclipse.update.internal.core.FeaturePackagedContentProvider.getPluginEntryA
rchiveReferences(FeaturePackagedContentProvider.java:199)
	at org.eclipse.update.core.Feature.install(Feature.java:293)
	at org.eclipse.update.internal.core.SiteFile.install(SiteFile.java:71)
	at org.eclipse.update.internal.core.ConfiguredSite.install
(ConfiguredSite.java:209)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.execute
(InstallWizard.java:153)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.access$2
(InstallWizard.java:140)
	at org.eclipse.update.internal.ui.wizards.InstallWizard$1.run
(InstallWizard.java:62)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:98)
!ENTRY org.eclipse.update.core 4 0 Jun 19, 2002 11:57:52.28
!MESSAGE Unable to complete action for feature "Eclipse SDK Examples" due to 
errors.
!STACK 1
org.eclipse.core.runtime.CoreException[0]: java.util.zip.ZipException: error 
in opening zip file
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:127)
	at java.util.jar.JarFile.<init>(JarFile.java:138)
	at java.util.jar.JarFile.<init>(JarFile.java:105)
	at org.eclipse.update.internal.security.JarVerifier.init
(JarVerifier.java:120)
	at org.eclipse.update.internal.security.JarVerifier.verify
(JarVerifier.java:225)
	at org.eclipse.update.core.Feature.verifyReferences(Feature.java:840)
	at org.eclipse.update.core.Feature.install(Feature.java:296)
	at org.eclipse.update.internal.core.SiteFile.install(SiteFile.java:71)
	at org.eclipse.update.internal.core.ConfiguredSite.install
(ConfiguredSite.java:209)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.execute
(InstallWizard.java:153)
	at org.eclipse.update.internal.ui.wizards.InstallWizard.access$2
(InstallWizard.java:140)
	at org.eclipse.update.internal.ui.wizards.InstallWizard$1.run
(InstallWizard.java:62)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run
(ModalContext.java:98)
Comment 1 Jim des Rivieres CLA 2002-06-19 12:37:05 EDT
Workaround:  The temporary files created during the downloading process are 
automatically deleted when JVM exits. Exit and restart eclipse. 
Comment 2 Christophe Elek CLA 2002-10-28 11:43:22 EST
Fixed in 2.0.2. The mapping between the file we believe we downloaded and the
file is done once the file has been completely downloaded and not before.


*** This bug has been marked as a duplicate of 24657 ***