Merge branch '2.6'
Conflicts:
pom.xml
release-notes/VERSION
diff --git a/release-notes/VERSION b/release-notes/VERSION
index d5869c8..8ef10c5 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -26,6 +26,12 @@
- Implemented `ReaderBasedJsonParser.nextFieldName(SerializableString)`
(to improved Afterburner performance over String/char[] sources)
+2.6.6 (not yet released)
+
+#248: VersionUtil.versionFor() unexpectedly return null instead of Version.unknownVersion()
+ (reported by sammyhk@github)
+
+2.6.5 (19-Jan-2015)
2.6.4 (07-Dec-2015)
No changes since 2.6.3.
diff --git a/src/main/java/com/fasterxml/jackson/core/util/VersionUtil.java b/src/main/java/com/fasterxml/jackson/core/util/VersionUtil.java
index 349d086..4c121ad 100644
--- a/src/main/java/com/fasterxml/jackson/core/util/VersionUtil.java
+++ b/src/main/java/com/fasterxml/jackson/core/util/VersionUtil.java
@@ -77,24 +77,26 @@
/**
* Loads version information by introspecting a class named
* "PackageVersion" in the same package as the given class.
- *
+ *<p>
* If the class could not be found or does not have a public
* static Version field named "VERSION", returns null.
*/
public static Version packageVersionFor(Class<?> cls)
{
+ Version v = null;
try {
String versionInfoClassName = cls.getPackage().getName() + ".PackageVersion";
Class<?> vClass = Class.forName(versionInfoClassName, true, cls.getClassLoader());
// However, if class exists, it better work correctly, no swallowing exceptions
try {
- return ((Versioned) vClass.newInstance()).version();
+ v = ((Versioned) vClass.newInstance()).version();
} catch (Exception e) {
throw new IllegalArgumentException("Failed to get Versioned out of "+vClass);
}
} catch (Exception e) { // ok to be missing (not good but acceptable)
- return null;
+ ;
}
+ return (v == null) ? Version.unknownVersion() : v;
}
/**
@@ -147,7 +149,7 @@
(parts.length > 3) ? parts[3] : null,
groupId, artifactId);
}
- return null;
+ return Version.unknownVersion();
}
protected static int parseVersionPart(String s) {