Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#1823] Fix play.exceptions.CompilationException (fix for the fix #786) #1223

Closed
flybyray opened this issue Mar 8, 2018 · 1 comment · Fixed by #1224
Closed

[#1823] Fix play.exceptions.CompilationException (fix for the fix #786) #1223

flybyray opened this issue Mar 8, 2018 · 1 comment · Fixed by #1224
Assignees
Labels
Milestone

Comments

@flybyray
Copy link
Contributor

flybyray commented Mar 8, 2018

ApplicationClassloader uses a cache for negative and postiv lookup of packages in isPackage method.
On windows systems file lookup is case insensitive. For that rease #786 introduced a canonical filename review to check case sensitive.

Take a look for the play.libs.ws package, you can put a conditional break point here.

classloader_collide

you will then see a call to Play.classloader.getResource with a play/libs/ws.class argument

classloader_collide2

which is not resolved by Play1's java path virtualfile system loop (i added the boolean b to make that clear). The java classloader getResource will then find case insensitive the play.lib.WS.class (returning lower case) and hence the package cache gets a negative lookup for play.libs.ws.

classloader_collide3
classloader_collide4

The fix is easy. If we lookup the possible call hierachies the fix from #786 needs to moved up to getResource.

This issue can only be tested on systems with case insensitive file systems enabled.

@flybyray
Copy link
Contributor Author

flybyray commented Mar 8, 2018

maybe some case insensitive python based "i am a developer" tests could be added to travis.
the jfs filesystem could be loop mounted https://serverfault.com/a/877142
similar like this
https://github.com/probonopd/SystemImageKit/blob/master/.travis.yml#L26

@xael-fry xael-fry self-assigned this Mar 16, 2018
@xael-fry xael-fry added this to the 1.5.1 milestone Mar 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants