IDEA-168220 Check for empty/null icon URL before accessing pool

This commit is contained in:
Mikhail Golubev
2018-10-18 15:11:33 +03:00
parent ed9a008206
commit a6b3145b56
@@ -3,6 +3,7 @@ package com.intellij.tasks.jira;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.tasks.*;
import com.intellij.ui.DeferredIconImpl;
import com.intellij.util.ObjectUtils;
import icons.TasksCoreIcons;
import icons.TasksIcons;
import org.jetbrains.annotations.NotNull;
@@ -71,7 +72,13 @@ public abstract class JiraTask extends Task {
public final Icon getIcon() {
if (myIcon == null) {
// getIconUrl() shouldn't be called before the instance is properly initialized
myIcon = new DeferredIconImpl<>(TasksCoreIcons.Jira, getIconUrl(), false, this::getIconByUrl);
final String iconUrl = getIconUrl();
if (StringUtil.isEmpty(iconUrl)) {
myIcon = TasksCoreIcons.Jira;
}
else {
myIcon = new DeferredIconImpl<>(TasksCoreIcons.Jira, iconUrl, false, JiraTask::getIconByUrl);
}
}
return myIcon;
}
@@ -100,12 +107,8 @@ public abstract class JiraTask extends Task {
* @return task con.
*/
@NotNull
protected final Icon getIconByUrl(@Nullable String iconUrl) {
if (StringUtil.isEmpty(iconUrl)) {
return TasksCoreIcons.Jira;
}
Icon icon = CachedIconLoader.getIcon(iconUrl);
return icon != null ? icon : TasksIcons.Other;
protected static Icon getIconByUrl(@Nullable String iconUrl) {
return ObjectUtils.notNull(CachedIconLoader.getIcon(iconUrl), TasksIcons.Other);
}
/**