Author: cwiklik
Date: Fri Jun 24 15:10:25 2016
New Revision: 1750122
URL: http://svn.apache.org/viewvc?rev=1750122&view=rev
Log:
UIMA-4989 fixed dereferencing null pointer issues reported by Findbugs
Modified:
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
Modified:
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java?rev=1750122&r1=1750121&r2=1750122&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
(original)
+++
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CGroupsManager.java
Fri Jun 24 15:10:25 2016
@@ -158,7 +158,9 @@ public class CGroupsManager {
File cgroupsFolder = new File(cgroupBaseDir);
String[] files = cgroupsFolder.list();
-
+ if ( files == null || files.length == 0 ) {
+ return;
+ }
for (String cgroupFolder : files) {
Matcher m = p.matcher(cgroupFolder);
@@ -262,7 +264,9 @@ public class CGroupsManager {
File cgroupsFolder = new File(cgroupBaseDir);
String[] files = cgroupsFolder.list();
-
+ if ( files == null || files.length == 0 ) {
+ return new String[0]; // empty better than NULL
+ }
for (String cgroupFolder : files) {
Matcher m = p.matcher(cgroupFolder);
// only look at ducc's cgroups
@@ -606,7 +610,9 @@ public class CGroupsManager {
int retryCount=0;
Object sleepMonitor = new Object();
-
+ if ( command == null) {
+ return -1;
+ }
synchronized(CGroupsManager.class) {
long delay = delayFactor;//
while( retryCount <= retryMax ) {
@@ -623,6 +629,7 @@ public class CGroupsManager {
try {
agentLogger.info("launchCommand", null,
"Launching Process - Commandline:"+sb.toString());
ProcessBuilder processLauncher = new
ProcessBuilder();
+
processLauncher.command(command);
processLauncher.redirectErrorStream(true);
java.lang.Process process =
processLauncher.start();
@@ -711,9 +718,11 @@ public class CGroupsManager {
File duccCGroupBaseDir = new File(cgroupBaseDir);
if (duccCGroupBaseDir.exists()) {
File[] existingCGroups = duccCGroupBaseDir.listFiles();
- for (File cgroup : existingCGroups) {
- if (cgroup.isDirectory()) {
- containerIds.add(cgroup.getName());
+ if ( existingCGroups != null ) {
+ for (File cgroup : existingCGroups) {
+ if (cgroup.isDirectory()) {
+
containerIds.add(cgroup.getName());
+ }
}
}
}
@@ -890,7 +899,12 @@ public class CGroupsManager {
File f = new File(cgroupsBaseDir + "/" +
"test/cpu.shares");
reader = new BufferedReader(new FileReader(f));
// read 1st line. It should be equal to
cpuShares
- shares = reader.readLine().trim();
+ if ( reader != null ) {
+ shares = reader.readLine();
+ if ( shares != null ) {
+ shares = shares.trim();
+ }
+ }
System.out.println("----- Cgroup cgset verifier -
cpu.shares read from file:"+shares);
if ( !String.valueOf(cpuShares).equals(shares)) {
throw new
CGroupsException().addCommand(CGroupCommand.CGSET.cmd())