[
https://issues.apache.org/jira/browse/GERONIMO-4679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12718338#action_12718338
]
Shawn Jiang commented on GERONIMO-4679:
---------------------------------------
The url format itself is correct for both windows and non-windows. The reason
why we only see this error on windows is that geronimo uses JarFileClassLoader
for windows, MultiParentClassLoader for non-windows.
JarFileClassLoader is used to keep a copy of classpathes so that it can close
all the jar file handlers on windows. When it cache the file url, It will use
UrlResourceFinder. which will ignore non file: protocol urls and throw the
UnsupportedOperationException.
protected File cacheUrl(URL url) throws IOException {
if (!"file".equals(url.getProtocol())) {
// download the jar
throw new UnsupportedOperationException("Only local file jars are
supported " + url);
}
I think it's safe to turn the stack trace to warn/debug from error. Because
it's working as design.
> many [ERROR] "The protocol for the JAR file's URL is not supported" in the
> build log when building geronimo on windows
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: GERONIMO-4679
> URL: https://issues.apache.org/jira/browse/GERONIMO-4679
> Project: Geronimo
> Issue Type: Improvement
> Security Level: public(Regular issues)
> Components: kernel
> Affects Versions: 2.1.1, 2.1.2, 2.1.3, 2.1.4
> Environment: windows + trunk
> Reporter: Shawn Jiang
> Assignee: Shawn Jiang
> Priority: Minor
> Fix For: 2.1.5, 2.2
>
> Attachments: G4679.patch
>
>
> When building the Geronimo from source code on windows. There are
> many [ERROR] "The protocol for the JAR file's URL is not supported" in
> the build log like following.
> -------------------------------------
> [ERROR] The protocol for the JAR file's URL is not supported
> java.lang.UnsupportedOperationException: Only local file jars are
> supported jar:file:/D:/ws/gtrunck/
> server_repo/org/apache/geronimo/configs/system-database/2.2-SNAPSHOT/
> system-database-2.2-SNAPSHOT.ca
> r!/rar/tranql-connector-1.4.jar
>
> org.apache.geronimo.kernel.classloader.UrlResourceFinder.cacheUrl(UrlResourceFinder.java:231)
>
> org.apache.geronimo.kernel.classloader.UrlResourceFinder.rebuildClassPath(UrlResourceFinder.java
> :188)
>
> org.apache.geronimo.kernel.classloader.UrlResourceFinder.addUrls(UrlResourceFinder.java:142)
>
> org.apache.geronimo.kernel.classloader.UrlResourceFinder.addUrls(UrlResourceFinder.java:127)
>
> org.apache.geronimo.kernel.classloader.JarFileClassLoader$2.run(JarFileClassLoader.java:153)
> ----------------------------------------
> This message was thrown in UrlResourceFinder.cacheUrl() and logged as
> ERROR in UrlResourceFinder.rebuildClassPath().
> --------------------------------------
> } catch (UnsupportedOperationException ex) {
> // the protocol for the JAR file's URL is not
> supported. This can occur when
> // the jar file is embedded in an EAR or CAR
> file. Proceed but log the message.
> log.error("The protocol for the JAR file's URL
> is not supported", ex);
> continue;
> }
> -----------------------------------------
> We'd better to log this as INFO or DEBUG instead of an ERROR so that the user
> will not be mislead by a lot of ERRORs in the build log.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.