Skip to content

Commit 2272b24

Browse files
committed
Synchronize the issue cache
1 parent 30d7771 commit 2272b24

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

src/main/java/com/junichi11/netbeans/modules/github/issues/repository/GitHubRepository.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public class GitHubRepository {
9898
private RepositoryInfo repositoryInfo;
9999
private GitHubRepositoryController controller;
100100
private Repository ghRepository;
101-
private final Map<String, GitHubIssue> issueCache = new HashMap<>();
101+
private final Map<String, GitHubIssue> issueCache = Collections.synchronizedMap(new HashMap<String, GitHubIssue>());
102102
private Boolean isCollaborator = null;
103103

104104
private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
@@ -393,7 +393,7 @@ public Issue editIssue(GitHubIssue gitHubIssue, CreateIssueParams params) {
393393
* @param issue Issue
394394
* @return GitHubIssue
395395
*/
396-
public GitHubIssue createIssue(Issue issue) {
396+
public synchronized GitHubIssue createIssue(Issue issue) {
397397
String id = String.valueOf(issue.getNumber());
398398
GitHubIssue gitHubIssue = issueCache.get(id);
399399
if (gitHubIssue != null) {
@@ -409,7 +409,7 @@ public GitHubIssue createIssue(Issue issue) {
409409
*
410410
* @param issue GitHubIssue
411411
*/
412-
public void addIssue(GitHubIssue issue) {
412+
public synchronized void addIssue(GitHubIssue issue) {
413413
if (issue == null) {
414414
return;
415415
}
@@ -498,7 +498,10 @@ public List<GitHubIssue> getIssues(String... ids) {
498498
*/
499499
@CheckForNull
500500
private GitHubIssue getIssue(String id) {
501-
GitHubIssue issue = issueCache.get(id);
501+
GitHubIssue issue;
502+
synchronized (this) {
503+
issue = issueCache.get(id);
504+
}
502505
if (issue != null) {
503506
return issue;
504507
}

0 commit comments

Comments
 (0)