Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-7067

IllegalArgumentException: duplicate key in CommentLikePropertyProvider

    XMLWordPrintable

Details

    Description

      FlatteningCommentPropertyProvider does not deduplicate the comments when 'flattening' the CommentPropertyContext.

      As a result, descendants of that SPI class can provide properties for the same comments multiple times which creates IllegalArgumentException: duplicate key when the properties are added to the comment.

      For example:

      java.lang.IllegalArgumentException: duplicate key: likedBy
      	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:115) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:72) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.google.common.collect.ImmutableMap$Builder.fromEntryList(ImmutableMap.java:245) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:231) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.atlassian.stash.property.PropertyMap$Builder.build(PropertyMap.java:160) ~[stash-api-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.content.AbstractProviderContext.getPropertiesFor(AbstractProviderContext.java:56) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.comment.PluginCommentPostProcessor$Enricher.apply(PluginCommentPostProcessor.java:163) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.comment.PluginCommentPostProcessor$Enricher.apply(PluginCommentPostProcessor.java:152) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.comment.PluginCommentPostProcessor$Enricher.apply(PluginCommentPostProcessor.java:143) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.google.common.collect.Lists$TransformingRandomAccessList.get(Lists.java:451) ~[guava-11.0.2-atlassian-02.jar:na]
      	at java.util.AbstractList$Itr.next(AbstractList.java:358) ~[na:1.8.0_31]
      	at java.util.AbstractCollection.toArray(AbstractCollection.java:141) ~[na:1.8.0_31]
      	at com.google.common.collect.ImmutableList.copyFromCollection(ImmutableList.java:290) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:247) ~[guava-11.0.2-atlassian-02.jar:na]
      	at com.atlassian.stash.internal.comment.PluginCommentPostProcessor.processAll(PluginCommentPostProcessor.java:79) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.pull.comment.CompositeCommentPostProcessor.processAll(CompositeCommentPostProcessor.java:45) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.pull.comment.CommentPullRequestActivityEnricher.enrich(CommentPullRequestActivityEnricher.java:96) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.pull.DefaultPullRequestService.enrichActivities(DefaultPullRequestService.java:1207) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.pull.DefaultPullRequestService.enrichActivities(DefaultPullRequestService.java:1200) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      	at com.atlassian.stash.internal.pull.DefaultPullRequestService.searchActivities(DefaultPullRequestService.java:791) ~[stash-service-impl-3.7.0-SNAPSHOT.jar:na]
      

      Attachments

        Activity

          People

            dkordonski Dariusz Kordonski (Inactive)
            pepoirot Pierre-Etienne Poirot (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: