handle duplicate counter names
This commit is contained in:
parent
c2296865e2
commit
da89d13c77
|
@ -28,6 +28,8 @@ import org.hyperic.sigar.SigarLoader;
|
||||||
|
|
||||||
public class Pdh extends Win32 {
|
public class Pdh extends Win32 {
|
||||||
|
|
||||||
|
public static final long SUCCESS = 0;
|
||||||
|
|
||||||
public static final String PERFLIB_KEY =
|
public static final String PERFLIB_KEY =
|
||||||
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib";
|
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib";
|
||||||
|
|
||||||
|
@ -210,7 +212,27 @@ public class Pdh extends Win32 {
|
||||||
}
|
}
|
||||||
|
|
||||||
String counter = tok.nextToken();
|
String counter = tok.nextToken();
|
||||||
trans.append(DELIM).append(getCounterName(counter));
|
trans.append(DELIM);
|
||||||
|
|
||||||
|
int[] cix = (int[])counters.get(counter);
|
||||||
|
if (cix != null) {
|
||||||
|
if (cix.length == 1) {
|
||||||
|
counter = getCounterName(cix[0]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//handle duplicate counter names
|
||||||
|
for (int i=0; i<cix.length; i++) {
|
||||||
|
String name =
|
||||||
|
getCounterName(cix[i]);
|
||||||
|
if (validate(trans + name) == SUCCESS) {
|
||||||
|
counter = name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trans.append(counter);
|
||||||
|
|
||||||
return trans.toString();
|
return trans.toString();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue