Author: tommaso
Date: Mon Feb 29 11:26:43 2016
New Revision: 1732863
URL: http://svn.apache.org/viewvc?rev=1732863&view=rev
Log:
OAK-4068 - reverted previous bad commit
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/SuggestionIntervalTest.java
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java?rev=1732863&r1=1732862&r2=1732863&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java
Mon Feb 29 11:26:43 2016
@@ -245,13 +245,6 @@ public class LuceneIndexEditorContext {
getWriter();
}
- boolean updateSuggestions = shouldUpdateSuggestions();
- boolean forcedUpdateSuggester = false;
- if (writer == null && updateSuggestions) {
- forcedUpdateSuggester = true;
- getWriter();
- }
-
if (writer != null) {
if (log.isTraceEnabled()) {
trackIndexSizeInfo(writer, definition, directory);
@@ -259,10 +252,8 @@ public class LuceneIndexEditorContext {
final long start = PERF_LOGGER.start();
- if (updateSuggestions) {
- updateSuggester(writer.getAnalyzer());
- PERF_LOGGER.end(start, -1, "Completed suggester for directory
{}", definition);
- }
+ updateSuggester(writer.getAnalyzer());
+ PERF_LOGGER.end(start, -1, "Completed suggester for directory {}",
definition);
writer.close();
PERF_LOGGER.end(start, -1, "Closed writer for directory {}",
definition);
@@ -270,21 +261,16 @@ public class LuceneIndexEditorContext {
directory.close();
PERF_LOGGER.end(start, -1, "Closed directory for directory {}",
definition);
- if (!forcedUpdateSuggester) {
- //OAK-2029 Record the last updated status so
- //as to make IndexTracker detect changes when index
- //is stored in file system
- NodeBuilder status = definitionBuilder.child(":status");
- status.setProperty("lastUpdated",
ISO8601.format(getCalendar()), Type.DATE);
- status.setProperty("indexedNodes", indexedNodes);
- }
-
+ //OAK-2029 Record the last updated status so
+ //as to make IndexTracker detect changes when index
+ //is stored in file system
+ NodeBuilder status = definitionBuilder.child(":status");
+ status.setProperty("lastUpdated", ISO8601.format(getCalendar()),
Type.DATE);
+ status.setProperty("indexedNodes",indexedNodes);
PERF_LOGGER.end(start, -1, "Overall Closed IndexWriter for
directory {}", definition);
- if (!forcedUpdateSuggester) {
- textExtractionStats.log(reindex);
- textExtractionStats.collectStats(extractedTextCache);
- }
+ textExtractionStats.log(reindex);
+ textExtractionStats.collectStats(extractedTextCache);
}
}
@@ -294,24 +280,10 @@ public class LuceneIndexEditorContext {
* @param analyzer the analyzer used to update the suggester
*/
private void updateSuggester(Analyzer analyzer) throws IOException {
- NodeBuilder suggesterStatus =
definitionBuilder.child(":suggesterStatus");
- DirectoryReader reader = DirectoryReader.open(writer, false);
- final OakDirectory suggestDirectory = new
OakDirectory(definitionBuilder, ":suggest-data", definition, false);
- try {
- SuggestHelper.updateSuggester(suggestDirectory, analyzer, reader);
- suggesterStatus.setProperty("lastUpdated",
ISO8601.format(getCalendar()), Type.DATE);
- } catch (Throwable e) {
- log.warn("could not update suggester", e);
- } finally {
- suggestDirectory.close();
- reader.close();
- }
- }
-
- private boolean shouldUpdateSuggestions() {
- boolean updateSuggestions = false;
if (definition.isSuggestEnabled()) {
+
+ boolean updateSuggester = false;
NodeBuilder suggesterStatus =
definitionBuilder.child(":suggesterStatus");
if (suggesterStatus.hasProperty("lastUpdated")) {
PropertyState suggesterLastUpdatedValue =
suggesterStatus.getProperty("lastUpdated");
@@ -319,14 +291,26 @@ public class LuceneIndexEditorContext {
int updateFrequency =
definition.getSuggesterUpdateFrequencyMinutes();
suggesterLastUpdatedTime.add(Calendar.MINUTE, updateFrequency);
if (getCalendar().after(suggesterLastUpdatedTime)) {
- updateSuggestions = true;
+ updateSuggester = true;
}
} else {
- updateSuggestions = true;
+ updateSuggester = true;
}
- }
- return updateSuggestions;
+ if (updateSuggester) {
+ DirectoryReader reader = DirectoryReader.open(writer, false);
+ final OakDirectory suggestDirectory = new
OakDirectory(definitionBuilder, ":suggest-data", definition, false);
+ try {
+ SuggestHelper.updateSuggester(suggestDirectory, analyzer,
reader);
+ suggesterStatus.setProperty("lastUpdated",
ISO8601.format(getCalendar()), Type.DATE);
+ } catch (Throwable e) {
+ log.warn("could not update suggester", e);
+ } finally {
+ suggestDirectory.close();
+ reader.close();
+ }
+ }
+ }
}
/** Only set for testing */
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java?rev=1732863&r1=1732862&r2=1732863&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
Mon Feb 29 11:26:43 2016
@@ -628,7 +628,7 @@ public class IndexDefinitionTest {
//default config
NodeBuilder indexRoot = builder;
IndexDefinition idxDefn = new IndexDefinition(root,
indexRoot.getNodeState());
- assertEquals("Default config", 10,
idxDefn.getSuggesterUpdateFrequencyMinutes());
+ assertEquals("Default config", 60,
idxDefn.getSuggesterUpdateFrequencyMinutes());
//namespaced config shadows old method
indexRoot = builder.child("shadowConfigRoot");
@@ -636,7 +636,7 @@ public class IndexDefinitionTest {
indexRoot.child(LuceneIndexConstants.SUGGESTION_CONFIG);
idxDefn = new IndexDefinition(root, indexRoot.getNodeState());
assertEquals("Namespaced config node should shadow global config",
- 10, idxDefn.getSuggesterUpdateFrequencyMinutes());
+ 60, idxDefn.getSuggesterUpdateFrequencyMinutes());
//config for backward config
indexRoot = builder.child("backwardCompatibilityRoot");
Modified:
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/SuggestionIntervalTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/SuggestionIntervalTest.java?rev=1732863&r1=1732862&r2=1732863&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/SuggestionIntervalTest.java
(original)
+++
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/SuggestionIntervalTest.java
Mon Feb 29 11:26:43 2016
@@ -144,32 +144,4 @@ public class SuggestionIntervalTest {
assertEquals(1, suggestions.size());
assertEquals("indexedNode", suggestions.iterator().next());
}
-
- //OAK-4068
- @Test
- public void suggestionUpdateWithoutIndexChange() throws Exception {
- final String nodeType = "nt:unstructured";
-
- createSuggestIndex(nodeType);
- session.save();
-
- long currTime = clock.getTime();
- long toTime = currTime +
TimeUnit.MINUTES.toMillis(IndexDefinition.DEFAULT_SUGGESTER_UPDATE_FREQUENCY_MINUTES);
-
- root.addNode("indexedNode", nodeType);
- session.save();
-
- //wait for suggestions refresh time
- clock.waitUntil(toTime);
- clock.getTime();//get one more tick
-
- //push a change which should not make any change in the index but yet
should help update suggestions
- root.addNode("some-non-index-change", "oak:Unstructured");
- session.save();
-
- Set<String> suggestions = getSuggestions(nodeType, "indexedn");
-
- assertEquals(1, suggestions.size());
- assertEquals("indexedNode", suggestions.iterator().next());
- }
}