From 8166c8aa5df7e355ff8d2fe1fb5f682eb0c7d13d Mon Sep 17 00:00:00 2001 From: Josh Suereth Date: Thu, 25 Sep 2014 08:08:26 -0400 Subject: [PATCH] Fix NPE in ChainrResolver when there is no ivy file for a dependency. --- ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala b/ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala index 9a2b483aa..f7dad987d 100644 --- a/ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala +++ b/ivy/src/main/scala/sbt/ivyint/SbtChainResolver.scala @@ -98,10 +98,13 @@ class SbtChainResolver(name: String, resolvers: Seq[DependencyResolver], setting case Right(Some((rmr, _))) => rmr.getDescriptor.getPublicationDate match { case null => - val ivf = resolver.findIvyFileRef(dd, data) - val lmd = new java.util.Date(ivf.getLastModified) - rmr.getDescriptor match { - case dmd: DefaultModuleDescriptor => + (resolver.findIvyFileRef(dd, data), rmr.getDescriptor) match { + case (null, _) => + // In this instance, the dependency is specified by a direct URL or some other sort of "non-ivy" file + if (dd.isChanging) + Message.warn(s"Resolving a changing dependency (${rmr.getId}) with no ivy/pom file!, resolution order is undefined!") + case (ivf, dmd: DefaultModuleDescriptor) => + val lmd = new java.util.Date(ivf.getLastModified) Message.info(s"Getting null publication date from resolver: ${resolver} for ${rmr.getId}, setting to: ${lmd}") dmd.setPublicationDate(lmd) case _ =>