Activity stream and chanegset log use cross-repository Lucene index and for big number of documents stored in index they may fail with OOME:
Caused by: java.lang.OutOfMemoryError: Java heap space
at org.apache.lucene.search.FieldComparator$LongComparator.<init>(FieldComparator.java:463)
at org.apache.lucene.search.SortField.getComparator(SortField.java:405)
at org.apache.lucene.search.FieldValueHitQueue$OneComparatorFieldValueHitQueue.<init>(FieldValueHitQueue.java:70)
at org.apache.lucene.search.FieldValueHitQueue.create(FieldValueHitQueue.java:178)
at org.apache.lucene.search.TopFieldCollector.create(TopFieldCollector.java:913)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:197)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:177)
at org.apache.lucene.search.Searcher.search(Searcher.java:49)
at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2$1.perform(BaseRecentChangesSearcher2.java:78)
at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2$1.perform(BaseRecentChangesSearcher2.java:74)
at com.cenqua.fisheye.lucene.LuceneConnection.withIndexSearcher(LuceneConnection.java:359)
at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.doSearch(BaseRecentChangesSearcher2.java:74)
at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.findRecentChangeSets(BaseRecentChangesSearcher2.java:61)
at com.cenqua.fisheye.csindex.BaseRecentChangesSearcher2.findRecentChangeSets(BaseRecentChangesSearcher2.java:46)
at com.cenqua.fisheye.csindex.RecentChangesSearcher2.findRecentChangeSets(RecentChangesSearcher2.java:48)
at com.cenqua.fisheye.cache.BaseRevisionCache.findRecentChangeSets(BaseRevisionCache.java:395)
at com.cenqua.fisheye.web.FisheyeChangelogExplorer.computeData(FisheyeChangelogExplorer.java:130)
at com.atlassian.crucible.explorers.RepositoryChangelogExplorer.computeData(RepositoryChangelogExplorer.java:80)
at com.atlassian.crucible.actions.create.EditChangelogAction.initChangesets(EditChangelogAction.java:112)
at com.atlassian.crucible.actions.create.EditChangelogAction.getExplorer(EditChangelogAction.java:73)
at sun.reflect.GeneratedMethodAccessor1395.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:305)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188)
at com.sun.el.parser.AstValue.getValue(AstValue.java:120)
at com.sun.el.parser.AstValue.getValue(AstValue.java:167)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
at org.apache.jasper.runtime.PageContextImpl.evaluateExpression(PageContextImpl.java:1009)
at org.apache.jsp.WEB_002dINF.jsp.crucible.create.create_005fselectRevisions_005fchangelogAjaxResp_jsp._jspx_meth_cru_asJavascriptString_0(create_005fselectRevisions_005fchangelogAjaxResp_jsp.java:171)
at org.apache.jsp.WEB_002dINF.jsp.crucible.create.create_005fselectRevisions_005fchangelogAjaxResp_jsp._jspService(create_005fselectRevisions_005fchangelogAjaxResp_jsp.java:98)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
The root cause is a Predicate forcing to allocate array of longs for all documents in index. For ~60 million documents it is ~500MB per call