Bill Lucy created MYFACES-4107: ---------------------------------- Summary: StringIndexOutOfBoundsException in getResourceVersion Key: MYFACES-4107 URL: https://issues.apache.org/jira/browse/MYFACES-4107 Project: MyFaces Core Issue Type: Bug Affects Versions: 2.2.12, 2.1.18, 2.0.24 Environment: WebSphere Liberty Reporter: Bill Lucy Assignee: Bill Lucy Priority: Minor Attachments: MYFACES-4107.patch
I've run into a case where, given an incorrect context parameter, a StringIndexOutOfBoundsException is thrown. This occurs in WebSphere Liberty because the server normalizes the external context resource paths during app initialization. For example, this parameter: <context-param> <param-name>javax.faces.WEBAPP_RESOURCES_DIRECTORY</param-name> <param-value>/META-INF/resources</param-value> </context-param> throws: java.lang.StringIndexOutOfBoundsException: String index out of range: 35 at java.lang.String.substring(String.java:1377) at org.apache.myfaces.shared.resource.ExternalContextResourceLoader.getResourceVersion(ExternalContextResourceLoader.java:81) That parameter value is not allowed to have a leading slash. However, the current exception is not very helpful, and can be easily avoided. I'll attach a patch which avoids the StringIndexOutOfBoundsException in getResourceVersion(); we already have this logic in getLibraryVersion(). -- This message was sent by Atlassian JIRA (v6.3.15#6346)