You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Dirk Rudolph (JIRA)" <ji...@apache.org> on 2017/12/18 22:52:00 UTC
[jira] [Commented] (OAK-7078) NullPointerException in
FilteredSortedSetDocValuesFacetCounts during query evaluation
[ https://issues.apache.org/jira/browse/OAK-7078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16295793#comment-16295793 ]
Dirk Rudolph commented on OAK-7078:
-----------------------------------
I created [#77|https://github.com/apache/jackrabbit-oak/pull/77] which contains a unit test and the necessary null check for derlerencing topChildren in FilteredSortedSetDocValuesFacetCounts.
> NullPointerException in FilteredSortedSetDocValuesFacetCounts during query evaluation
> -------------------------------------------------------------------------------------
>
> Key: OAK-7078
> URL: https://issues.apache.org/jira/browse/OAK-7078
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: lucene
> Affects Versions: 1.6.7
> Reporter: Dirk Rudolph
>
> Running the following query {{select \[rep:facet(simple/tags)] from \[nt:base] where contains(\[text], 'ipsum')}} with the following content
> {code}
> /content/foo
> - text = "lorem lorem"
> + simple/
> - tags = ["tag1", "tag2"]
> /content/bar
> - text = "lorem
> {code}
> runs in the following NPE
> {code}
> java.lang.NullPointerException
> at org.apache.jackrabbit.oak.plugins.index.lucene.util.FilteredSortedSetDocValuesFacetCounts.getTopChildren(FilteredSortedSetDocValuesFacetCounts.java:63)
> at org.apache.lucene.facet.MultiFacets.getTopChildren(MultiFacets.java:52)
> at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LucenePathCursor$2.getValue(LucenePropertyIndex.java:1646)
> ... 38 more
> {code}
> This is because the result set for the query only contains {{/content/bar}} and with that the count of the dimension {{simple/tag}} is 0. For that case [SortedSetDocValuesFacetCounts#getDim()|https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.7.1/lucene/facet/src/java/org/apache/lucene/facet/sortedset/SortedSetDocValuesFacetCounts.java#L108] returns {{null}} and so does {{getTopChildren}}.
> This expected behaviour is properly handled in [LucenePropertyIndex.java#L1647|https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.6.7/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LucenePropertyIndex.java#L1647] but not in [FilteredSortedSetDocValuesFacetCounts.java#L63|https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.6.7/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/FilteredSortedSetDocValuesFacetCounts.java#L63] where {{topChildren}} is dereferenced without null check.
> To workaround that secure facets can be set to false, though the default value is true.
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)