From 20f50100be46de7efd755f65008689ebc2df38f9 Mon Sep 17 00:00:00 2001 From: Grzegorz Kossakowski Date: Wed, 24 Sep 2014 23:05:52 +0200 Subject: [PATCH] Use Option.apply instead of Some.apply in ClassToAPI When dealing with Java APIs (Java reflection in case of ClassToAPI), one should always go through Option.apply that performs null check. This is supposed to fix NPE reported in #1617. We don't have a reproduction so this is just an educated guess. --- compile/api/src/main/scala/sbt/ClassToAPI.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compile/api/src/main/scala/sbt/ClassToAPI.scala b/compile/api/src/main/scala/sbt/ClassToAPI.scala index 5b92b8d36..a6107fab6 100644 --- a/compile/api/src/main/scala/sbt/ClassToAPI.scala +++ b/compile/api/src/main/scala/sbt/ClassToAPI.scala @@ -138,7 +138,7 @@ object ClassToAPI { } def methodToDef(enclPkg: Option[String])(m: Method): api.Def = - defLike(m.getName, m.getModifiers, m.getDeclaredAnnotations, typeParameterTypes(m), m.getParameterAnnotations, parameterTypes(m), Some(returnType(m)), exceptionTypes(m), m.isVarArgs, enclPkg) + defLike(m.getName, m.getModifiers, m.getDeclaredAnnotations, typeParameterTypes(m), m.getParameterAnnotations, parameterTypes(m), Option(returnType(m)), exceptionTypes(m), m.isVarArgs, enclPkg) def constructorToDef(enclPkg: Option[String])(c: Constructor[_]): api.Def = defLike("", c.getModifiers, c.getDeclaredAnnotations, typeParameterTypes(c), c.getParameterAnnotations, parameterTypes(c), None, exceptionTypes(c), c.isVarArgs, enclPkg)