Fix String related potential performance issue reported by FindBugs
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java b/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java
index dec70e3..e807b56 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java
@@ -116,19 +116,18 @@
* inPort/dpid/outPort;inPort/dpid/outPort;...
*/
public String dataPathSummary() {
- String resultStr = new String();
+ StringBuilder resultStr = new StringBuilder(5+1+20+1+5+1);
if (this.flowEntries != null) {
for (FlowEntry flowEntry : this.flowEntries) {
// The data path summary string
- resultStr = resultStr +
- flowEntry.inPort().toString() + "/"
- + flowEntry.dpid().toString() + "/" +
- flowEntry.outPort().toString() + ";";
+ resultStr.append(flowEntry.inPort().toString()).append('/')
+ .append(flowEntry.dpid().toString()).append('/')
+ .append(flowEntry.outPort().toString()).append(';');
}
}
- if (resultStr.isEmpty())
- resultStr = "X"; // Invalid shortest-path
- return resultStr;
+ if (resultStr.length() == 0)
+ resultStr.append("X"); // Invalid shortest-path
+ return resultStr.toString();
}
/**
diff --git a/src/main/java/org/openflow/util/HexString.java b/src/main/java/org/openflow/util/HexString.java
index 5777612..07cc1f7 100644
--- a/src/main/java/org/openflow/util/HexString.java
+++ b/src/main/java/org/openflow/util/HexString.java
@@ -27,35 +27,35 @@
*/
public static String toHexString(byte[] bytes) {
int i;
- String ret = "";
+ StringBuilder ret = new StringBuilder(8*2+7);
String tmp;
for(i=0; i< bytes.length; i++) {
if(i> 0)
- ret += ":";
+ ret.append(':');
tmp = Integer.toHexString(U8.f(bytes[i]));
if (tmp.length() == 1)
- ret += "0";
- ret += tmp;
+ ret.append('0');
+ ret.append(tmp);
}
- return ret;
+ return ret.toString();
}
public static String toHexString(long val, int padTo) {
char arr[] = Long.toHexString(val).toCharArray();
- String ret = "";
+ StringBuilder ret = new StringBuilder(8*2+7);
// prepend the right number of leading zeros
int i = 0;
for (; i < (padTo * 2 - arr.length); i++) {
- ret += "0";
+ ret.append('0');
if ((i % 2) == 1)
- ret += ":";
+ ret.append(':');
}
for (int j = 0; j < arr.length; j++) {
- ret += arr[j];
+ ret.append(arr[j]);
if ((((i + j) % 2) == 1) && (j < (arr.length - 1)))
- ret += ":";
+ ret.append(':');
}
- return ret;
+ return ret.toString();
}
public static String toHexString(long val) {