Bug 247845

Summary: [misc] Errors in log from fetching Javadoc when working disconnected
Product: [Eclipse Project] JDT Reporter: John Arthorne <john.arthorne>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: daniel_megert, david_audel, Olivier_Thomann
Version: 3.5   
Target Milestone: 3.5 M3   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Bug Depends on:    
Bug Blocks: 400060    
Attachments:
Description Flags
Proposed fix
none
Proposed fix none

Description John Arthorne CLA 2008-09-18 12:03:47 EDT
Build: I20080917

I was working disconnected this morning, and noticed several of the follow error in my log file. Since being disconnected from the network is a fairly normal occurrence I wouldn't expect an error to be logged here:

Java Model Exception: Java Model Status [Cannot retrieve the attached javadoc for Comparable [in Comparable.class [in java.lang [in C:\vm\ibm5sr4\jre\lib\core.jar]]]java.net.NoRouteToHostException: No route to host: connect
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:372)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:233)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:220)
	at java.net.Socket.connect(Socket.java:541)
	at java.net.Socket.connect(Socket.java:491)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:397)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:507)
	at sun.net.www.http.HttpClient.<init>(HttpClient.java:245)
	at sun.net.www.http.HttpClient.New(HttpClient.java:319)
	at sun.net.www.http.HttpClient.New(HttpClient.java:331)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:822)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:774)
	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:699)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:943)
	at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:751)
	at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1059)
	at org.eclipse.jdt.internal.core.BinaryMethod.getAttachedJavadoc(BinaryMethod.java:558)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:462)
	at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:442)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.extractJavadoc(ProposalInfo.java:96)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.computeInfo(ProposalInfo.java:76)
	at org.eclipse.jdt.internal.ui.text.java.ProposalInfo.getInfo(ProposalInfo.java:59)
	at org.eclipse.jdt.internal.ui.text.java.AbstractJavaCompletionProposal.getAdditionalProposalInfo(AbstractJavaCompletionProposal.java:513)
	at org.eclipse.jface.text.contentassist.AdditionalInfoController$3.run(AdditionalInfoController.java:106)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Dani Megert CLA 2008-09-18 12:14:23 EDT
John, this happens when fetching Javadoc from the net. Your editing experience when offline (but regarding speed also when online) would be better if you attached the source or at least had the Javadoc locally.

Olivier, I'm no longer 100% sure whether JDT Core already suppresses certain kinds of I/O exceptions. Could you check? If not, I think it is fair to no log the NoRouteToHostException.
Comment 2 Dani Megert CLA 2008-09-23 03:30:50 EDT
Olivier can you please answer my question from comment 1. Thanks.
Comment 3 Olivier Thomann CLA 2008-09-23 09:19:40 EDT
(In reply to comment #1)
> Olivier, I'm no longer 100% sure whether JDT Core already suppresses certain
> kinds of I/O exceptions. Could you check? If not, I think it is fair to no log
> the NoRouteToHostException.
Yes, we don't log FileNotFoundException. So I could also not log NoRouteToHostException as well.

Comment 4 Dani Megert CLA 2008-09-23 09:23:41 EDT
Sounds good. Can I move the bug to you then?
Comment 5 Olivier Thomann CLA 2008-09-23 09:33:19 EDT
Sure. The fix should be applied inside the org.eclipse.jdt.internal.core.JavaElement.getURLContents() call.
Comment 6 Olivier Thomann CLA 2008-09-23 09:35:09 EDT
Created attachment 113247 [details]
Proposed fix
Comment 7 Olivier Thomann CLA 2008-09-23 09:53:33 EDT
Released for 3.5M3 in HEAD.
John, please verify that this doesn't occur anymore using a build > 0923.

Verifier, in order to verify, the machine must be disconnected.
Comment 8 Frederic Fusier CLA 2008-10-28 10:23:43 EDT
When disconnected, using I20081026-2000, I still get an exception:

!SUBENTRY 1 org.eclipse.jdt.core 4 1008 2008-10-28 14:00:06.578
!MESSAGE Cannot retrieve the attached javadoc for String {key=Ljava/lang/String;} [in String.class [in java.lang [in C:\JDKs\sun\6.0\jre\lib\rt.jar]]]java.net.UnknownHostException: java.sun.com
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
        at java.net.Socket.connect(Socket.java:519)
        at java.net.Socket.connect(Socket.java:469)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
        at sun.net.www.http.HttpClient.New(HttpClient.java:306)
        at sun.net.www.http.HttpClient.New(HttpClient.java:323)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:788)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:729)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:654)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:977)
        at org.eclipse.jdt.internal.core.JavaElement.getURLContents(JavaElement.java:752)
        at org.eclipse.jdt.internal.core.BinaryType.getJavadocContents(BinaryType.java:1080)
        at org.eclipse.jdt.internal.core.BinaryType.getAttachedJavadoc(BinaryType.java:992)
        at org.eclipse.jdt.internal.ui.text.javadoc.JavadocContentAccess2.getHTMLContent(JavadocContentAccess2.java:462)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:553)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:510)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo2(JavadocHover.java:495)
        at org.eclipse.jdt.internal.ui.text.java.hover.BestMatchHover.getHoverInfo2(BestMatchHover.java:129)
        at org.eclipse.jdt.internal.ui.text.java.hover.JavaEditorTextHoverProxy.getHoverInfo2(JavaEditorTextHoverProxy.java:82)
        at org.eclipse.jface.text.TextViewerHoverManager$4.run(TextViewerHoverManager.java:166)
Comment 9 Olivier Thomann CLA 2008-10-28 12:37:11 EDT
Created attachment 116314 [details]
Proposed fix

New patch catches more exceptions.
Comment 10 Olivier Thomann CLA 2008-10-28 12:37:35 EDT
Released for 3.5M3.
Comment 11 David Audel CLA 2008-10-29 05:23:35 EDT
Verified for 3.5M3 using I20081028-2000 build.