Coverity Fixes
FeedMessageOperatorNodePushable
- CID 68721 (#1 of 1): Useless call (USELESS_CALL)
FeedLoadManager
- CID 68719 (#1 of 1): Useless call (USELESS_CALL)
RuntimeRecordTypeInfo
- CID 68717 (#1 of 1): Unused value (UNUSED_VALUE)
HelpCommand
- CID 68591 (#1 of 1): Missing break in switch (MISSING_BREAK)
- CID 68716 (#1 of 1): Unused value (UNUSED_VALUE)
SimilarityJaccardEvaluator
- CID 68714 (#1 of 1): Arguments in wrong order (SWAPPED_ARGUMENTS)
DatasetLifecycleManager
- CID 68713 (#1 of 1): Dereference before null check (REVERSE_INULL)
FeedMetaComputeNodePushable
- CID 68712 (#1 of 2): Dereference before null check (REVERSE_INULL)
- CID 68712 (#2 of 2): Dereference before null check (REVERSE_INULL)
FeedRuntimeInputHandler
- CID 68709 (#1 of 1): Dereference before null check (REVERSE_INULL)
DataflowControllerProvider
- CID 68708 (#1 of 1): Resource leak on an exceptional path
(RESOURCE_LEAK)
TokenLoad
- CID 68697 (#1 of 1): Resource leak (RESOURCE_LEAK)
RecordGroupLengthRange
- CID 68696 (#1 of 1): Resource leak (RESOURCE_LEAK)
RecordManagerGeneratorMojo
- CID 68691 (#1 of 1): Resource leak (RESOURCE_LEAK)
APIServlet
- CID 68687 (#1 of 1): Resource leak (RESOURCE_LEAK)
Change-Id: I8927126f505481e83dd5b9e6e5ccd75bb67d8188
Reviewed-on: https://asterix-gerrit.ics.uci.edu/715
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>
diff --git a/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/APIServlet.java b/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/APIServlet.java
index 2f998bb..ba8644a 100644
--- a/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/APIServlet.java
+++ b/asterix-app/src/main/java/org/apache/asterix/api/http/servlet/APIServlet.java
@@ -171,38 +171,38 @@
resourcePath = requestURI;
}
- InputStream is = APIServlet.class.getResourceAsStream(resourcePath);
- if (is == null) {
- response.sendError(HttpServletResponse.SC_NOT_FOUND);
- return;
+ try (InputStream is = APIServlet.class.getResourceAsStream(resourcePath)) {
+ if (is == null) {
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ return;
+ }
+
+ // Special handler for font files and .png resources
+ if (resourcePath.endsWith(".png")) {
+
+ BufferedImage img = ImageIO.read(is);
+ OutputStream outputStream = response.getOutputStream();
+ String formatName = "png";
+ response.setContentType("image/png");
+ ImageIO.write(img, formatName, outputStream);
+ outputStream.close();
+ return;
+ }
+
+ response.setCharacterEncoding("utf-8");
+ InputStreamReader isr = new InputStreamReader(is);
+ StringBuilder sb = new StringBuilder();
+ BufferedReader br = new BufferedReader(isr);
+ String line = br.readLine();
+
+ while (line != null) {
+ sb.append(line);
+ line = br.readLine();
+ }
+
+ PrintWriter out = response.getWriter();
+ out.println(sb.toString());
}
-
- // Special handler for font files and .png resources
- if (resourcePath.endsWith(".png")) {
-
- BufferedImage img = ImageIO.read(is);
- OutputStream outputStream = response.getOutputStream();
- String formatName = "png";
- response.setContentType("image/png");
- ImageIO.write(img, formatName, outputStream);
- outputStream.close();
- return;
-
- }
-
- response.setCharacterEncoding("utf-8");
- InputStreamReader isr = new InputStreamReader(is);
- StringBuilder sb = new StringBuilder();
- BufferedReader br = new BufferedReader(isr);
- String line = br.readLine();
-
- while (line != null) {
- sb.append(line);
- line = br.readLine();
- }
-
- PrintWriter out = response.getWriter();
- out.println(sb.toString());
}
private static boolean isSet(String requestParameter) {
diff --git a/asterix-app/src/main/java/org/apache/asterix/app/external/FeedLoadManager.java b/asterix-app/src/main/java/org/apache/asterix/app/external/FeedLoadManager.java
index 5a590b4..b6be1e7 100644
--- a/asterix-app/src/main/java/org/apache/asterix/app/external/FeedLoadManager.java
+++ b/asterix-app/src/main/java/org/apache/asterix/app/external/FeedLoadManager.java
@@ -222,7 +222,6 @@
public int getOutflowRate(FeedConnectionId connectionId, FeedRuntimeType runtimeType) {
int rVal;
String key = "" + connectionId + ":" + runtimeType;
- feedMetrics.get(key);
Pair<Integer, Integer> value = feedMetrics.get(key);
if (value == null) {
rVal = UNKNOWN;
diff --git a/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java b/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
index 8f9b5b0..f667bd8 100644
--- a/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
+++ b/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
@@ -141,7 +141,7 @@
long resourceID = getResourceIDfromResourcePath(resourcePath);
DatasetInfo dsInfo = datasetInfos.get(did);
- IndexInfo iInfo = dsInfo.indexes.get(resourceID);
+ IndexInfo iInfo = dsInfo == null ? null : dsInfo.indexes.get(resourceID);
if (dsInfo == null || iInfo == null) {
throw new HyracksDataException("Index with resource ID " + resourceID + " does not exist.");
diff --git a/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FeedRuntimeInputHandler.java b/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FeedRuntimeInputHandler.java
index c4f7543..3370118 100644
--- a/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FeedRuntimeInputHandler.java
+++ b/asterix-external-data/src/main/java/org/apache/asterix/external/feed/dataflow/FeedRuntimeInputHandler.java
@@ -70,7 +70,7 @@
private final IFeedManager feedManager;
private boolean bufferingEnabled;
private IFrameWriter coreOperator;
- private MonitoredBuffer mBuffer;
+ private final MonitoredBuffer mBuffer;
private DataBucketPool pool;
private FrameCollection frameCollection;
private Mode mode;
@@ -186,7 +186,8 @@
if (fpa.spillToDiskOnCongestion()) {
if (frame != null) {
spiller.processMessage(frame);
- } // TODO handle the else case
+ } // TODO handle the else casec
+
} else {
discarder.processMessage(frame);
}
@@ -366,19 +367,17 @@
@Override
public void close() {
- if (mBuffer != null) {
- boolean disableMonitoring = !this.mode.equals(Mode.STALL);
- if (frameCollection != null) {
- feedManager.getFeedMemoryManager().releaseMemoryComponent(frameCollection);
- }
- if (pool != null) {
- feedManager.getFeedMemoryManager().releaseMemoryComponent(pool);
- }
- mBuffer.close(false, disableMonitoring);
- if (LOGGER.isLoggable(Level.INFO)) {
- LOGGER.info("Closed input side handler for " + this.runtimeId + " disabled monitoring "
- + disableMonitoring + " Mode for runtime " + this.mode);
- }
+ boolean disableMonitoring = !this.mode.equals(Mode.STALL);
+ if (frameCollection != null) {
+ feedManager.getFeedMemoryManager().releaseMemoryComponent(frameCollection);
+ }
+ if (pool != null) {
+ feedManager.getFeedMemoryManager().releaseMemoryComponent(pool);
+ }
+ mBuffer.close(false, disableMonitoring);
+ if (LOGGER.isLoggable(Level.INFO)) {
+ LOGGER.info("Closed input side handler for " + this.runtimeId + " disabled monitoring "
+ + disableMonitoring + " Mode for runtime " + this.mode);
}
}
@@ -424,9 +423,7 @@
if (LOGGER.isLoggable(Level.INFO)) {
LOGGER.info("Reset number of partitions to " + nPartitions + " for " + this.runtimeId);
}
- if (mBuffer != null) {
- mBuffer.reset();
- }
+ mBuffer.reset();
}
public FeedConnectionId getConnectionId() {
diff --git a/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMessageOperatorNodePushable.java b/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMessageOperatorNodePushable.java
index 36c11e9..a92544b 100644
--- a/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMessageOperatorNodePushable.java
+++ b/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMessageOperatorNodePushable.java
@@ -168,7 +168,6 @@
}
}
- commitResponseMessage.getIntakePartition();
SubscribableFeedRuntimeId sid = new SubscribableFeedRuntimeId(connectionId.getFeedId(), FeedRuntimeType.INTAKE,
partition);
IngestionRuntime ingestionRuntime = (IngestionRuntime) feedManager.getFeedSubscriptionManager()
diff --git a/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java b/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
index d41179f..66b520f 100644
--- a/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
+++ b/asterix-external-data/src/main/java/org/apache/asterix/external/operators/FeedMetaComputeNodePushable.java
@@ -185,20 +185,18 @@
boolean stalled = inputSideHandler.getMode().equals(Mode.STALL);
boolean end = inputSideHandler.getMode().equals(Mode.END);
try {
- if (inputSideHandler != null) {
- if (!(stalled || end)) {
- inputSideHandler.nextFrame(null); // signal end of data
- while (!inputSideHandler.isFinished()) {
- synchronized (coreOperator) {
- if (inputSideHandler.isFinished()) {
- break;
- }
- coreOperator.wait();
+ if (!(stalled || end)) {
+ inputSideHandler.nextFrame(null); // signal end of data
+ while (!inputSideHandler.isFinished()) {
+ synchronized (coreOperator) {
+ if (inputSideHandler.isFinished()) {
+ break;
}
+ coreOperator.wait();
}
- } else {
- inputSideHandler.setFinished(true);
}
+ } else {
+ inputSideHandler.setFinished(true);
}
coreOperator.close();
System.out.println("CLOSED " + coreOperator + " STALLED ?" + stalled + " ENDED " + end);
@@ -211,9 +209,7 @@
} else {
System.out.println("NOT DEREGISTERING " + this.feedRuntime.getRuntimeId());
}
- if (inputSideHandler != null) {
- inputSideHandler.close();
- }
+ inputSideHandler.close();
if (LOGGER.isLoggable(Level.INFO)) {
LOGGER.info("Ending Operator " + this.feedRuntime.getRuntimeId());
}
diff --git a/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DataflowControllerProvider.java b/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DataflowControllerProvider.java
index 6b4b6ba..d4d9a18 100644
--- a/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DataflowControllerProvider.java
+++ b/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DataflowControllerProvider.java
@@ -78,22 +78,27 @@
IDataFlowController recordDataFlowController = null;
IRecordReaderFactory<?> recordReaderFactory = (IRecordReaderFactory<?>) dataSourceFactory;
IRecordReader<?> recordReader = recordReaderFactory.createRecordReader(ctx, partition);
- recordReader.configure(configuration);
- IRecordDataParserFactory<?> recordParserFactory = (IRecordDataParserFactory<?>) dataParserFactory;
- IRecordDataParser<?> dataParser = recordParserFactory.createRecordParser(ctx);
- dataParser.configure(configuration, recordType);
- if (indexingOp) {
- recordDataFlowController = new IndexingDataFlowController(dataParser, recordReader);
- } else if (isFeed) {
- recordDataFlowController = new FeedRecordDataFlowController(feedLogManager, dataParser,
- recordReader);
- } else {
- recordDataFlowController = new RecordDataFlowController(dataParser, recordReader);
+ try {
+ recordReader.configure(configuration);
+ IRecordDataParserFactory<?> recordParserFactory = (IRecordDataParserFactory<?>) dataParserFactory;
+ IRecordDataParser<?> dataParser = recordParserFactory.createRecordParser(ctx);
+ dataParser.configure(configuration, recordType);
+ if (indexingOp) {
+ recordDataFlowController = new IndexingDataFlowController(dataParser, recordReader);
+ } else if (isFeed) {
+ recordDataFlowController = new FeedRecordDataFlowController(feedLogManager, dataParser,
+ recordReader);
+ } else {
+ recordDataFlowController = new RecordDataFlowController(dataParser, recordReader);
+ }
+ recordDataFlowController.configure(configuration, ctx);
+ recordDataFlowController
+ .setTupleForwarder(DataflowUtils.getTupleForwarder(configuration, feedLogManager));
+ return recordDataFlowController;
+ } catch (Exception e) {
+ recordReader.close();
+ throw e;
}
- recordDataFlowController.configure(configuration, ctx);
- recordDataFlowController
- .setTupleForwarder(DataflowUtils.getTupleForwarder(configuration, feedLogManager));
- return recordDataFlowController;
case STREAM:
IStreamFlowController streamDataFlowController = null;
if (isFeed) {
diff --git a/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthRange.java b/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthRange.java
index db62783..872d1f4 100644
--- a/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthRange.java
+++ b/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/recordgroup/RecordGroupLengthRange.java
@@ -33,8 +33,7 @@
public RecordGroupLengthRange(int noGroups, SimilarityFilters fuzzyFilters, String lengthstatsPath) {
super(noGroups, fuzzyFilters);
- try {
- DataInputStream in = new DataInputStream(new FileInputStream(lengthstatsPath.toString()));
+ try (DataInputStream in = new DataInputStream(new FileInputStream(lengthstatsPath))) {
min = in.readInt();
max = in.readInt();
groupSize = (int) Math.ceil((max - min + 1f) / noGroups);
diff --git a/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/tokenorder/TokenLoad.java b/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/tokenorder/TokenLoad.java
index ceb6ba0..3578d94 100644
--- a/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/tokenorder/TokenLoad.java
+++ b/asterix-fuzzyjoin/src/main/java/org/apache/asterix/fuzzyjoin/tokenorder/TokenLoad.java
@@ -41,10 +41,9 @@
}
public void loadTokenRank(int factor) {
- try {
- BufferedReader fis = new BufferedReader(
- // new FileReader(path.toString())
- new InputStreamReader(new FileInputStream(path), "UTF-8"));
+ try (BufferedReader fis = new BufferedReader(
+ // new FileReader(path.toString())
+ new InputStreamReader(new FileInputStream(path), "UTF-8"))) {
String token = null;
while ((token = fis.readLine()) != null) {
rank.add(token);
diff --git a/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java b/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
index a9c0592..e8a93be 100644
--- a/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
+++ b/asterix-installer/src/main/java/org/apache/asterix/installer/command/HelpCommand.java
@@ -64,6 +64,7 @@
break;
case UNINSTALL:
helpMessage = new UninstallCommand().getUsageDescription();
+ break;
case ALTER:
helpMessage = new AlterCommand().getUsageDescription();
break;
diff --git a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/org/apache/asterix/recordmanagergenerator/RecordManagerGeneratorMojo.java b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/org/apache/asterix/recordmanagergenerator/RecordManagerGeneratorMojo.java
index bf981aa..d7479bc 100644
--- a/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/org/apache/asterix/recordmanagergenerator/RecordManagerGeneratorMojo.java
+++ b/asterix-maven-plugins/record-manager-generator-maven-plugin/src/main/java/org/apache/asterix/recordmanagergenerator/RecordManagerGeneratorMojo.java
@@ -23,6 +23,7 @@
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
+import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.util.HashMap;
@@ -86,17 +87,18 @@
typeMap = new HashMap<String, RecordType>();
for (int i = 0; i < inputFiles.length; ++i) {
- try {
- getLog().info("reading " + inputFiles[i].toString());
- Reader read = new FileReader(inputFiles[i]);
+ getLog().info("reading " + inputFiles[i].toString());
+ try (Reader read = new FileReader(inputFiles[i])) {
RecordType type = RecordType.read(read);
// always add allocId to enable tracking of allocations
type.addField("alloc id", RecordType.Type.SHORT, null);
type.addToMap(typeMap);
} catch (FileNotFoundException fnfe) {
- throw new MojoExecutionException("cound not find type description file " + inputFiles[i], fnfe);
+ throw new MojoExecutionException("could not find type description file " + inputFiles[i], fnfe);
} catch (JSONException jse) {
- throw new MojoExecutionException("cound not parse type description file " + inputFiles[i], jse);
+ throw new MojoExecutionException("could not parse type description file " + inputFiles[i], jse);
+ } catch (IOException e) {
+ throw new MojoExecutionException("error closing type description file " + inputFiles[i], e);
}
}
}
diff --git a/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java b/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
index 07773d8..a34bd40 100644
--- a/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
+++ b/asterix-om/src/main/java/org/apache/asterix/om/types/runtime/RuntimeRecordTypeInfo.java
@@ -131,7 +131,7 @@
int fIndex;
int probeFieldHash = fieldNameHashFunction.hash(bytes, start, length);
int i = Arrays.binarySearch(hashCodeIndexPairs, ((long) probeFieldHash) << 32);
- i = (i < 0) ? (i = -1 * (i + 1)) : i;
+ i = (i < 0) ? -1 * (i + 1) : i;
while (i < hashCodeIndexPairs.length && (int) (hashCodeIndexPairs[i] >>> 32) == probeFieldHash) {
fIndex = (int) hashCodeIndexPairs[i];
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/SimilarityJaccardEvaluator.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/SimilarityJaccardEvaluator.java
index cb7ba8c..e59c04f 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/SimilarityJaccardEvaluator.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/SimilarityJaccardEvaluator.java
@@ -199,7 +199,7 @@
}
}
- protected int probeHashMap(AbstractAsterixListIterator probeIter, int probeListSize, int buildListSize)
+ protected int probeHashMap(AbstractAsterixListIterator probeIter, int buildListSize, int probeListSize)
throws HyracksDataException {
// Probe phase: Probe items from second list, and compute intersection size.
int intersectionSize = 0;