Prefix string too short
- Dominant language
- Clojure
- Stars
- 1.7k
- Forks
- 178
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the bug**
Attempting to build an uberjar with Selenium as a dependency raises the following exception:
```
clojure.lang.ExceptionInfo: Prefix string "9" too short: length must be at least 3
```
**To Reproduce**
`build.boot`:
```
(set-env!
:resource-paths #{"."}
:dependencies '[[org.clojure/clojure "1.10.1"]
[org.seleniumhq.selenium/selenium-support "3.141.59"]
[org.seleniumhq.selenium/selenium-remote-driver "3.141.59"]])
(task-options!
pom {:project 'selenium :version "0.1.0-SNAPSHOT"}
aot {:namespace #{'selenium}}
jar {:main 'selenium})
```
`boot.properties`:
```
BOOT_VERSION=2.8.3
BOOT_CLOJURE_VERSION=1.10.1
BOOT_CLOJURE_NAME=org.clojure/clojure
```
`selenium.clj`:
```
(ns selenium (:gen-class))
(defn -main [& args] ())
```
Run `boot aot pom uber jar target`
**Expected behavior**
Successful build and jar written to disk.
**Actual behavior**
```
Compiling 1/1 selenium...
Writing pom.xml and pom.properties...
Adding uberjar entries...
java.lang.Thread.run Thread.java: 832
java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 630
java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1130
java.util.concurrent.FutureTask.run FutureTask.java: 264
...
clojure.core/binding-conveyor-fn/fn core.clj: 2030
boot.core/boot/fn core.clj: 1031
boot.core/run-tasks core.clj: 1022
boot.task.built-in/eval2944/fn/fn/fn built_in.clj: 800
boot.task.built-in/eval2662/fn/fn/fn built_in.clj: 576
boot.task.built-in/eval2828/fn/fn/fn built_in.clj: 753
clojure.core/reduce core.clj: 6828
clojure.core.protocols/fn/G protocols.clj: 13
clojure.core.protocols/fn protocols.clj: 75
clojure.core.protocols/seq-reduce protocols.clj: 31
clojure.core.protocols/fn/G protocols.clj: 19
clojure.core.protocols/fn protocols.clj: 168
boot.task.built-in/eval2828/fn/reducer built_in.clj: 733
...
boot.core/add-cached-resource core.clj: 622
boot.core/add-cached-resource core.clj: 632
boot.tmpdir.TmpFileSet/add-cached tmpdir.clj: 308
boot.tmpdir/merge-trees! tmpdir.clj: 187
boot.tmpdir/apply-mergers! tmpdir.clj: 148
java.io.File.createTempFile File.java: 2083
java.lang.IllegalArgumentException: Prefix string "9" too short: length must be at least 3
clojure.lang.ExceptionInfo: Prefix string "9" too short: length must be at least 3
line: 15
```
**Desktop:**
I used a container to run the above i.e.
```
docker run -it --rm -v "$PWD":/usr/src/app -w /usr/src/app clojure:openjdk-15-boot-2.8.3-alpine boot aot pom uber jar target
```
Contributor guide
Research direction
Reproduce the failure with build.boot, boot.properties, selenium.clj, and the documented `boot aot pom uber jar target` command. Start from the boot.task.built-in and boot.tmpdir stack frames around File.createTempFile, then verify that the command completes and writes the uberjar to disk.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100