You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jspwiki.apache.org by Harald Krammer <hk...@a1.net> on 2010/08/06 20:41:03 UTC

Re: ArrayIndexOutOfBoundsException now...

Hello,
the problem is gone, but why? The Wiki runs more than 5 days without the
Exception.

It looks like for me that a user did some unknown things to trigger the
problem. I saw that a user added few attachments ( ~ 30 ) into a side
and then the problems were starting. I got the exception, made a restart
of the Wiki.  The user added more attachments -> Exception -> Restart ->
... The user finished his work -> all fine again.

hmmmmm. I would like to find the problem. I did all the jobs what I saw
in the LOG to reproduce the user actions but the problems did not
happen.  Only the differences was the Os version.

Any ideas are welcome.

Nice greeting,
Harald


Am 2010-07-28 21:07, schrieb Harald Krammer:
> Hello Andrew,
> 
> Today I moved back to JRE 1.6u20 and the problem happens again. So I
> think the VM isn't involved.
> I agree that other components could be the reason, but my test
> environment and my family wiki is running fine with the same system. I
> guess it is a local problem with "special" content in my company-wiki.
> 
> I enabled the debug option and here is my log in case of the problem:
> http://hkr.at/problem.txt
> 
> I got one more Exception 'javax.servlet.jsp.JspException: WikiContext
> may not be NULL - serious internal problem'. Maybe it helps to find out
> what's wrong.
> The user told me he added only an attachment to a side and then the
> problems were starting. (e.g. Login not possible any more)
> 
> After reviewing of the log file I found one more exception  type:
> 2010-07-28 10:01:47,447 [main] WARN
> com.ecyrd.jspwiki.parser.JSPWikiMarkupParser  - TranslatorReader got a
> faulty page name!
> 
> Full trace is here http://hkr.at/exception.txt
> Is there a connection ?
> 
> Nice greetings,
> Harald
> 
> Am 2010-07-28 03:32, schrieb Andrew Jaquith:
>> Hi Harald --
>>
>> Having taken a look at the code, I think it is possible that unlikely
>> that JSPWiki could be causing the problem. The line in XMLUserDatabase
>> that triggered the downstream error is simply searching for an XML
>> Node by tag name:
>>
>> NodeList users = c_dom.getElementsByTagName( USER_TAG )
>>
>> The tag name USER_TAG is static and predictable, so no user- or
>> configuration-related inputs could be causing this.
>>
>> It is possible that there is something funky with your XML DOM parser.
>> I noticed that your JRE is using the gnu.xml.dom package. You might
>> want to see if using a different DOM parser (for example, Xerces)
>> produces a different result. The GNU DOM package might have been
>> updated when you did your update.
>>
>> Let me know what you find out..
>>
>> Andrew
>>
>> On Tue, Jul 27, 2010 at 1:04 PM, Harald Krammer <Ha...@hkr.at> wrote:
>>> Hello,
>>>
>>> I am using JSPWiki Version 2.8.3 on Apache Tomcat 6.0.26 (Debian Linux
>>> i386) with JRE 1.6u21. The last two days I am getting  a
>>> ArrayIndexOutOfBoundsException few times per day and the Login does not
>>> work anymore. A restart of the container fixes the problem but it isn't
>>> a solution for me.
>>> I don't know why it happens now. What could be the trigger? I did not
>>> change any configurations.
>>> One week ago I made a security update of the system (also Java) too.
>>> Authentication method is Web Container Authentication Via LDAP.
>>>
>>> Any help are welcome!
>>>
>>>
>>> java.lang.ArrayIndexOutOfBoundsException: 6073
>>> at gnu.xml.dom.DomNode.addEventListener(DomNode.java:1249)
>>> at gnu.xml.dom.DomNode$LiveNodeList.<init>(DomNode.java:1059)
>>> at gnu.xml.dom.DomNode$ShadowList.<init>(DomNode.java:1030)
>>> at gnu.xml.dom.DomNode.getElementsByTagName(DomNode.java:1005)
>>> at
>>> com.ecyrd.jspwiki.auth.user.XMLUserDatabase.findByAttribute(XMLUserDatabase.java:614)
>>> at
>>> com.ecyrd.jspwiki.auth.user.XMLUserDatabase.findByFullName(XMLUserDatabase.java:163)
>>> at
>>> com.ecyrd.jspwiki.auth.user.AbstractUserDatabase.find(AbstractUserDatabase.java:81)
>>> at
>>> com.ecyrd.jspwiki.auth.AuthorizationManager.resolvePrincipal(AuthorizationManager.java:630)
>>> at
>>> com.ecyrd.jspwiki.auth.AuthorizationManager.checkPermission(AuthorizationManager.java:248)
>>> at
>>> com.ecyrd.jspwiki.attachment.AttachmentServlet.doGet(AttachmentServlet.java:273)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>> at com.ecyrd.jspwiki.dav.WebdavServlet.service(WebdavServlet.java:167)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>> at
>>> com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:174)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
>>> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
>>> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
>>> at
>>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
>>> at
>>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
>>> at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
>>> at java.lang.Thread.run(Thread.java:619)
>>>
>>>
>>>
>>> Nice greetings,
>>> Harald
>>>
>>> --
>>>
>>> Harald Krammer
>>>
>>> Mobil +43.(0) 664. 130 59 58
>>> Mail: Harald.Krammer (at) hkr.at
>>>
>>
> 

