Peter Reilly wrote:
On Tue, Feb 26, 2008 at 3:07 PM, Steve Loughran <[EMAIL PROTECTED]> wrote:
Steve Loughran wrote:
> Kevin Jackson wrote:
>> Hi,
>>
>> As I mentioned previously (although I'm a couple of days late).
>>
>> I'd like to release a beta of 1.7.1 within the next two weeks.
>>
>> The current 1.7.1 trunk is now locked for further changes (99.9% test
>> completion on the most troublesome platform (windows))
>>
>
>
> The beta of 1.7.1 is ready:
> [x] yes (+1)
> [ ] no (you missed something...)
>
> That said, I want to look at why it doesn't work on a network mounted
> windows drive. I'll do that this afternoon.
gosh, this is a fun bug.
when you run ant on a remote share, we dont get the right path to the
lancher jar, so things go horribly wrong
Launcher JAR: C:\morzine\slo\Java\Apache\ant\lib\ant-launcher.jar
launcher Directory: C:\morzine\slo\Java\Apache\ant\lib
but I factored out the test and it works; we are creating the correct path.
public void testAntOnRemoteShare() throws Throwable {
String launcher =
"//morzine/slo/Java/Apache/ant/lib/ant-launcher.jar";
String jarURI
= "jar:file:"+ launcher
+"!/org/apache/tools/ant/launch/Launcher.class";
String resolved=Locator.fromJarURI(jarURI);
assertResolved(jarURI,launcher,resolved,true);
}
Either we're pasting in the CWD in front, or new File() is doing it for us.
Does this happen in ant 1.7.0 ?
If it does, this means that this bug should be not a reason to hold up
ant 1.7.1.
the bug has been around since 1.7.alpha; 2007-04
in 1.7.0 the failure is as follows:
\\PC03\jclasses\lib\ant-1.7.0.jar
on the classpath.
Ant is failing while trying to create the URI of the file
java.lang.IllegalArgumentException: URI has an authority component
at java.io.File.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.tools.ant.launch.Locator.fromURI(Locator.java:165)
at
org.apache.tools.ant.launch.Locator.getResourceSource(Locator.java:119)
at
org.apache.tools.ant.launch.Locator.getClassSource(Locator.java:90)
at org.apache.tools.ant.Project.setAntLib(Project.java:313)
at org.apache.tools.ant.Project.initProperties(Project.java:309)
at org.apache.tools.ant.Project.init(Project.java:295)
at org.apache.tools.ant.Main.runBuild(Main.java:663)
at org.apache.tools.ant.Main.startAnt(Main.java:199)
at org.apache.tools.ant.Main.start(Main.java:161)
at org.apache.tools.ant.Main.main(Main.java:250)
We thought we'd fixed it, by switching to the java1.3 URI stuff
everywhere, indeed, 1.7.1 marks it as fixed
* Regression in Locator: running Ant off a network share does not work:
message "URI has authority component" appears
Bugzilla report 42275
but we just found a bug this one was hiding; we've moved the problem.
I have just fixed it incidentally, and added a new secret launch
diagnostics feature to ant that turns detailed logging in the launcher on:
C:\>\\morzine\slo\Java\Apache\ant\bin\ant.bat --launchdiag
Launcher JAR= "\\morzine\slo\Java\Apache\ant\lib\ant-launcher.jar"
java.home= "C:\Java\jre"
Launcher JAR directory= "\\morzine\slo\Java\Apache\ant\lib"
setting "ant.library.dir" to "\\morzine\slo\Java\Apache\ant\lib"
Unable to locate tools.jar. Expected to find it in C:\Java\lib\tools.jar
tools.jar= "null"
setting "java.class.path" to
"\\morzine\slo\Java\Apache\ant\bin\..\lib\ant-laun
her.jar;\\morzine\slo\Java\Apache\ant\lib\ant.jar;\\morzine\slo\Java\Apache\ant
lib\xml-apis.jar;\\morzine\slo\Java\Apache\ant\lib\log4j-1.2.13.jar;\\morzine\s
o\Java\Apache\ant\lib\commons-logging-1.0.4.jar;\\morzine\slo\Java\Apache\ant\l
b\commons-logging-1.1.jar;\\morzine\slo\Java\Apache\ant\lib\xercesImpl.jar;\\mo
zine\slo\Java\Apache\ant\lib\jython-2.1.jar;\\morzine\slo\Java\Apache\ant\lib\j
uby-0.8.3.jar;\\morzine\slo\Java\Apache\ant\lib\resolver.jar;\\morzine\slo\Java
Apache\ant\lib\cpptasks.jar;\\morzine\slo\Java\Apache\ant\lib\ant-commons-net.j
r;\\morzine\slo\Java\Apache\ant\lib\junit-3.8.2.jar;\\morzine\slo\Java\Apache\a
t\lib\activation-1.0.2.jar;\\morzine\slo\Java\Apache\ant\lib\ant-junit.jar;\\mo
zine\slo\Java\Apache\ant\lib\ant-testutil.jar;\\morzine\slo\Java\Apache\ant\lib
ant-apache-regexp.jar;\\morzine\slo\Java\Apache\ant\lib\jakarta-regexp-1.2.jar;
\morzine\slo\Java\Apache\ant\lib\commons-net-1.4.0.jar;\\morzine\slo\Java\Apach
\ant\lib\jsvn-0.9-dev.jar;\\morzine\slo\Java\Apache\ant\lib\logkit-1.0.1.jar;\\
orzine\slo\Java\Apache\ant\lib\ant-apache-bsf.jar;\\morzine\slo\Java\Apache\ant
lib\ant-antlr.jar;\\morzine\slo\Java\Apache\ant\lib\ant-swing.jar;\\morzine\slo
Java\Apache\ant\lib\xml-resolver-1.1.jar;\\morzine\slo\Java\Apache\ant\lib\whic
-1.0.jar;\\morzine\slo\Java\Apache\ant\lib\ant-apache-oro.jar;\\morzine\slo\Jav
\Apache\ant\lib\ant-commons-logging.jar;\\morzine\slo\Java\Apache\ant\lib\antlr
2.7.2.jar;\\morzine\slo\Java\Apache\ant\lib\regexp-1.3.jar;\\morzine\slo\Java\A
ache\ant\lib\ant-apache-log4j.jar;\\morzine\slo\Java\Apache\ant\lib\commons-col
ections.jar;\\morzine\slo\Java\Apache\ant\lib\bcel-5.1.jar;\\morzine\slo\Java\A
ache\ant\lib\ant-jmf.jar;\\morzine\slo\Java\Apache\ant\lib\checkstyle-2.3.jar;\
morzine\slo\Java\Apache\ant\lib\ant-contrib.jar;\\morzine\slo\Java\Apache\ant\l
b\ant-jdepend.jar;\\morzine\slo\Java\Apache\ant\lib\avalon-framework-4.1.3.jar;
\morzine\slo\Java\Apache\ant\lib\jmxri.jar;\\morzine\slo\Java\Apache\ant\lib\an
-javamail.jar;\\morzine\slo\Java\Apache\ant\lib\xalan-2.7.0.jar;\\morzine\slo\J
va\Apache\ant\lib\commons-modeler.jar;\\morzine\slo\Java\Apache\ant\lib\ant-ant
nit-1.0.jar;\\morzine\slo\Java\Apache\ant\lib\ant-apache-bcel.jar;\\morzine\slo
Java\Apache\ant\lib\ant-launcher.jar;\\morzine\slo\Java\Apache\ant\lib\commons-
igester.jar;\\morzine\slo\Java\Apache\ant\lib\Tidy.jar;\\morzine\slo\Java\Apach
\ant\lib\ant-trax.jar;\\morzine\slo\Java\Apache\ant\lib\maven-artifact-ant-2.0.
-dep.jar;\\morzine\slo\Java\Apache\ant\lib\jsch-0.1.27.jar;\\morzine\slo\Java\A
ache\ant\lib\ant-jsch.jar;\\morzine\slo\Java\Apache\ant\lib\jakarta-oro-2.0.4.j
r;\\morzine\slo\Java\Apache\ant\lib\jdepend-2.7.jar;\\morzine\slo\Java\Apache\a
t\lib\commons-beanutils.jar;\\morzine\slo\Java\Apache\ant\lib\mail.jar;\\morzin
\slo\Java\Apache\ant\lib\bsh-2.0b4.jar;\\morzine\slo\Java\Apache\ant\lib\ant-ap
che-resolver.jar;\\morzine\slo\Java\Apache\ant\lib\oro-2.0.8.jar;\\morzine\slo\
ava\Apache\ant\lib\ant-nodeps.jar"
Buildfile: build.xml does not exist!
Build failed
This --launchdiags is for extra low-level, "let's debug the launcher"
work, not something we need to cover in any detail, except maybe in the
wiki.
The changes are in the 1.8 branch, its up to others to decide if they
should go into the 1.7.1 beta. Apart from the logging and a bit of
refactoring, the only change that fixes it is this:
path = decodeUri(uri);
//consider adding the current directory. This is not done when
//the path is a UNC name
String cwd = System.getProperty("user.dir");
int posi = cwd.indexOf(':');
boolean pathStartsWithFileSeparator =
path.startsWith(File.separator);
boolean pathStartsWithUNC = path.startsWith("" +
File.separator + File.separator);
if ((posi > 0) && pathStartsWithFileSeparator &&
!pathStartsWithUNC) {
path = cwd.substring(0, posi + 1) + path;
}
We dont prepend the cwd on a path if the path starts with a UNC. This
was only something we did on windows (the indexof ':') tests for that.
--
Steve Loughran http://www.1060.org/blogxter/publish/5
Author: Ant in Action http://antbook.org/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]