> On Jan 11, 2017, at 5:45 PM, Naoto Sato <[email protected]> wrote:
>
> Decided to include the fix to 8171140 [1] as well, as they are closely
> related. Here is the updated webrev.
>
> http://cr.openjdk.java.net/~naoto/8171139.8171140/webrev.01/
>
> Additional changes to the version 00 are to mainly remove clearCache(Module)
> method, as clearCache() is chiefly used in combination with
> ResourceBundle.Control, which is not supported in named modules. Still named
> modules can issue clearCache() with no argument which will result in the same
> effect. Also, other clearCache() overloads have clearer method descriptions.
I think removing the clearCache(Module) method and have the clearCache() method
removing the resource bundles loaded by the caller’s module is reasonable. For
unnamed module loaded by the application class loader as the caller, the no-arg
clearCache will remove the resource bundles loaded from the classpath.
Comparing to JDK 8, it does not remove resource bundles from the JDK modules
that used to be in tools.jar. IMO this behavioral difference is a good one.
2179 @CallerSensitive
2180 public static final void clearCache(ClassLoader loader) {
2181 Objects.requireNonNull(loader);
2182 Class<?> caller = Reflection.getCallerClass();
2183 clearCacheImpl(null, loader);
2184 }
The clearCache(ClassLoader) method no longer needs to be caller-sensitive. @CS
should be removed, line 2179 and 2182 should be removed.
With this change, I think clearCacheImpl is not as useful. I suggest to do the
removal in the clearCache method body.
It’s okay to push the changesets for two issues together. It’d be useful to
generate a webrev against JDK-8171139 to contain the change in clearCache for
JDK-8171140.
thanks
Mandy