mirror of https://github.com/sbt/sbt.git
Fixing more NullPointerError by wrapping license URL with Option
This commit is contained in:
parent
bb6e3e34e6
commit
f2ad294984
|
|
@ -107,8 +107,11 @@ object IvyRetrieve {
|
||||||
})
|
})
|
||||||
val isDefault = Option(dep.getDescriptor) map { _.isDefault }
|
val isDefault = Option(dep.getDescriptor) map { _.isDefault }
|
||||||
val configurations = dep.getConfigurations(confReport.getConfiguration).toArray.toList
|
val configurations = dep.getConfigurations(confReport.getConfiguration).toArray.toList
|
||||||
val licenses: Seq[(String, URL)] = mdOpt match {
|
val licenses: Seq[(String, Option[String])] = mdOpt match {
|
||||||
case Some(md) => md.getLicenses.toArray.toVector collect { case lic: IvyLicense => (lic.getName, new URL(lic.getUrl)) }
|
case Some(md) => md.getLicenses.toArray.toVector collect {
|
||||||
|
case lic: IvyLicense =>
|
||||||
|
(lic.getName, Option(lic.getUrl))
|
||||||
|
}
|
||||||
case _ => Nil
|
case _ => Nil
|
||||||
}
|
}
|
||||||
val callers = dep.getCallers(confReport.getConfiguration).toArray.toVector map { toCaller }
|
val callers = dep.getCallers(confReport.getConfiguration).toArray.toVector map { toCaller }
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ final class ModuleReport(
|
||||||
val isDefault: Option[Boolean],
|
val isDefault: Option[Boolean],
|
||||||
val branch: Option[String],
|
val branch: Option[String],
|
||||||
val configurations: Seq[String],
|
val configurations: Seq[String],
|
||||||
val licenses: Seq[(String, URL)],
|
val licenses: Seq[(String, Option[String])],
|
||||||
val callers: Seq[Caller]) {
|
val callers: Seq[Caller]) {
|
||||||
|
|
||||||
private[this] lazy val arts: Seq[String] = artifacts.map(_.toString) ++ missingArtifacts.map(art => "(MISSING) " + art)
|
private[this] lazy val arts: Seq[String] = artifacts.map(_.toString) ++ missingArtifacts.map(art => "(MISSING) " + art)
|
||||||
|
|
@ -162,7 +162,7 @@ final class ModuleReport(
|
||||||
isDefault: Option[Boolean] = isDefault,
|
isDefault: Option[Boolean] = isDefault,
|
||||||
branch: Option[String] = branch,
|
branch: Option[String] = branch,
|
||||||
configurations: Seq[String] = configurations,
|
configurations: Seq[String] = configurations,
|
||||||
licenses: Seq[(String, URL)] = licenses,
|
licenses: Seq[(String, Option[String])] = licenses,
|
||||||
callers: Seq[Caller] = callers): ModuleReport =
|
callers: Seq[Caller] = callers): ModuleReport =
|
||||||
new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver,
|
new ModuleReport(module, artifacts, missingArtifacts, status, publicationDate, resolver, artifactResolver,
|
||||||
evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers)
|
evicted, evictedData, evictedReason, problem, homepage, extraAttributes, isDefault, branch, configurations, licenses, callers)
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ object CacheIvy {
|
||||||
implicit def confReportFormat(implicit m: Format[String], mr: Format[Seq[ModuleReport]], mdr: Format[Seq[ModuleDetailReport]], mi: Format[Seq[ModuleID]]): Format[ConfigurationReport] =
|
implicit def confReportFormat(implicit m: Format[String], mr: Format[Seq[ModuleReport]], mdr: Format[Seq[ModuleDetailReport]], mi: Format[Seq[ModuleID]]): Format[ConfigurationReport] =
|
||||||
wrap[ConfigurationReport, (String, Seq[ModuleReport], Seq[ModuleDetailReport], Seq[ModuleID])](r => (r.configuration, r.modules, r.details, r.evicted), { case (c, m, d, v) => new ConfigurationReport(c, m, d, v) })
|
wrap[ConfigurationReport, (String, Seq[ModuleReport], Seq[ModuleDetailReport], Seq[ModuleID])](r => (r.configuration, r.modules, r.details, r.evicted), { case (c, m, d, v) => new ConfigurationReport(c, m, d, v) })
|
||||||
implicit def moduleReportFormat(implicit cf: Format[Seq[Caller]], ff: Format[File]): Format[ModuleReport] = {
|
implicit def moduleReportFormat(implicit cf: Format[Seq[Caller]], ff: Format[File]): Format[ModuleReport] = {
|
||||||
wrap[ModuleReport, (ModuleID, Seq[(Artifact, File)], Seq[Artifact], Option[String], Option[Long], Option[String], Option[String], Boolean, Option[String], Option[String], Option[String], Option[String], Map[String, String], Option[Boolean], Option[String], Seq[String], Seq[(String, URL)], Seq[Caller])](
|
wrap[ModuleReport, (ModuleID, Seq[(Artifact, File)], Seq[Artifact], Option[String], Option[Long], Option[String], Option[String], Boolean, Option[String], Option[String], Option[String], Option[String], Map[String, String], Option[Boolean], Option[String], Seq[String], Seq[(String, Option[String])], Seq[Caller])](
|
||||||
m => (m.module, m.artifacts, m.missingArtifacts, m.status, m.publicationDate map { _.getTime }, m.resolver, m.artifactResolver, m.evicted, m.evictedData, m.evictedReason, m.problem, m.homepage, m.extraAttributes, m.isDefault, m.branch, m.configurations, m.licenses, m.callers),
|
m => (m.module, m.artifacts, m.missingArtifacts, m.status, m.publicationDate map { _.getTime }, m.resolver, m.artifactResolver, m.evicted, m.evictedData, m.evictedReason, m.problem, m.homepage, m.extraAttributes, m.isDefault, m.branch, m.configurations, m.licenses, m.callers),
|
||||||
{ case (m, as, ms, s, pd, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) => new ModuleReport(m, as, ms, s, pd map { new ju.Date(_) }, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) })
|
{ case (m, as, ms, s, pd, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) => new ModuleReport(m, as, ms, s, pd map { new ju.Date(_) }, r, a, e, ed, er, p, h, ea, d, b, cs, ls, ks) })
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue