eclipse-ee4j / glassfish

Eclipse GlassFish
https://eclipse-ee4j.github.io/glassfish/
386 stars 144 forks source link

[admin gui help] ArrayIndexOutOfBounds Exception #8249

Closed glassfishrobot closed 15 years ago

glassfishrobot commented 15 years ago

java_ee_sdk-6-preview-b03a-windows.exe

browser: firefox 3.0.6

tested with May 6th nightly build

online help left side tree missing and ArrayIndexOutofBunds Exception shows.

This happens to tree node "thread pools" and "network config"

to reproduce:

1. launch admin GUI 2. configuration --> thread pools 3. now click HELP push button on the top frame 4. a new window pops up and shows the ArrayIndexOutOfBounds exception from OLH

the server.log:

[#|2009-05-07T12:07:15.772-0700|SEVERE|glassfish|javax.enterprise.system.contain er.web.com.sun.enterprise.web|_ThreadID=17;_ThreadName=Thread-1;|StandardWrapper Valve[FacesServlet]: PWC1406: Servlet.service() for servlet FacesServlet threw e xception java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.sun.grizzly.util.buf.ByteChunk.canGrow(ByteChunk.java:447) at com.sun.grizzly.util.buf.C2BConverter.convert(C2BConverter.java:132) at com.sun.grizzly.util.buf.C2BConverter.convert(C2BConverter.java:154) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:52 8) at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:24 8) at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:25 7) at com.sun.faces.application.view.WriteBehindStateWriter.write(WriteBehi ndStateWriter.java:123) at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.endElement(Html ResponseWriter.java:490) at com.sun.webui.jsf.util.JavaScriptUtilities.renderJavaScriptEnd(JavaSc riptUtilities.java:361) at com.sun.webui.jsf.renderkit.widget.RendererBase.encodeEnd(RendererBas e.java:198) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUt ilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.renderImageOrText(T reeNodeRenderer.java:375) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.renderTreeRow(TreeN odeRenderer.java:315) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.encodeEnd(TreeNodeR enderer.java:185) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUt ilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.encodeEnd(TreeNodeR enderer.java:216) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUt ilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.encodeEnd(TreeNodeR enderer.java:216) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUt ilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeRenderer.encodeEnd(TreeRenderer. java:205) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java: 874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(J spViewHandlingStrategy.java:395) at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(Jsp ViewHandlingStrategy.java:192) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewH andler.java:126) at com.sun.jsftemplating.layout.LayoutViewHandler.renderView(LayoutViewH andler.java:666) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePha se.java:124) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:103) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.r ender(PartialTraversalLifecycle.java:92) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java :1461) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:346) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:216) at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:259) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:216) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve.java:291) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:187) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav a:647) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESess ionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.j ava:351) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav a:249) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(Container Mapper.java:202) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:7 46) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:655) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:905) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFil ter.java:161) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultPro tocolChain.java:136) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.jav a:103) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.jav a:89) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java :76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextT ask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask. java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec utor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:908) at java.lang.Thread.run(Thread.java:619)

| #] |

Environment

Operating System: Windows Vista Platform: PC

Affected Versions

[V3]

glassfishrobot commented 6 years ago
glassfishrobot commented 15 years ago

@glassfishrobot Commented yifeng1 said: Created an attachment (id=2754) image shows OLH issue

glassfishrobot commented 15 years ago

@glassfishrobot Commented chaase3 said: I think you may find that if this problem happens, it happens for many other pages in addition to the two you mentioned.

Also, in my experience, it can be a timing issue; if you click the Help button as soon as the GUI page has opened, the error happens, but if you then wait a minute and click again, the TOC appears correctly in the left pane. Why this is I do not know. However, it is not a problem with the help itself.

I found the problem in the May 5 nightly but could not reproduce it in a glassfish that I built myself yesterday. I have not yet tried today's nightly.

glassfishrobot commented 15 years ago

@glassfishrobot Commented yifeng1 said: for me, "network config" and "thread pools" tree node along with their sub tree node always have this problem. Meanwhile, when I click other tree node, such as "security" at the same time and view help is fine.

glassfishrobot commented 15 years ago

@glassfishrobot Commented chaase3 said: I spent a fair amount of time bringing the help up from various GUI pages using today's build, glassfish-v3-b47b-05_07_2009.zip.

You're right about an issue with network config. The first 2 times I clicked Help from that page, I got the error. After that, I did not. I never got an error with thread pools, or with network listeners or protocols.

Common Tasks – ok Network Config – error Virtual Servers – ok Thread Pools – ok Network Config – error Network Listeners – ok Thread Pools – ok Edit Thread Pool – ok Protocols – ok New Protocol – ok Network Config (go to page and then wait a while before clicking Help) – ok Monitoring Service – ok Thread Pools – ok Network Config – ok Resources – ok Applications – ok

The cause of this is not something that Docs has any control over, so I'm changing this to an admin_gui issue.

glassfishrobot commented 15 years ago

@glassfishrobot Commented anilam said: This is what i see:

The java.lang.ArrayIndexOutOfBoundsException comes up in CommonTask page or any other page if you press help right away after GUI starts, but if you wait a while, and press again, it will be fine. Or you wait sometime before trying to bring it up.

however, if you are looking at pages related to grizzly config, then no matter how long you wait, you will always see this problem.

I don't think this is a GUI issue. Adding other to see for other info.

With the latest build on the preview branch, i see the error, but there is no stack trace coming out at all. I have no idea why.

glassfishrobot commented 15 years ago

@glassfishrobot Commented @rlubke said: Additional CCs

glassfishrobot commented 15 years ago

@glassfishrobot Commented anilam said: With the workspace i checked out on 5/10, from the trunk, i am seeing this issue consistently. And regardless how long i wait, it failed.

Here is the stack trace:

May 11, 2009 9:09:08 AM com.sun.jsftemplating.util.LogUtil info INFO: JSFT0004: The requested resource (/en_US/help/app.hs) is not available. May 11, 2009 9:09:08 AM org.apache.catalina.core.StandardWrapperValve log SEVERE: StandardWrapperValve[FacesServlet]: PWC1406: Servlet.service() for servlet FacesServlet threw exception java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.sun.grizzly.util.buf.ByteChunk.canGrow(ByteChunk.java:447) at com.sun.grizzly.util.buf.C2BConverter.convert(C2BConverter.java:132) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:510) at org.apache.catalina.connector.CoyoteWriter.write(CoyoteWriter.java:224) at com.sun.faces.application.view.WriteBehindStateWriter.write(WriteBehindStateWriter.java:143) at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.flushAttributes(HtmlResponseWriter.java:1120) at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.closeStartIfNecessary(HtmlResponseWriter.java:1070) at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.startElement(HtmlResponseWriter.java:585) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.renderTreeRow(TreeNodeRenderer.java:259) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.encodeEnd(TreeNodeRenderer.java:185) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUtilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeNodeRenderer.encodeEnd(TreeNodeRenderer.java:216) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at com.sun.webui.jsf.util.RenderingUtilities.renderComponent(RenderingUtilities.java:80) at com.sun.webui.jsf.renderkit.html.TreeRenderer.encodeEnd(TreeRenderer.java:205) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:874) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1612) at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:395) at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:192) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126) at com.sun.jsftemplating.layout.LayoutViewHandler.renderView(LayoutViewHandler.java:666) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:124) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:103) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.render(PartialTraversalLifecycle.java:92) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1437) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:346) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:216) at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:267) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:259) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:216) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:291) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:187) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:647) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:353) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:249) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:203) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:746) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:655) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:905) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:161) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:136) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:637)

