From: Tom Pantelis Date: Tue, 16 Jun 2015 21:15:51 +0000 (-0400) Subject: Bug 3782: Fix NPE in API doc explorer X-Git-Tag: release/beryllium~197 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=c4c40e94cfeafd77ea8c962a81a780981c3d7a06;p=netconf.git Bug 3782: Fix NPE in API doc explorer Fixed NPE when a netconf mounted device has a yang file without a version. Change-Id: Ie562c05772ecd5e9c7d82afc31d06aaf852308a5 Signed-off-by: Tom Pantelis (cherry picked from commit d9cd9f52898f2705347fa9d6a30f054bdc751a98) --- diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/BaseYangSwaggerGenerator.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/BaseYangSwaggerGenerator.java index a261f23807..c8bf6e6675 100644 --- a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/BaseYangSwaggerGenerator.java +++ b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/BaseYangSwaggerGenerator.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.sal.rest.doc.impl; import static org.opendaylight.controller.sal.rest.doc.util.RestDocgenUtil.resolvePathArgumentsName; - import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsonorg.JsonOrgModule; @@ -20,10 +19,12 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; +import java.util.GregorianCalendar; import java.util.List; import java.util.Set; import java.util.SortedSet; @@ -119,11 +120,25 @@ public class BaseYangSwaggerGenerator { public ApiDeclaration getApiDeclaration(String module, String revision, UriInfo uriInfo, SchemaContext schemaContext, String context) { Date rev = null; + try { - rev = SIMPLE_DATE_FORMAT.parse(revision); + if(revision != null && !revision.equals("0000-00-00")) { + rev = SIMPLE_DATE_FORMAT.parse(revision); + } } catch (ParseException e) { throw new IllegalArgumentException(e); } + + if(rev != null) { + Calendar cal = new GregorianCalendar(); + + cal.setTime(rev); + + if(cal.get(Calendar.YEAR) < 1970) { + rev = null; + } + } + Module m = schemaContext.findModuleByName(module, rev); Preconditions.checkArgument(m != null, "Could not find module by name,revision: " + module + "," + revision);