From 7770fa64e9bb3b0ebcedcea7ca9c879c9506c95a Mon Sep 17 00:00:00 2001 From: IanGabes Date: Tue, 9 Jan 2018 17:29:57 -0500 Subject: [PATCH] Adds null check for 'sbt.managedChecksums' in ivySettings file Fixes #195 --- .../internal/librarymanagement/IvyActions.scala | 17 ++++++++++++----- .../ivyint/GigahorseUrlHandler.scala | 3 ++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ivy/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala b/ivy/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala index e62d7b0ca..01d23d987 100644 --- a/ivy/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala +++ b/ivy/src/main/scala/sbt/internal/librarymanagement/IvyActions.scala @@ -4,27 +4,30 @@ package sbt.internal.librarymanagement import java.io.File -import ivyint.CachedResolutionResolveEngine +import ivyint.CachedResolutionResolveEngine import org.apache.ivy.Ivy import org.apache.ivy.core.{ IvyPatternHelper, LogOptions } import org.apache.ivy.core.deliver.DeliverOptions import org.apache.ivy.core.install.InstallOptions import org.apache.ivy.core.module.descriptor.{ - Artifact => IArtifact, + DefaultModuleDescriptor, MDArtifact, ModuleDescriptor, - DefaultModuleDescriptor + Artifact => IArtifact } import org.apache.ivy.core.resolve.ResolveOptions import org.apache.ivy.plugins.resolver.{ BasicResolver, DependencyResolver } import org.apache.ivy.util.filter.{ Filter => IvyFilter } import sbt.io.{ IO, PathFinder } import sbt.util.Logger -import sbt.librarymanagement.{ ModuleDescriptorConfiguration => InlineConfiguration, _ }, syntax._ +import sbt.librarymanagement.{ ModuleDescriptorConfiguration => InlineConfiguration, _ } +import syntax._ import InternalDefaults._ import UpdateClassifiersUtil._ +import scala.util.Try + object IvyActions { /** Installs the dependencies of the given 'module' from the resolver named 'from' to the resolver named 'to'.*/ @@ -382,7 +385,11 @@ object IvyActions { report: UpdateReport, config: RetrieveConfiguration ): UpdateReport = { - val copyChecksums = ivy.getVariable(ConvertResolver.ManagedChecksums).toBoolean + val copyChecksums = + Option(ivy.getVariable(ConvertResolver.ManagedChecksums)) match { + case Some(x) => x.toBoolean + case _ => false + } val toRetrieve: Option[Vector[ConfigRef]] = config.configurationsToRetrieve val base = getRetrieveDirectory(config.retrieveDirectory) val pattern = getRetrievePattern(config.outputPattern) diff --git a/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/GigahorseUrlHandler.scala b/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/GigahorseUrlHandler.scala index e83f55177..b7e754dda 100644 --- a/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/GigahorseUrlHandler.scala +++ b/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/GigahorseUrlHandler.scala @@ -51,7 +51,8 @@ class GigahorseUrlHandler extends AbstractURLHandler { if (checkStatusCode(url, response)) { val bodyCharset = - BasicURLHandler.getCharSetFromContentType(Option(response.body().contentType()).map(_.toString).orNull) + BasicURLHandler.getCharSetFromContentType( + Option(response.body().contentType()).map(_.toString).orNull) Some( new SbtUrlInfo(true, response.body().contentLength(),