glassfishrobot commented 15 years ago

@glassfishrobot Commented chaase3 said: I notice that the file that is not found is

/en_US/help/app.hs

In fact, what is in the corehelp.jar file is

en/help/app.hs

This could be a platform-specific issue. Are you using Windows or Unix? I have found in the past that Windows is much fussier than Solaris about locale settings.

glassfishrobot commented 15 years ago

@glassfishrobot Commented chaase3 said: Using today's nightly build (glassfish-v3-b47b-05_11_2009.zip) on Solaris, I find that most of the time the help comes up correctly, although there does seem to be a timing problem if I click Help right after opening the page.

On Windows, the runtime error sometimes happens right away, and sometimes it takes a while. But once the runtime error appears for the first time, it often keeps appearing even if I wait to try to resolve the timing problem. But even on Windows the correct TOC does come up on occasion.

On Windows, the message about not being able to find /en_US/help/app.hs appears twice each time I click the Help button. However, this does not seem to prevent the help set from being found. I assume when it doesn't find it under en_US it looks under en and finds it. So this is a red herring.

glassfishrobot commented 15 years ago

@glassfishrobot Commented jfarcand said: I can't reproduce the issue using the current 3.0-Preview branch. Yifeng, can you try it? I'm on Ubuntu, will try it on winXP just in case.

glassfishrobot commented 15 years ago

@glassfishrobot Commented yifeng1 said: java_ee_sdk-6-b03b-05_11_2009-windows.exe

windows vista jdk 1.6.0_13

Please give a try with above bits. I installed latest nightly on preview branch and I am able to reproduce:

1. after installation, launch GUI 2. from left side tree node, click configuration --> thread pool 3. click HELP on the top frame, I can see the exception from help window as well as server.log

Good luck!

glassfishrobot commented 15 years ago

@glassfishrobot Commented janey said: Hudson's QL test is failing in the Preview branch because of this bug. http://hudson.glassfish.org/job/gf-preview-build-continuous

Raising priority to P1.

glassfishrobot commented 15 years ago

@glassfishrobot Commented jfarcand said: A possible solution would consist of

Index: src/main/java/org/apache/catalina/connector/OutputBuffer.java

— src/main/java/org/apache/catalina/connector/OutputBuffer.java (revision 26920) +++ src/main/java/org/apache/catalina/connector/OutputBuffer.java (working copy) @@ -638,7 +638,7 @@

public void setBufferSize(int size) {

But we need to understand what caused the current regression. The Faces Servlet seems to set the response buffer to 2048, which is clearly too small, and doesn't seems to set it for every request.

glassfishrobot commented 15 years ago

@glassfishrobot Commented jfarcand said: There is clearly a regression with the way the buffer is getting set, but I will go ahead and improve the Grizzly side

Index: src/main/java/com/sun/grizzly/util/buf/ByteChunk.java

— src/main/java/com/sun/grizzly/util/buf/ByteChunk.java (revision 3169) +++ src/main/java/com/sun/grizzly/util/buf/ByteChunk.java (working copy) @@ -441,8 +441,9 @@ // This seems like a potential place for huge memory use, but it's // the same algorithm as makeSpace() has always effectively used. int desiredSize = buff.length * 2;

glassfishrobot commented 15 years ago

@glassfishrobot Commented jfarcand said: Fixed on the branch

Sending pom.xml Transmitting file data . Committed revision 27288.

glassfishrobot commented 15 years ago

@glassfishrobot Commented jfarcand said: Fixed on trunk as well (integrated 1.9.15a)

glassfishrobot commented 15 years ago

@glassfishrobot Commented File: May6th2.JPG Attached By: yifeng1

glassfishrobot commented 15 years ago

@glassfishrobot Commented Was assigned to jfarcand

glassfishrobot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA GLASSFISH-8249

glassfishrobot commented 15 years ago

@glassfishrobot Commented Reported by yifeng1

glassfishrobot commented 15 years ago

@glassfishrobot Commented Marked as fixed on Thursday, May 14th 2009, 6:36:52 am