Details
-
Bug
-
Resolution: Fixed
-
Medium
-
None
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