@@ -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