Skip to content

Return absolute path without leading slash from ClassPathResource#getPath #29099

Closed
@sbrannen

Description

@sbrannen

After putting further thought into the semantics for getPath() in ClassPathResource, I realized the following.

  1. Several tests were previously misusing getPath(), and I rectified that in commit 1688bec.
  2. My updates to the Javadoc for getPath() make it clear that the semantics are very inconsistent. See current Javadoc.
  3. If we switch getPath() to return this.absolutePath, the entire test suite passes except ClassPathResourceTests.preserveLeadingSlashForClassRelativeAccess(). Yet, I would argue that's not a valid use case.

In light of the above, I'm wondering if we should:

  1. Switch getPath() to return the absolute path consistently without a leading slash.
  2. Return the Javadoc for getPath() to its previous state (prior to Introduce getAbsolutePath() in ClassPathResource #29094).
  3. Remove the newly introduced getAbsolutePath() method (i.e., revert Introduce getAbsolutePath() in ClassPathResource #29094).

Metadata

Metadata

Assignees

Labels

in: coreIssues in core modules (aop, beans, core, context, expression)theme: aotAn issue related to Ahead-of-time processingtype: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions