Skip to content

Commit 47725f5

Browse files
committed
misc - null check
1 parent ae5e765 commit 47725f5

File tree

4 files changed

+36
-9
lines changed

4 files changed

+36
-9
lines changed

scouter.client/src/scouter/client/util/MenuUtil.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2015 the original author or authors.
2+
* Copyright 2015 the original author or authors.
33
* @https://github.com/scouter-project/scouter
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,9 +17,6 @@
1717
*/
1818
package scouter.client.util;
1919

20-
import java.util.ArrayList;
21-
import java.util.HashMap;
22-
2320
import org.eclipse.jface.action.Action;
2421
import org.eclipse.jface.action.IMenuCreator;
2522
import org.eclipse.jface.action.IMenuListener;
@@ -36,7 +33,6 @@
3633
import org.eclipse.swt.widgets.MenuItem;
3734
import org.eclipse.ui.IWorkbenchWindow;
3835
import org.eclipse.ui.PlatformUI;
39-
4036
import scouter.client.Images;
4137
import scouter.client.actions.OpenActiveServiceListAction;
4238
import scouter.client.actions.OpenActiveSpeedAction;
@@ -121,6 +117,9 @@
121117
import scouter.lang.counters.CounterEngine;
122118
import scouter.util.DateUtil;
123119

120+
import java.util.ArrayList;
121+
import java.util.HashMap;
122+
124123
public class MenuUtil implements IMenuCreator{
125124

126125
private Menu menu;
@@ -215,6 +214,9 @@ public static void createMenu(IWorkbenchWindow window, IToolBarManager man,
215214
public static HashMap<String, Action> getCounterActionList(IWorkbenchWindow window, CounterEngine counterEngine, int serverId){
216215
HashMap<String, Action> actions = new HashMap<String, Action>();
217216
ArrayList<String> objTypeAndCounter = counterEngine.getAllCounterList();
217+
if (objTypeAndCounter == null || objTypeAndCounter.isEmpty()) {
218+
return actions;
219+
}
218220
for (int inx = 0; inx < objTypeAndCounter.size(); inx++) {
219221
String[] splitedKey = objTypeAndCounter.get(inx).split(":");
220222
String objType = splitedKey[0];

scouter.common/src/main/java/scouter/lang/ObjectType.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717

1818
package scouter.lang;
1919

20+
import scouter.util.StringKeyLinkedMap;
21+
2022
import java.util.Enumeration;
2123
import java.util.List;
2224

23-
import scouter.util.StringKeyLinkedMap;
24-
2525
public class ObjectType {
2626
private String name;
2727
private String displayName;
@@ -80,6 +80,7 @@ public boolean isTrueAttribute(String key) {
8080
}
8181

8282
public Counter[] listCounters() {
83+
if(family == null) return null;
8384
List<Counter> list = family.listCounters();
8485
Enumeration<Counter> en = counterMap.values();
8586
while (en.hasMoreElements()) {
@@ -132,4 +133,4 @@ public boolean equals(Object obj) {
132133
return false;
133134
return true;
134135
}
135-
}
136+
}

scouter.common/src/main/java/scouter/lang/counters/CounterEngine.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,7 @@ public ArrayList<String> getAllCounterList() {
277277
while (types.hasMoreElements()) {
278278
ObjectType obj = types.nextElement();
279279
scouter.lang.Counter[] counters = obj.listCounters();
280+
if(counters == null) return null;
280281
for (scouter.lang.Counter counter : counters) {
281282
if (counter.isAll()) {
282283
list.add(obj.getName() + ":" + counter.getDisplayName() + ":" + counter.getName());
@@ -542,4 +543,4 @@ public static void main(String[] args) {
542543
System.out.println(ce.getCounterIconFileName("tomcat", "visit0"));
543544
System.out.println(ce.getCounterUnit("tomcat", "visit0"));
544545
}
545-
}
546+
}

scouter.server/src/main/java/scouter/server/plugin/alert/RealCounter.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import scouter.lang.value.Value;
2929
import scouter.server.core.AgentManager;
3030
import scouter.server.core.cache.CounterCache;
31+
import scouter.util.HashUtil;
3132
import scouter.util.IntLongLinkedMap;
3233
import scouter.util.LongEnumer;
3334
import scouter.util.LongKeyLinkedMap;
@@ -300,6 +301,17 @@ public float getFloatValue(String counter) {
300301
return 0;
301302
}
302303

304+
@ConfigDesc("get the another objects counter's value as float.")
305+
@ParamDesc("String objectFullName, String counter")
306+
public float getFloatValue(String objectFullName, String counter) {
307+
int anotherObjHash = HashUtil.hash(objectFullName);
308+
Value v = CounterCache.get(new CounterKey(anotherObjHash, counter, _timetype));
309+
if (v instanceof Number)
310+
return ((Number) v).floatValue();
311+
else
312+
return 0;
313+
}
314+
303315
@Deprecated
304316
public float floatValue(String counter) {
305317
return getFloatValue(counter);
@@ -315,6 +327,17 @@ public int getIntValue(String counter) {
315327
return 0;
316328
}
317329

330+
@ConfigDesc("get the another objects counter's value as int.")
331+
@ParamDesc("String objectFullName, String counter")
332+
public int getIntValue(String objectFullName, String counter) {
333+
int anotherObjHash = HashUtil.hash(objectFullName);
334+
Value v = CounterCache.get(new CounterKey(anotherObjHash, counter, _timetype));
335+
if (v instanceof Number)
336+
return ((Number) v).intValue();
337+
else
338+
return 0;
339+
}
340+
318341
@Deprecated
319342
public int intValue(String counter) {
320343
return getIntValue(counter);

0 commit comments

Comments
 (0)