Amshika Hameed created CXF-9108: ----------------------------------- Summary: Resource name passed to Classloader method should not have a leading slash Key: CXF-9108 URL: https://issues.apache.org/jira/browse/CXF-9108 Project: CXF Issue Type: Bug Components: Core Affects Versions: 3.5.10, 3.5.9 Reporter: Amshika Hameed
In the [Version|https://github.com/apache/cxf/blob/3.5.x-fixes/core/src/main/java/org/apache/cxf/version/Version.java] class, the ClassLoader's getResourceAsStream method is called using a resource name constructed using the [VERSION_BASE|https://github.com/apache/cxf/blob/467e235a9ef4b5cdd39a4312686bfe7c23b0ac45/core/src/main/java/org/apache/cxf/version/Version.java#L32] which has a leading slash first. If that fails to find the resource, it strips the leading slash and makes a second call. However, as pointed out by *[markt-asf|https://github.com/markt-asf]* in [this comment|https://github.com/apache/tomcat/pull/816#issuecomment-2640347996], the [Java documentation on using methods of the ClassLoader class|https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html?utm_source=chatgpt.com#classloader] states that resource names used when calling ClassLoader methods should not have a leading slash. {quote}The methods in ClassLoader use the given String as the name of the resource without applying any absolute/relative transformation (see the methods in Class). The name should not have a leading "/". {quote} Further, the [Java documentation on resource names|https://docs.oracle.com/javase/8/docs/technotes/guides/lang/resources.html?utm_source=chatgpt.com#res_names] also states, {quote}Absolute names are stripped of their starting "/" and are passed, without any further modification, to the appropriate {{ClassLoader}} method to locate the resource. {quote} Therefore, ideally, the [VERSION_BASE|https://github.com/apache/cxf/blob/467e235a9ef4b5cdd39a4312686bfe7c23b0ac45/core/src/main/java/org/apache/cxf/version/Version.java#L32] should not have a leading slash and a single call to the ClassLoader's getResourceAsStream method would suffice. -- This message was sent by Atlassian Jira (v8.20.10#820010)