SLIDER-1153 Code issues - null pointer deferences found (Jian He via gourksaha)
diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
index ef62745..73e0879 100644
--- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java
@@ -1379,6 +1379,9 @@
File srcFolder = new File(srcPath);
FilenameFilter jarFilter = createJarFilter();
File[] listOfJars = srcFolder.listFiles(jarFilter);
+ if (listOfJars == null || listOfJars.length == 0) {
+ return;
+ }
for (File jarFile : listOfJars) {
LocalResource res = sliderFileSystem.submitFile(jarFile, tempPath, libDir, jarFile.getName());
providerResources.put(libDir + "/" + jarFile.getName(), res);
@@ -1981,6 +1984,9 @@
if (node.isDirectory()) {
String[] subNode = node.list(filter);
+ if (subNode == null || subNode.length == 0) {
+ return;
+ }
for (String filename : subNode) {
generateFileList(fileList, new File(node, filename), rootFolder,
relative, filter);
diff --git a/slider-core/src/main/java/org/apache/slider/server/avro/RoleHistoryWriter.java b/slider-core/src/main/java/org/apache/slider/server/avro/RoleHistoryWriter.java
index b76f228..49d8fb2 100644
--- a/slider-core/src/main/java/org/apache/slider/server/avro/RoleHistoryWriter.java
+++ b/slider-core/src/main/java/org/apache/slider/server/avro/RoleHistoryWriter.java
@@ -220,6 +220,9 @@
//read header : no entry -> EOF
RoleHistoryRecord record = reader.read(null, decoder);
+ if (record == null) {
+ throw new IOException("Role History Header not found at start of file.");
+ }
Object entry = record.getEntry();
if (!(entry instanceof RoleHistoryHeader)) {
throw new IOException("Role History Header not found at start of file");
@@ -238,6 +241,9 @@
try {
while (footer == null) {
record = reader.read(null, decoder);
+ if (record == null) {
+ throw new IOException("Null record after " + records + " records");
+ }
entry = record.getEntry();
if (entry instanceof RoleHistoryHeader) {
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java b/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
index 9beb2d8..0f1cd72 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/security/SecurityUtils.java
@@ -159,6 +159,9 @@
boolean persistPassword) {
String keyStoreLocation = configMap.getOption(
SliderXmlConfKeys.KEY_KEYSTORE_LOCATION, getDefaultKeystoreLocation());
+ if (keyStoreLocation == null) {
+ LOG.error(SliderXmlConfKeys.KEY_KEYSTORE_LOCATION + " is not specified.");
+ }
File secDirFile = new File(keyStoreLocation).getParentFile();
if (!secDirFile.exists()) {
// create entire required directory structure