-- 

Harald Krammer

Mobil +43.(0) 664. 130 59 58
Mail: Harald.Krammer (at) hkr.at

Re: ArrayIndexOutOfBoundsException now...

Posted by Harald Krammer <hk...@a1.net>.
Hello,
I got a trigger for the problem.

If you can remember the stack Trace was:
 java.lang.ArrayIndexOutOfBoundsException: 6073
  at gnu.xml.dom.DomNode.addEventListener(DomNode.java:1249)
  at gnu.xml.dom.DomNode$LiveNodeList.<init>(DomNode.java:1059)
  at gnu.xml.dom.DomNode$ShadowList.<init>(DomNode.java:1030)
  at gnu.xml.dom.DomNode.getElementsByTagName(DomNode.java:1005)
  at
com.ecyrd.jspwiki.auth.user.XMLUserDatabase.findByAttribute(XMLUserDatabase.java:614)

It can occur when a user sets incorrect rules into the the ALLOW filter.
Today the trigger was a miss-typing of capitalization e.g [{ALLOW edit
FAMILY }] instead of [{ALLOW edit familiy }]. One thing is importen to
know. I saw this problem only together with Web-Container authentication
via LDAP. On my 2nd installation (without Web-Container  authentication)
wasn't possible to trigger that issue.

Any comments are welcome.
Nice greetings,
Harald


