Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-24423

Activity Streams Plugin throws Error when it encounters a space in the space name

    XMLWordPrintable

Details

    Description

      Xpost : https://studio.atlassian.com/browse/STRM-2031?

      Manifestation and Steps to reproduce:
      1. Construct a space that has a space in the spacekey.
      2. Create an activity stream that has this space in it's scope.

      Reason it's problemmatic:
      Every stream with the problem uri will probe the rest api resource and cause an error. If there are a lot of streams, this can cause continuous errors on the Appserver.

      Relevant Stack trace:

      2012-01-13 07:36:08,588 WARN [StreamsCompletionService::thread-1072] [atlassian.streams.confluence.ConfluenceStreamsActivityProvider] apply Error creating streams entry
       -- url: /plugins/servlet/streams | userName: anonymous
      java.lang.IllegalArgumentException
      	at java.net.URI.create(Unknown Source)
      	at com.atlassian.streams.confluence.ConfluenceEntryFactoryImpl.buildWatchUrl(ConfluenceEntryFactoryImpl.java:205)
      	at com.atlassian.streams.confluence.ConfluenceEntryFactoryImpl.getSpaceWatchLink(ConfluenceEntryFactoryImpl.java:200)
      	at com.atlassian.streams.confluence.ConfluenceEntryFactoryImpl.getWatchLink(ConfluenceEntryFactoryImpl.java:165)
      	at com.atlassian.streams.confluence.ConfluenceEntryFactoryImpl.buildStreamsEntry(ConfluenceEntryFactoryImpl.java:88)
      	at com.atlassian.streams.confluence.ConfluenceStreamsActivityProvider$1.apply(ConfluenceStreamsActivityProvider.java:245)
      	at com.atlassian.streams.confluence.ConfluenceStreamsActivityProvider$1.apply(ConfluenceStreamsActivityProvider.java:237)
      	at com.google.common.collect.Iterators$8.next(Iterators.java:730)
      	at com.google.common.collect.Iterators$8.next(Iterators.java:729)
      	at com.google.common.collect.Iterators$5.hasNext(Iterators.java:511)
      	at com.atlassian.streams.api.common.Iterables$Range$Iter.computeNext(Iterables.java:127)
      	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:137)
      	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:132)
      	at com.google.common.collect.Lists.newArrayList(Lists.java:135)
      	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:275)
      	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:231)
      	at com.atlassian.streams.confluence.ConfluenceStreamsActivityProvider.toStreamsEntries(ConfluenceStreamsActivityProvider.java:152)
      	at com.atlassian.streams.confluence.ConfluenceStreamsActivityProvider.getStreamsEntries(ConfluenceStreamsActivityProvider.java:136)
      	at com.atlassian.streams.confluence.ConfluenceStreamsActivityProvider.getActivityFeed(ConfluenceStreamsActivityProvider.java:95)
      	at com.atlassian.streams.internal.LocalActivityProvider$FeedFetcher.doInTransaction(LocalActivityProvider.java:163)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:25)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor$1.doInTransaction(SpringHostContextAccessor.java:88)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
      	at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:82)
      	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
      	at $Proxy232.doInTransaction(Unknown Source)
      	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      	at $Proxy232.doInTransaction(Unknown Source)
      	at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:21)
      	at sun.reflect.GeneratedMethodAccessor966.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
      	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
      	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
      	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
      	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      	at $Proxy690.execute(Unknown Source)
      	at com.atlassian.streams.internal.LocalActivityProvider$1.get(LocalActivityProvider.java:98)
      	at com.atlassian.streams.internal.LocalActivityProvider$1.get(LocalActivityProvider.java:94)
      	at com.atlassian.streams.internal.PassThruSessionManager.withSession(PassThruSessionManager.java:11)
      	at com.atlassian.streams.internal.SwitchingSessionManager.withSession(SwitchingSessionManager.java:22)
      	at com.atlassian.streams.internal.LocalActivityProvider.getActivityFeed(LocalActivityProvider.java:93)
      	at com.atlassian.streams.internal.FeedBuilder$ToFeedCallable$1.call(FeedBuilder.java:100)
      	at com.atlassian.streams.internal.FeedBuilder$ToFeedCallable$1.call(FeedBuilder.java:86)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at com.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:96)
      	at com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:34)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.net.URISyntaxException: Illegal character in path at index 85: https://wiki.domain.com/rest/confluence-activity-stream/1.0/actions/space-watch/~Spacekey withspace
      	at java.net.URI$Parser.fail(Unknown Source)
      	at java.net.URI$Parser.checkChars(Unknown Source)
      	at java.net.URI$Parser.parseHierarchical(Unknown Source)
      	at java.net.URI$Parser.parse(Unknown Source)
      	at java.net.URI.<init>(Unknown Source)
      	... 72 more

      Attachments

        Activity

          People

            pcamilleri Peter Camilleri [Atlassian]
            twong Tim Wong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            15 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: