Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 351072 - [Help][Search] If search word contains ":" then click on a search result shows empty page
Summary: [Help][Search] If search word contains ":" then click on a search result show...
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: User Assistance (show other bugs)
Version: 3.7   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.8 M4   Edit
Assignee: platform-ua-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-04 07:35 EDT by Holger Voormann CLA
Modified: 2011-12-01 15:13 EST (History)
4 users (show)

See Also:


Attachments
Patch in Git patch format (3.07 KB, patch)
2011-11-30 05:16 EST, Holger Voormann CLA
ChrisAustin: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Holger Voormann CLA 2011-07-04 07:35:59 EDT
Steps to reproduce (A):

1. Open Eclipse Help: Help > Help Contents
2. In "Search:" input field enter "See also:" + Click "Go"
3. Click on a search result

Is: Empty topic page ("ContentViewFrame")
Should: Same behavior as when searching for "See also" (without colon)


Steps to reproduce (B):

Online:
<http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.user/tasks/welcome.htm?resultof=%22%53%65%65%22%20%22%73%65%65%22%20%22%61%6c%73%6f%3a%22%20%22%61%6c%73%6f%22%20>

Is: Empty page
Should: Similar to <http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.user/tasks/welcome.htm?resultof=%22%53%65%65%22%20%22%73%65%65%22%20%22%61%6c%73%6f%22%20>


Probably, this problem exists since Helios:
Galileo: okay <http://help.eclipse.org/galileo/topic/org.eclipse.platform.doc.user/tasks/welcome.htm?resultof=%22%53%65%65%22%20%22%73%65%65%22%20%22%61%6c%73%6f%3a%22%20%22%61%6c%73%6f%22%20>
Helios: empty page <http://help.eclipse.org/helios/topic/org.eclipse.platform.doc.user/tasks/welcome.htm?resultof=%22%53%65%65%22%20%22%73%65%65%22%20%22%61%6c%73%6f%3a%22%20%22%61%6c%73%6f%22%20>
Comment 1 Helmut J. Haigermoser CLA 2011-11-08 08:04:45 EST
CQ:WIND00315816

Guys,
I've seen this as well, it's a very annoying bug preventing the usage of the help system for anything containing a colon character.

Seems like John Arthorne was fixing something similar on the Orion front:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=336552

Can we get this fixed in 3.8?

Here is the exception happening(1), looks like the colon is mis-interpreted as protocol delimiter.

Let me know if I can do anything more, but the steps to reproduce are really easy and 100% reproducable on my Windows 7 as well...

Helmut

[1] error log entry(I was searching for the string 'NOTE:'): 
java.net.URISyntaxException: Illegal character in query at index 80: com.ibm.rational.clearcase.ccrc.nav.doc/topics/cc_ms_relnotes_stub.htm?resultof="NOTE:%22%20%22note%22%20
	at java.net.URI$Parser.fail(Unknown Source)
	at java.net.URI$Parser.checkChars(Unknown Source)
	at java.net.URI$Parser.parseHierarchical(Unknown Source)
	at java.net.URI$Parser.parse(Unknown Source)
	at java.net.URI.<init>(Unknown Source)
	at org.eclipse.core.runtime.URIUtil.fromString(URIUtil.java:146)
	at org.eclipse.help.internal.webapp.servlet.EclipseConnector.transfer(EclipseConnector.java:111)
	at org.eclipse.help.internal.webapp.servlet.ContentServlet.doGet(ContentServlet.java:45)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Comment 2 Holger Voormann CLA 2011-11-30 05:16:13 EST
Created attachment 207712 [details]
Patch in Git patch format

Fix: In org.eclipse.help.internal.webapp.servlet.EclipseConnector the query part of the URL must not be decoded (keep colons as "%3a" instead of decode them into ":")
Comment 3 Chris Austin CLA 2011-11-30 10:37:40 EST
Patch looks good, committed to master, integration.

http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/?id=14d1d9f99bd46c89562ab8552d69c8f13f470465
Comment 4 Helmut J. Haigermoser CLA 2011-11-30 10:49:55 EST
(In reply to comment #3)
> Patch looks good, committed to master, integration.
> 
> http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/?id=14d1d9f99bd46c89562ab8552d69c8f13f470465

Thanks Chris! :)
Good work Holger! :)
Comment 5 Holger Voormann CLA 2011-12-01 05:31:51 EST
Thx Chris.

Could this patch also applied to the "R3_7_maintenance" branch to fix it in the 3.7.2 service release, too?
Comment 6 Chris Austin CLA 2011-12-01 10:12:10 EST
(In reply to comment #5)
> Could this patch also applied to the "R3_7_maintenance" branch to fix it in the
> 3.7.2 service release, too?

The maintenance releases are really reserved for serious problems (which I might define as security breaches, help not working as a whole, big regressions, etc).  The ':' not working in search, albeit annoying, is not a major issue.

To read up on the plan, see 'What is the game plan?' in this doc:
http://eclipse.org/eclipse/development/plans/freeze_plan_3_7_1.php
Comment 7 Holger Voormann CLA 2011-12-01 10:58:09 EST
(In reply to comment #6)
Probably, queries that contain colons are rarely used in normal documentation/help. Unfortunately, in documentation for a C++ library/framework colons are essential parts of the naming, e.g. a query like "std::cout" is not extraordinary. Also in XSLT and maybe in some transformation languages colons are part of the naming.
Comment 8 Chris Goldthorpe CLA 2011-12-01 12:04:30 EST
I agree with Chris A in that this change is not one we want to make in a point release. The code being modified is a section that every call to the server goes through and it would be extremely difficult to assure ourselves that we have not introduced any regressions or security vulnerabilities.
Comment 9 Holger Voormann CLA 2011-12-01 15:13:32 EST
(In reply to comment #8)
Okay, I understand.
Thx for your quick response and for fixing it in HEAD/master.


Verified in N20111130.