mirror of
https://github.com/sbt/sbt.git
synced 2026-09-07 02:55:23 +02:00
cb90a47ce88d7cef5cb7d86caef28bcb55e26138
The console/consoleQuick REPL loader rejects JDK platform-module classes: ClasspathFilter's post-check refuses classes whose code source is a jrt: URL, so a top-down REPL reference to java.sql.* falls through to the REPL's own classloader, which finds the bytes in the runner-generated java9-rt-ext jar (via scala.ext.dirs) and dies in defineClass: java.lang.SecurityException: Prohibited package name: java.sql Wrap the REPL parent loader with a fallback that consults ClassLoader.getPlatformClassLoader (reflectively; absent on JDK 8, which has no platform loader) only after the existing chain misses, so project classes keep winning and platform classes resolve instead of being redefined. Linkage through the classpath loader (a JDBC driver implementing java.sql.Driver) was already sound: the launcher's topLoader delegates to the platform loader on JDK 9+; only the top-down path through ClasspathFilter was broken. Verified against sbt 1.11.7 (fails) and a patched 1.12.3-SNAPSHOT (passes) with the original report's repro: java.sql.Timestamp, a project class extending it, and DriverManager.getConnection with the postgresql driver, which now reaches the network layer. The console/* scripted group is added to CI; it was not in any scripted glob, so the new test (and the pre-existing console/project-compiler-bridge) never ran. Fixes #4328 (still reproducible on 1.11.7 before this change). Co-authored-by: Claude Fable 5 <[email protected]>
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see https://www.scala-sbt.org/.
sbt 1.x
This is the 1.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/librarymanagement hosts
sbt.librarymanagementmodule that wraps Ivy. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implements the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue.
The short version: try searching or asking on StackOverflow.
license
See LICENSE.
Languages
Scala
94.5%
Java
3.1%
Shell
1.1%
Batchfile
0.9%
Roff
0.2%
Other
0.1%