Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 331316 - [Webapp] ArrayIndexOutOfBoundsException on dsdp.eclipse.org infocenter
Summary: [Webapp] ArrayIndexOutOfBoundsException on dsdp.eclipse.org infocenter
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: User Assistance (show other bugs)
Version: 3.7   Edit
Hardware: PC Linux-GTK
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: platform-ua-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-29 05:46 EST by Martin Oberhuber CLA
Modified: 2011-04-29 14:21 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Oberhuber CLA 2010-11-29 05:46:02 EST
Build ID: 3.7M3

I got this logged on the console of our infocenter running on dsdp.eclipse.org while navigating the documentation. I'm rolling back from 3.7M3 to 3.6.1 because the infocenter doesn't seem to run reliably:

2010-11-29 05:41:47.800:WARN::ERROR:  /help/nav/7_1_2_13
java.lang.ArrayIndexOutOfBoundsException: 7
        at org.eclipse.help.internal.webapp.servlet.NavServlet.getTopic(NavServlet.java:91)
        at org.eclipse.help.internal.webapp.servlet.NavServlet.doGet(NavServlet.java:58)
        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:318)
        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 1 Chris Goldthorpe CLA 2010-11-29 14:02:23 EST
I don't immediately see what would cause a regression in this area - I will investigate.
Comment 2 Chris Goldthorpe CLA 2010-11-29 16:10:42 EST
Do you have any background on what was taking place when the exception occurred? This section of code is called when the user clicks on a link to a nav page, either in the table of contents or from a breadcrumb. The line where the exception is thrown is reading from the array of Tocs based on the first segment of the path. In this case it is trying to read element 7 from the array of Tocs, I'm guessing that there are no more that 7 Tocs and that the servlet was called with an invalid parameter. 

Without knowing the circumstances it's going to be hard to figure out why this occurred - it could even be a user with a stale bookmark. Have you seen multiple errors like this?
Comment 3 Martin Oberhuber CLA 2010-11-30 00:34:43 EST
I had updated the infocenter on dsdp.eclipse.org to a new version, and tested it myself. Had noticed some very odd behavior in Firefox (books did not appear in the TOC at all, though search did produce hits; pressing the "Show in contents" button did then bring up the missing book).

Also played with scopes a bit.

When I saw that IE didn't behave that oddly, I cleared the cache in Firefox and it went back to normal. I should mention that I see very slow load times / high latency from my workplace to the server.

My infocenter is very small (just 4 books), you can try it yourself on
 http://dsdp.eclipse.org/help/latest/
it's now running 3.7M3 again and I plan to upgrade to an I-build using Lucene 2.9.1 soon.

From what you say, the exception is probably kinda expected in this situation and seems to be harmless. I'm OK with closing this "WORKSFORME". Are you generally interested in having infocenter exceptions reported? About once in a month I do see exceptions similar to this in the log. My infocenter is shutdown and restarted frequently.
Comment 4 Chris Goldthorpe CLA 2011-01-26 18:42:52 EST
I've been thinking about whether the infocenter should report messages of this kind. The convention seems to be that when the help system runs into a situation where an exception is thrown that exception is written to the log so I'll close out this bug.