Am 2010-08-06 20:41, schrieb Harald Krammer:
> Hello,
> the problem is gone, but why? The Wiki runs more than 5 days without the
> Exception.
> 
> It looks like for me that a user did some unknown things to trigger the
> problem. I saw that a user added few attachments ( ~ 30 ) into a side
> and then the problems were starting. I got the exception, made a restart
> of the Wiki.  The user added more attachments -> Exception -> Restart ->
> ... The user finished his work -> all fine again.
> 
> hmmmmm. I would like to find the problem. I did all the jobs what I saw
> in the LOG to reproduce the user actions but the problems did not
> happen.  Only the differences was the Os version.
> 
> Any ideas are welcome.
> 
> Nice greeting,
> Harald
> 
> 
> Am 2010-07-28 21:07, schrieb Harald Krammer:
>> Hello Andrew,
>>
>> Today I moved back to JRE 1.6u20 and the problem happens again. So I
>> think the VM isn't involved.
>> I agree that other components could be the reason, but my test
>> environment and my family wiki is running fine with the same system. I
>> guess it is a local problem with "special" content in my company-wiki.
>>
>> I enabled the debug option and here is my log in case of the problem:
>> http://hkr.at/problem.txt
>>
>> I got one more Exception 'javax.servlet.jsp.JspException: WikiContext
>> may not be NULL - serious internal problem'. Maybe it helps to find out
>> what's wrong.
>> The user told me he added only an attachment to a side and then the
>> problems were starting. (e.g. Login not possible any more)
>>
>> After reviewing of the log file I found one more exception  type:
>> 2010-07-28 10:01:47,447 [main] WARN
>> com.ecyrd.jspwiki.parser.JSPWikiMarkupParser  - TranslatorReader got a
>> faulty page name!
>>
>> Full trace is here http://hkr.at/exception.txt
>> Is there a connection ?
>>
>> Nice greetings,
>> Harald
>>
>> Am 2010-07-28 03:32, schrieb Andrew Jaquith:
>>> Hi Harald --
>>>
>>> Having taken a look at the code, I think it is possible that unlikely
>>> that JSPWiki could be causing the problem. The line in XMLUserDatabase
>>> that triggered the downstream error is simply searching for an XML
>>> Node by tag name:
>>>
>>> NodeList users = c_dom.getElementsByTagName( USER_TAG )
>>>
>>> The tag name USER_TAG is static and predictable, so no user- or
>>> configuration-related inputs could be causing this.
>>>
>>> It is possible that there is something funky with your XML DOM parser.
>>> I noticed that your JRE is using the gnu.xml.dom package. You might
>>> want to see if using a different DOM parser (for example, Xerces)
>>> produces a different result. The GNU DOM package might have been
>>> updated when you did your update.
>>>
>>> Let me know what you find out..
>>>
>>> Andrew
>>>
>>> On Tue, Jul 27, 2010 at 1:04 PM, Harald Krammer <Ha...@hkr.at> wrote:
>>>> Hello,
>>>>
>>>> I am using JSPWiki Version 2.8.3 on Apache Tomcat 6.0.26 (Debian Linux
>>>> i386) with JRE 1.6u21. The last two days I am getting  a
>>>> ArrayIndexOutOfBoundsException few times per day and the Login does not
>>>> work anymore. A restart of the container fixes the problem but it isn't
>>>> a solution for me.
>>>> I don't know why it happens now. What could be the trigger? I did not
>>>> change any configurations.
>>>> One week ago I made a security update of the system (also Java) too.
>>>> Authentication method is Web Container Authentication Via LDAP.
>>>>
>>>> Any help are welcome!
>>>>
>>>>
>>>> java.lang.ArrayIndexOutOfBoundsException: 6073
>>>> at gnu.xml.dom.DomNode.addEventListener(DomNode.java:1249)
>>>> at gnu.xml.dom.DomNode$LiveNodeList.<init>(DomNode.java:1059)
>>>> at gnu.xml.dom.DomNode$ShadowList.<init>(DomNode.java:1030)
>>>> at gnu.xml.dom.DomNode.getElementsByTagName(DomNode.java:1005)
>>>> at
>>>> com.ecyrd.jspwiki.auth.user.XMLUserDatabase.findByAttribute(XMLUserDatabase.java:614)
>>>> at
>>>> com.ecyrd.jspwiki.auth.user.XMLUserDatabase.findByFullName(XMLUserDatabase.java:163)
>>>> at
>>>> com.ecyrd.jspwiki.auth.user.AbstractUserDatabase.find(AbstractUserDatabase.java:81)
>>>> at
>>>> com.ecyrd.jspwiki.auth.AuthorizationManager.resolvePrincipal(AuthorizationManager.java:630)
>>>> at
>>>> com.ecyrd.jspwiki.auth.AuthorizationManager.checkPermission(AuthorizationManager.java:248)
>>>> at
>>>> com.ecyrd.jspwiki.attachment.AttachmentServlet.doGet(AttachmentServlet.java:273)
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>>> at com.ecyrd.jspwiki.dav.WebdavServlet.service(WebdavServlet.java:167)
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> at
>>>> com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:174)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> at
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> at
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>> at
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>> at
>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:465)
>>>> at
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>> at
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>> at
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>> at
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
>>>> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
>>>> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
>>>> at
>>>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
>>>> at
>>>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
>>>> at
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
>>>> at java.lang.Thread.run(Thread.java:619)
>>>>
>>>>
>>>>
>>>> Nice greetings,
>>>> Harald
>>>>
>>>> --
>>>>
>>>> Harald Krammer
>>>>
>>>> Mobil +43.(0) 664. 130 59 58
>>>> Mail: Harald.Krammer (at) hkr.at
>>>>
>>>
>>
> 

-- 

Harald Krammer

Mobil +43.(0) 664. 130 59 58
Mail: Harald.Krammer (at) hkr.at