You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by "Matthew Sykes (JIRA)" <tu...@ws.apache.org> on 2006/07/25 16:48:13 UTC

[jira] Created: (TUSCANY-574) URISyntaxException from launcher when jars reside in windows Maven repository

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
            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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: [jira] Resolved: (TUSCANY-574) URISyntaxException from launcher when jars reside in windows Maven repository

Posted by Jeremy Boynes <jb...@apache.org>.
On Jul 25, 2006, at 9:51 AM, Raymond Feng wrote:

> Hi,
>
> Are we sure this is a correct fix?

No.
--
Jeremy



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: [jira] Resolved: (TUSCANY-574) URISyntaxException from launcher when jars reside in windows Maven repository

Posted by Raymond Feng <en...@gmail.com>.
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)" <tu...@ws.apache.org>
To: <tu...@ws.apache.org>
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: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


[jira] Resolved: (TUSCANY-574) URISyntaxException from launcher when jars reside in windows Maven repository

Posted by "Jeremy Boynes (JIRA)" <tu...@ws.apache.org>.
     [ 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: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org