Skip to content

ClassNotFoundException when using java.sql package of JDK11 #11646

Closed
@kynthus

Description

@kynthus

Compiler version

3.0.0-RC1 with Java SE Development Kit 11.0.9

Minimized code

val d: java.sql.Date = new java.sql.Date(100L)

Output

# java -version
java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode)

# scala -version
Starting scala3 REPL...
Scala compiler version 3.0.0-RC1 -- Copyright 2002-2021, LAMP/EPFL
scala> val d: java.sql.Date = new java.sql.Date(100L)
Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/Date
        at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
        at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309)
        at dotty.tools.repl.Rendering.valueOf(Rendering.scala:82)
        at dotty.tools.repl.Rendering.renderVal(Rendering.scala:121)
        at dotty.tools.repl.ReplDriver.$anonfun$13(ReplDriver.scala:308)
        at scala.collection.immutable.List.flatMap(List.scala:293)
        at scala.collection.immutable.List.flatMap(List.scala:79)
        at dotty.tools.repl.ReplDriver.extractAndFormatMembers$2(ReplDriver.scala:308)
        at dotty.tools.repl.ReplDriver.renderDefinitions$$anonfun$2(ReplDriver.scala:331)
        at scala.Option.map(Option.scala:242)
        at dotty.tools.repl.ReplDriver.renderDefinitions(ReplDriver.scala:334)
        at dotty.tools.repl.ReplDriver.compile$$anonfun$2(ReplDriver.scala:253)
        at scala.util.Either.fold(Either.scala:189)
        at dotty.tools.repl.ReplDriver.compile(ReplDriver.scala:269)
        at dotty.tools.repl.ReplDriver.interpret(ReplDriver.scala:197)
        at dotty.tools.repl.ReplDriver.loop$1(ReplDriver.scala:130)
        at dotty.tools.repl.ReplDriver.runUntilQuit$$anonfun$1(ReplDriver.scala:133)
        at dotty.tools.repl.ReplDriver.withRedirectedOutput(ReplDriver.scala:152)
        at dotty.tools.repl.ReplDriver.runUntilQuit(ReplDriver.scala:133)
        at dotty.tools.repl.Main$.main(Main.scala:6)
        at dotty.tools.repl.Main.main(Main.scala)
Caused by: java.lang.ClassNotFoundException: java.sql.Date
        at dotty.tools.repl.AbstractFileClassLoader.findClass$$anonfun$1(AbstractFileClassLoader.scala:20)
        at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
        at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
        at scala.collection.immutable.List.foreach(List.scala:333)
        at dotty.tools.repl.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:22)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        at dotty.tools.repl.AbstractFileClassLoader.loadClass(AbstractFileClassLoader.scala:34)
        ... 22 more

Expectation

You should be able to use the java.sql package without any problems.
There is no problem with JDK8 or Scala 2.13.5.

# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

# scala -version
Starting scala3 REPL...
Scala compiler version 3.0.0-RC1 -- Copyright 2002-2021, LAMP/EPFL
scala> val d: java.sql.Date = new java.sql.Date(100L)
val d: java.sql.Date = 1970-01-01
# java -version
java version "11.0.9" 2020-10-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.9+7-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.9+7-LTS, mixed mode)

# scala
Welcome to Scala 2.13.5 (Java HotSpot(TM) 64-Bit Server VM, Java 11.0.9).
Type in expressions for evaluation. Or try :help.

scala> val d: java.sql.Date = new java.sql.Date(100L)
val d: java.sql.Date = 1970-01-01

In addition, although it was JDK11 that observed the error, strictly speaking, it seems to occur in JDK9 or later versions.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions