Hi,

Are we sure this is a correct fix?

I tried this:

boolean b1 = new java.io.File("/C:/Documents and Settings").exists(); // returns true boolean b2 = new java.io.File("/C:/Documents%20and%20Settings").exists(); // returns false

I'm not sure if File API can understand the URI encoding if the Jar URL is encoded.

Thanks,
Raymond

----- Original Message ----- From: "Jeremy Boynes (JIRA)" <[email protected]>
To: <[email protected]>
Sent: Tuesday, July 25, 2006 9:09 AM
Subject: [jira] Resolved: (TUSCANY-574) URISyntaxException from launcher when jars reside in windows Maven repository


    [ http://issues.apache.org/jira/browse/TUSCANY-574?page=all ]

Jeremy Boynes resolved TUSCANY-574.
-----------------------------------

   Resolution: Fixed
     Assignee: Jeremy Boynes

Fix applied.
I tested running a single sample on a Windows machine where the maven repo has a space in it I also tested running the launcher on OSX from an install directory with a space in it

Please confirm this fix works for you

URISyntaxException from launcher when jars reside in windows Maven repository
-----------------------------------------------------------------------------

                Key: TUSCANY-574
                URL: http://issues.apache.org/jira/browse/TUSCANY-574
            Project: Tuscany
         Issue Type: Bug
         Components: Java SCA Core
Environment: Win XP, J2RE 1.5.0 IBM Windows 32 build pwi32dev-20060511 (SR2)
           Reporter: Matthew Sykes
        Assigned To: Jeremy Boynes
           Priority: Trivial

When attempting to run maven from various samples directories:
[INFO] [surefire:test]
[INFO] Surefire report directory: C:\cygwin\home\sykesm\oss-code\tuscany\java\samples\sca\calculator\target\surefire-reports
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running calculator.CalculatorTestCase
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.38 sec <<< FAILURE! testCalculator(calculator.CalculatorTestCase) Time elapsed: 0.31 sec <<< ERROR!
java.lang.IllegalArgumentException
        at java.net.URI.create(URI.java:854)
at org.apache.tuscany.core.launcher.Launcher.getInstallDirectory(Launcher.java:177) at org.apache.tuscany.core.launcher.Launcher.bootRuntime(Launcher.java:104)
        at org.apache.tuscany.test.SCATestCase.setUp(SCATestCase.java:40)
at calculator.CalculatorTestCase.setUp(CalculatorTestCase.java:32)
        at junit.framework.TestCase.runBare(TestCase.java:125)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:210) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:135) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:122)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:225) at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747) Caused by: java.net.URISyntaxException: Illegal character in path at index 18: file:/C:/Documents and Settings/sykesm/.m2/repository/org/apache/tuscany/core/1.0-SNAPSHOT/core-1.0-SNAPSHOT.jar
        at java.net.URI$Parser.fail(URI.java:2821)
        at java.net.URI$Parser.checkChars(URI.java:2994)
        at java.net.URI$Parser.parseHierarchical(URI.java:3078)
        at java.net.URI$Parser.parse(URI.java:3026)
        at java.net.URI.<init>(URI.java:590)
        at java.net.URI.create(URI.java:852)
This appears to be due to how the Launcher teases out the directory containing the Tuscany code. Since the default location for the maven repository on windows has spaces in the directory names, the "URI" that was used was not valid. In order to get past this I made a very simple change:
$ svn diff
Index: sca/core/src/main/java/org/apache/tuscany/core/launcher/Launcher.java
===================================================================
--- sca/core/src/main/java/org/apache/tuscany/core/launcher/Launcher.java (revision 425392) +++ sca/core/src/main/java/org/apache/tuscany/core/launcher/Launcher.java (working copy)
@@ -168,13 +168,15 @@
         if (!"jar".equals(url.getProtocol())) {
throw new IllegalStateException("Must be run from a jar: " + url);
         }
+
         String jarLocation = url.toString();
jarLocation = jarLocation.substring(4, jarLocation.lastIndexOf("!/"));
         if (!jarLocation.startsWith("file:")) {
throw new IllegalStateException("Must be run from a local filesystem: " + jarLocation);
         }
+        jarLocation = jarLocation.substring(5);

-        File jarFile = new File(URI.create(jarLocation));
+        File jarFile = new File(jarLocation);
         return jarFile.getParentFile().getParentFile();
     }
 }
This may not be an appropriate change but it did resolve the problem I was seeing.

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to