Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Running sbt in root of a filesystem leads to index out of bounds exception on startup. #1375

Closed
gfries opened this issue May 27, 2014 · 1 comment
Assignees
Labels
Milestone

Comments

@gfries
Copy link

gfries commented May 27, 2014

Windows 7 x64
jdk1.7.0_55
scala-2.11.1

D:\>sbt
D:\>set SCRIPT_DIR=D:\scala\sbt-0.13.2\
D:\>java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M -jar "D:\
scala\sbt-0.13.2\sbt-launch.jar"
Getting org.fusesource.jansi jansi 1.11 ...
downloading http://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.11/jansi-1.11.jar ...
        [SUCCESSFUL ] org.fusesource.jansi#jansi;1.11!jansi.jar (1061ms)
:: retrieving :: org.scala-sbt#boot-jansi
        confs: [default]
        1 artifacts copied, 0 already retrieved (111kB/15ms)
Getting org.scala-sbt sbt 0.13.2 ...
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.2/jars/sbt.jar ...
        [SUCCESSFUL ] org.scala-sbt#sbt;0.13.2!sbt.jar (1544ms)
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.10.3/scala-library-2.10.3.jar ...
        [SUCCESSFUL ] org.scala-lang#scala-library;2.10.3!scala-library.jar (30015ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main/0.13.2/jars/main.jar ...
        [SUCCESSFUL ] org.scala-sbt#main;0.13.2!main.jar (9937ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.2/jars/compiler-interface-bin.jar ...
        [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.2!compiler-interface-bin.jar (2090ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-interface/0.13.2/jars/compiler-interface-src.jar ...
        [SUCCESSFUL ] org.scala-sbt#compiler-interface;0.13.2!compiler-interface-src.jar (1061ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_8_2/0.13.2/jars/compiler-interface-bin.jar ...
        [SUCCESSFUL ] org.scala-sbt#precompiled-2_8_2;0.13.2!compiler-interface-bin.jar (2293ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_2/0.13.2/jars/compiler-interface-bin.jar ...
        [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_2;0.13.2!compiler-interface-bin.jar (2075ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_9_3/0.13.2/jars/compiler-interface-bin.jar ...
        [SUCCESSFUL ] org.scala-sbt#precompiled-2_9_3;0.13.2!compiler-interface-bin.jar (2262ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/actions/0.13.2/jars/actions.jar ...
        [SUCCESSFUL ] org.scala-sbt#actions;0.13.2!actions.jar (3042ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/main-settings/0.13.2/jars/main-settings.jar ...
        [SUCCESSFUL ] org.scala-sbt#main-settings;0.13.2!main-settings.jar (4867ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/interface/0.13.2/jars/interface.jar ...
        [SUCCESSFUL ] org.scala-sbt#interface;0.13.2!interface.jar (1232ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/io/0.13.2/jars/io.jar
...
        [SUCCESSFUL ] org.scala-sbt#io;0.13.2!io.jar (2356ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/ivy/0.13.2/jars/ivy.jar ...
        [SUCCESSFUL ] org.scala-sbt#ivy;0.13.2!ivy.jar (4196ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/launcher-interface/0.13.2/jars/launcher-interface.jar ...
        [SUCCESSFUL ] org.scala-sbt#launcher-interface;0.13.2!launcher-interface.jar (999ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/logging/0.13.2/jars/logging.jar ...
        [SUCCESSFUL ] org.scala-sbt#logging;0.13.2!logging.jar (1529ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/process/0.13.2/jars/process.jar ...
        [SUCCESSFUL ] org.scala-sbt#process;0.13.2!process.jar (1591ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/run/0.13.2/jars/run.jar ...
        [SUCCESSFUL ] org.scala-sbt#run;0.13.2!run.jar (1685ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/command/0.13.2/jars/command.jar ...
        [SUCCESSFUL ] org.scala-sbt#command;0.13.2!command.jar (2932ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classpath/0.13.2/jars/classpath.jar ...
        [SUCCESSFUL ] org.scala-sbt#classpath;0.13.2!classpath.jar (1358ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/completion/0.13.2/jars/completion.jar ...
        [SUCCESSFUL ] org.scala-sbt#completion;0.13.2!completion.jar (2792ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/api/0.13.2/jars/api.jar ...
        [SUCCESSFUL ] org.scala-sbt#api;0.13.2!api.jar (2496ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-integration/0.13.2/jars/compiler-integration.jar ...
        [SUCCESSFUL ] org.scala-sbt#compiler-integration;0.13.2!compiler-integration.jar (1482ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compiler-ivy-integration/0.13.2/jars/compiler-ivy-integration.jar ...
        [SUCCESSFUL ] org.scala-sbt#compiler-ivy-integration;0.13.2!compiler-ivy-integration.jar (1248ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/relation/0.13.2/jars/relation.jar ...
        [SUCCESSFUL ] org.scala-sbt#relation;0.13.2!relation.jar (1139ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/task-system/0.13.2/jars/task-system.jar ...
        [SUCCESSFUL ] org.scala-sbt#task-system;0.13.2!task-system.jar (1560ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tasks/0.13.2/jars/tasks.jar ...
        [SUCCESSFUL ] org.scala-sbt#tasks;0.13.2!tasks.jar (1904ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/tracking/0.13.2/jars/tracking.jar ...
        [SUCCESSFUL ] org.scala-sbt#tracking;0.13.2!tracking.jar (1419ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/testing/0.13.2/jars/testing.jar ...
        [SUCCESSFUL ] org.scala-sbt#testing;0.13.2!testing.jar (1622ms)
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.3/scala-compiler-2.10.3.jar ...
        [SUCCESSFUL ] org.scala-lang#scala-compiler;2.10.3!scala-compiler.jar (76721ms)
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.10.3/scala-reflect-2.10.3.jar ...
        [SUCCESSFUL ] org.scala-lang#scala-reflect;2.10.3!scala-reflect.jar (7566ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/control/0.13.2/jars/control.jar ...
        [SUCCESSFUL ] org.scala-sbt#control;0.13.2!control.jar (1435ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/collections/0.13.2/jars/collections.jar ...
        [SUCCESSFUL ] org.scala-sbt#collections;0.13.2!collections.jar (4540ms)
downloading http://repo1.maven.org/maven2/jline/jline/2.11/jline-2.11.jar ...
        [SUCCESSFUL ] jline#jline;2.11!jline.jar (1763ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/incremental-compiler/0.13.2/jars/incremental-compiler.jar ...
        [SUCCESSFUL ] org.scala-sbt#incremental-compiler;0.13.2!incremental-compiler.jar (4134ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/compile/0.13.2/jars/compile.jar ...
        [SUCCESSFUL ] org.scala-sbt#compile;0.13.2!compile.jar (1654ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/persist/0.13.2/jars/persist.jar ...
        [SUCCESSFUL ] org.scala-sbt#persist;0.13.2!persist.jar (1654ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/classfile/0.13.2/jars/classfile.jar ...
        [SUCCESSFUL ] org.scala-sbt#classfile;0.13.2!classfile.jar (1528ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbinary/sbinary_2.10/0.4.2/jars/sbinary_2.10.jar ...
        [SUCCESSFUL ] org.scala-tools.sbinary#sbinary_2.10;0.4.2!sbinary_2.10.jar (1529ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cross/0.13.2/jars/cross.jar ...
        [SUCCESSFUL ] org.scala-sbt#cross;0.13.2!cross.jar (999ms)
downloading http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar ...
        [SUCCESSFUL ] org.apache.ivy#ivy;2.3.0!ivy.jar (3494ms)
downloading http://repo1.maven.org/maven2/com/jcraft/jsch/0.1.46/jsch-0.1.46.jar ...
        [SUCCESSFUL ] com.jcraft#jsch;0.1.46!jsch.jar (1357ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/cache/0.13.2/jars/cache.jar ...
        [SUCCESSFUL ] org.scala-sbt#cache;0.13.2!cache.jar (2558ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/test-agent/0.13.2/jars/test-agent.jar ...
        [SUCCESSFUL ] org.scala-sbt#test-agent;0.13.2!test-agent.jar (1014ms)
downloading http://repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar ...
        [SUCCESSFUL ] org.scala-sbt#test-interface;1.0!test-interface.jar (687ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/apply-macro/0.13.2/jars/apply-macro.jar ...
        [SUCCESSFUL ] org.scala-sbt#apply-macro;0.13.2!apply-macro.jar (2199ms)
:: retrieving :: org.scala-sbt#boot-app
        confs: [default]
        43 artifacts copied, 0 already retrieved (13041kB/156ms)
Getting Scala 2.10.3 (for sbt)...
downloading http://repo1.maven.org/maven2/org/scala-lang/jline/2.10.3/jline-2.10.3.jar ...
        [SUCCESSFUL ] org.scala-lang#jline;2.10.3!jline.jar (1139ms)
downloading http://repo1.maven.org/maven2/org/fusesource/jansi/jansi/1.4/jansi-1.4.jar ...
        [SUCCESSFUL ] org.fusesource.jansi#jansi;1.4!jansi.jar (936ms)
:: retrieving :: org.scala-sbt#boot-scala
        confs: [default]
        5 artifacts copied, 0 already retrieved (24447kB/47ms)
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
        at java.lang.String.substring(Unknown Source)
        at sbt.Project$.normalizeProjectID(Project.scala:179)
        at sbt.Load$.normalizeID$1(Load.scala:443)
        at sbt.Load$.nthParentName$1(Load.scala:448)
        at sbt.Load$.autoID(Load.scala:451)
        at sbt.Load$.loadUnit(Load.scala:430)
        at sbt.Load$$anonfun$15$$anonfun$apply$11.apply(Load.scala:258)
        at sbt.Load$$anonfun$15$$anonfun$apply$11.apply(Load.scala:258)
        at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfu
n$apply$6.apply(BuildLoader.scala:93)
        at sbt.BuildLoader$$anonfun$componentLoader$1$$anonfun$apply$4$$anonfun$apply$5$$anonfu
n$apply$6.apply(BuildLoader.scala:92)
        at sbt.BuildLoader.apply(BuildLoader.scala:143)
        at sbt.Load$.loadAll(Load.scala:314)
        at sbt.Load$.loadURI(Load.scala:266)
        at sbt.Load$.load(Load.scala:262)
        at sbt.Load$.load(Load.scala:253)
        at sbt.Load$.apply(Load.scala:137)
        at sbt.Load$.defaultLoad(Load.scala:40)
        at sbt.BuiltinCommands$.doLoadProject(Main.scala:458)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:452)
        at sbt.BuiltinCommands$$anonfun$loadProjectImpl$2.apply(Main.scala:452)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60)
        at sbt.Command$$anonfun$applyEffect$1$$anonfun$apply$2.apply(Command.scala:60)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
        at sbt.Command$$anonfun$applyEffect$2$$anonfun$apply$3.apply(Command.scala:62)
        at sbt.Command$.process(Command.scala:95)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
        at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:100)
        at sbt.State$$anon$1.process(State.scala:179)
        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
        at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:100)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
        at sbt.MainLoop$.next(MainLoop.scala:100)
        at sbt.MainLoop$.run(MainLoop.scala:93)
        at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:71)
        at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:66)
        at sbt.Using.apply(Using.scala:25)
        at sbt.MainLoop$.runWithNewLog(MainLoop.scala:66)
        at sbt.MainLoop$.runAndClearLast(MainLoop.scala:49)
        at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:33)
        at sbt.MainLoop$.runLogged(MainLoop.scala:25)
        at sbt.StandardMain$.runManaged(Main.scala:57)
        at sbt.xMain.run(Main.scala:29)
        at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
        at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
        at xsbt.boot.Launch$.run(Launch.scala:109)
        at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36)
        at xsbt.boot.Launch$.launch(Launch.scala:117)
        at xsbt.boot.Launch$.apply(Launch.scala:19)
        at xsbt.boot.Boot$.runImpl(Boot.scala:44)
        at xsbt.boot.Boot$.main(Boot.scala:20)
        at xsbt.boot.Boot.main(Boot.scala)
[error] java.lang.StringIndexOutOfBoundsException: String index out of range: 1
@jsuereth
Copy link
Member

Well, it looks like the bug is because you're running in the filesystem root (Something I hadn't seen before).

The issue is that file.getName returns an empty string there, rather than the name of the root, and the "id" method doesn't handle empty strings. If you run in ANY subdirectory, it should work fine. I'm leaving this ticket open as I think we can issue a quick fix for this.

@jsuereth jsuereth added the Bug label May 28, 2014
@jsuereth jsuereth added this to the 0.13.6 milestone May 28, 2014
@jsuereth jsuereth changed the title sbt-0.13.2 does not install on Windows 7 Running sbt in root of a filesystem leads to index out of bounds exception on startup. May 28, 2014
jsuereth added a commit that referenced this issue Aug 1, 2014
Starting sbt in root isn't a great idea, but it shouldn't break.
@jsuereth jsuereth self-assigned this Aug 1, 2014
jsuereth added a commit that referenced this issue Aug 1, 2014
Starting sbt in root isn't a great idea, but it shouldn't break.
eed3si9n added a commit that referenced this issue Aug 1, 2014
Fixes #1375 - Check for empty filenames.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants