Fix Klocwork issues (#7)
* Fix issue 6: empty catch block
* Fix issue 6: empty catch block
* Fix issue 7: check data name size to avoid runtime exceptions
* Fix issue 10: Avoid catching nullPointerException
* Bump version
Also fixes a minor checkstyle issue (line too long)
diff --git a/build.gradle b/build.gradle
index ab0d287..ac02f8c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -18,7 +18,7 @@
apply plugin: 'checkstyle'
group = 'com.intel.jndn.management'
-version = '1.1.2'
+version = '1.1.3'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
diff --git a/pom.xml b/pom.xml
index 8d273d2..51eb6e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.intel.jndn.management</groupId>
<artifactId>jndn-management</artifactId>
- <version>1.1.2</version>
+ <version>1.1.3</version>
<name>jndn-management</name>
<description>Tools for managing an NDN forwarding daemon</description>
<url>https://github.com/01org/jndn-management</url>
diff --git a/src/main/java/com/intel/jndn/management/Nfdc.java b/src/main/java/com/intel/jndn/management/Nfdc.java
index f8a780d..2be7755 100644
--- a/src/main/java/com/intel/jndn/management/Nfdc.java
+++ b/src/main/java/com/intel/jndn/management/Nfdc.java
@@ -569,12 +569,16 @@
*/
private static ControlResponse sendCommand(final Face face, final Name name) throws IOException, EncodingException,
ManagementException {
+ if (face == null) {
+ throw new IllegalArgumentException("Face parameter is null.");
+ }
+
Interest interest = new Interest(name);
// forwarder must have command signing info set
try {
face.makeCommandInterest(interest);
- } catch (NullPointerException | SecurityException e) {
+ } catch (SecurityException e) {
throw new IllegalArgumentException("Failed to make command interest; ensure command signing info is set on the " +
"face.", e);
}
diff --git a/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java b/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
index 2b92a54..b22a18a 100644
--- a/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
+++ b/src/main/java/com/intel/jndn/management/helpers/FetchHelper.java
@@ -28,11 +28,10 @@
import java.util.logging.Logger;
/**
- * Trival NDN client to fetch one or multiple Data packets.
+ * Trivial NDN client to fetch one or multiple data packets.
*/
public final class FetchHelper implements OnData, OnTimeout {
- public static final long DEFAULT_TIMEOUT = 2000;
-
+ private static final long DEFAULT_TIMEOUT = 2000;
private static final Logger LOG = Logger.getLogger(FetchHelper.class.getName());
private static final int SLEEP_TIMEOUT = 20;
private static final int SEGMENT_NAME_COMPONENT_OFFSET = -1;
@@ -44,12 +43,6 @@
/////////////////////////////////////////////////////////////////////////////
/**
- * Prevent creation of FetchHelper instances: use getData or getSegmentedData.
- */
- private FetchHelper() {
- }
-
- /**
* Private constructor: use getData or getSegmentedData.
*/
private FetchHelper(final Face face) {
@@ -119,16 +112,18 @@
Data data = fetcher.getData(interest);
- try {
- data.getName().get(SEGMENT_NAME_COMPONENT_OFFSET).toSegment();
- } catch (ArrayIndexOutOfBoundsException | EncodingException e) {
- throw new IOException("Retrieved data does not have segment number as the last name component", e);
- }
if (data.getName().size() != prefix.size() + 2) {
- throw new IOException("Retrieved data is not part of segmented stream");
+ throw new IOException("Retrieved data is not part of segmented stream; " +
+ "data name must end with .../[version]/[segment]");
}
- long finalBlockId = 0;
+ try {
+ data.getName().get(SEGMENT_NAME_COMPONENT_OFFSET).toSegment();
+ } catch (EncodingException e) {
+ throw new IOException("Retrieved data does not have segment number as the last name component", e);
+ }
+
+ long finalBlockId;
try {
finalBlockId = data.getMetaInfo().getFinalBlockId().toSegment();
} catch (EncodingException e) {
@@ -167,7 +162,7 @@
try {
Thread.sleep(SLEEP_TIMEOUT);
} catch (InterruptedException e) {
- // ok
+ Thread.currentThread().interrupt();
}
}
@@ -189,7 +184,7 @@
state.nRetries--;
if (state.nRetries > 0) {
try {
- face.expressInterest(new Interest(interest).setNonce(null), this, this);
+ face.expressInterest(new Interest(interest), this, this);
} catch (IOException e) {
LOG.log(Level.INFO, "Error while expressing interest: " + e.toString(), e);
}