java.lang.ArrayIndexOutOfBoundsException
Posted: Tue Oct 15, 2013 8:41 am
Greetings!
We are using wurfl 1.5 on tomcat 7.0 with java 1.6.0_18. We've noticed that we're periodically getting this exception: java.lang.ArrayIndexOutOfBoundsException
Here is the stack/trace:
We've seen this exception for at least these user agents:
If I'm understanding the ACAutomation class correctly, it looks like the only way this exception can occur is if the failNodes array contains an int value that puts the currState variable out of bounds...
...so that the next iteration of the loop fails on this line...
Does the failNodes array contain indexes to the default devices in the wurfl xml? Does the xml have an error where a device does not have a fallback? These are just my guesses, but you guys are the experts. Please let me know if I can provide additional information.
Thanks,
The Ben
We are using wurfl 1.5 on tomcat 7.0 with java 1.6.0_18. We've noticed that we're periodically getting this exception: java.lang.ArrayIndexOutOfBoundsException
Here is the stack/trace:
Code: Select all
net.sourceforge.wurfl.core.request.ACAutomaton.contains(ACAutomaton.java:124)
net.sourceforge.wurfl.core.request.ACAutomaton.contains(ACAutomaton.java:113)
net.sourceforge.wurfl.core.request.DefaultWURFLRequest._internalIsSmartTvBrowser(DefaultWURFLRequest.java:293)
net.sourceforge.wurfl.core.request.DefaultWURFLRequest._internalIsDesktopBrowserHeavyDutyAnalysis(DefaultWURFLRequest.java:249)
net.sourceforge.wurfl.core.DefaultWURFLService.getDeviceForRequest(DefaultWURFLService.java:177)
root cause: [java.lang.ArrayIndexOutOfBoundsException] nullnet.sourceforge.wurfl.core.request.ACAutomaton.contains(ACAutomaton.java:124)
net.sourceforge.wurfl.core.request.ACAutomaton.contains(ACAutomaton.java:113)
net.sourceforge.wurfl.core.request.DefaultWURFLRequest._internalIsSmartTvBrowser(DefaultWURFLRequest.java:293)
net.sourceforge.wurfl.core.request.DefaultWURFLRequest._internalIsDesktopBrowserHeavyDutyAnalysis(DefaultWURFLRequest.java:249)
net.sourceforge.wurfl.core.DefaultWURFLService.getDeviceForRequest(DefaultWURFLService.java:177)
Code: Select all
Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
Code: Select all
currState = failNodes[currState]; //line 132
Code: Select all
currState = childrenMoves[currState][j]; //124
Thanks,
The Ben