-
Notifications
You must be signed in to change notification settings - Fork 21
Closed
Milestone
Description
NullPointerException occurs when Regex.unapplySeq is called with null.
See: https://groups.google.com/forum/#!topic/scala-language/_IAaYPUUL1s
object Main {
def main(args: Array[String]): Unit = {
val sdLst = List("10.12.95", null, "", "01.04.97", "1.4.97")
for (sd <- sdLst; DMY(optYear) = sd; y <- optYear)
yield y
}
}
object DMY {
val df = """(\d\d)\.(\d\d)\.(\d\d)""".r
def unapply(s: String) = s match {
case df(d, m, y) => Some(Some(d.toInt, m.toInt, y.toInt))
case _ => Some(None)
}
}The error message:
Exception in thread "main" java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1234)
at java.util.regex.Matcher.reset(Matcher.java:308)
at java.util.regex.Matcher.<init>(Matcher.java:228)
at java.util.regex.Pattern.matcher(Pattern.java:1088)
at scala.util.matching.Regex.unapplySeq(Regex.scala:206)
at course.DMY$.unapply(Main.scala:22)
at course.Main$$anonfun$main$1.apply(Main.scala:13)
at course.Main$$anonfun$main$1.apply(Main.scala:13)
at scala.collection.immutable.List.map(List.scala:276)
at course.Main$.main(Main.scala:13)
at course.Main.main(Main.scala)