This is an automated email from the ASF dual-hosted git repository.
mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new af706865da upgrade to apache lucene 9.6.0 and maven-indexer 7.0.2 +
more.
new 841224f32a Merge pull request #5931 from mbien/lucene-96
af706865da is described below
commit af706865da7e2921553fa33a37b37c8ff3a37715
Author: Michael Bien <[email protected]>
AuthorDate: Tue May 9 12:11:21 2023 +0200
upgrade to apache lucene 9.6.0 and maven-indexer 7.0.2 + more.
- maven-indexer 7.0.2 fixed a bug which allows NB to cancel indexing
in multi threaded mode and adds support for index filtering during
extraction (GH302, GH314)
- lucene 9.6.0 adds support for the panama backend of MMapDirectory
on JDK 19/20 (GH12188) and many other improvements and fixes
- added lucene backard-codecs for greater compatibility of the index.
- incompatible index handling: remove old index and rebuild
---
java/maven.indexer/external/binaries-list | 11 ++++----
...-license.txt => indexer-core-7.0.2-license.txt} | 2 +-
....1-notice.txt => indexer-core-7.0.2-notice.txt} | 0
...-9.5.0-license.txt => lucene-9.6.0-license.txt} | 4 +--
...ne-9.5.0-notice.txt => lucene-9.6.0-notice.txt} | 0
java/maven.indexer/nbproject/project.properties | 11 ++++----
java/maven.indexer/nbproject/project.xml | 24 +++++++++--------
.../maven/indexer/NexusRepositoryIndexerImpl.java | 30 ++++++++++++++++------
8 files changed, 51 insertions(+), 31 deletions(-)
diff --git a/java/maven.indexer/external/binaries-list
b/java/maven.indexer/external/binaries-list
index a71dfe9b2f..79224b17ef 100644
--- a/java/maven.indexer/external/binaries-list
+++ b/java/maven.indexer/external/binaries-list
@@ -14,9 +14,10 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-9E98B3B9FD533669536BA2395FCFC4C6FA65B720
org.apache.maven.indexer:indexer-core:7.0.1
-BBA4BA5D30E71A5F0017E45E8469DB8CFF8AD102 org.apache.lucene:lucene-core:9.5.0
-8B5E3CEA3370838BDA1D730CF55176C24A763D2E
org.apache.lucene:lucene-highlighter:9.5.0
-B3E3D9434BCFCE242E242364C64EAB0888D285E2
org.apache.lucene:lucene-queryparser:9.5.0
-F68660102455A466F98CAC0501723BED7E7C6407
org.apache.lucene:lucene-analysis-common:9.5.0
+C02F9C34FBC4C698BEF9D5074966545122908D06
org.apache.maven.indexer:indexer-core:7.0.2
+2C08C7A491E9D033BB4806E0A45496E3A0667217 org.apache.lucene:lucene-core:9.6.0
+A4819CA127C46A2759FDF091F41512C56C441FA7
org.apache.lucene:lucene-backward-codecs:9.6.0
+B9E14451C73FA0BC8E71A2CFE12A442F37A53C69
org.apache.lucene:lucene-highlighter:9.6.0
+C2F9EF9B7336981495272E99A1DF678A97966102
org.apache.lucene:lucene-queryparser:9.6.0
+17A8B808BB7BF5F49FBFB9CBFF821433E2908E22
org.apache.lucene:lucene-analysis-common:9.6.0
479C1E06DB31C432330183F5CAE684163F186146
javax.annotation:javax.annotation-api:1.2
diff --git a/java/maven.indexer/external/indexer-core-7.0.1-license.txt
b/java/maven.indexer/external/indexer-core-7.0.2-license.txt
similarity index 99%
rename from java/maven.indexer/external/indexer-core-7.0.1-license.txt
rename to java/maven.indexer/external/indexer-core-7.0.2-license.txt
index 475c2ab9d5..f42ccf52ab 100644
--- a/java/maven.indexer/external/indexer-core-7.0.1-license.txt
+++ b/java/maven.indexer/external/indexer-core-7.0.2-license.txt
@@ -1,6 +1,6 @@
Name: Maven Indexer
Description: Maven remote repository indexing engine.
-Version: 7.0.1
+Version: 7.0.2
Origin: Apache Software Foundation
License: Apache-2.0
URL: https://repo1.maven.org/maven2/org/apache/maven/indexer/
diff --git a/java/maven.indexer/external/indexer-core-7.0.1-notice.txt
b/java/maven.indexer/external/indexer-core-7.0.2-notice.txt
similarity index 100%
rename from java/maven.indexer/external/indexer-core-7.0.1-notice.txt
rename to java/maven.indexer/external/indexer-core-7.0.2-notice.txt
diff --git a/java/maven.indexer/external/lucene-9.5.0-license.txt
b/java/maven.indexer/external/lucene-9.6.0-license.txt
similarity index 98%
rename from java/maven.indexer/external/lucene-9.5.0-license.txt
rename to java/maven.indexer/external/lucene-9.6.0-license.txt
index 8f9ae48560..54ffdaea3e 100644
--- a/java/maven.indexer/external/lucene-9.5.0-license.txt
+++ b/java/maven.indexer/external/lucene-9.6.0-license.txt
@@ -1,11 +1,11 @@
Name: Apache Lucene
Description: Java-based indexing and search technology
-Version: 9.5.0
+Version: 9.6.0
Origin: Apache Software Foundation
License: Apache-2.0
URL: https://lucene.apache.org/
Source: https://github.com/apache/lucene
-Files: lucene-analysis-common-9.5.0.jar lucene-core-9.5.0.jar
lucene-highlighter-9.5.0.jar lucene-queryparser-9.5.0.jar
+Files: lucene-analysis-common-9.6.0.jar lucene-backward-codecs-9.6.0.jar
lucene-core-9.6.0.jar lucene-highlighter-9.6.0.jar lucene-queryparser-9.6.0.jar
Apache License
Version 2.0, January 2004
diff --git a/java/maven.indexer/external/lucene-9.5.0-notice.txt
b/java/maven.indexer/external/lucene-9.6.0-notice.txt
similarity index 100%
rename from java/maven.indexer/external/lucene-9.5.0-notice.txt
rename to java/maven.indexer/external/lucene-9.6.0-notice.txt
diff --git a/java/maven.indexer/nbproject/project.properties
b/java/maven.indexer/nbproject/project.properties
index 7691dc4ed0..500ec728c3 100644
--- a/java/maven.indexer/nbproject/project.properties
+++ b/java/maven.indexer/nbproject/project.properties
@@ -20,11 +20,12 @@ is.autoload=true
javac.source=11
javac.target=11
javac.compilerargs=-Xlint -Xlint:-serial
-release.external/indexer-core-7.0.1.jar=modules/ext/maven/indexer-core-7.0.1.jar
-release.external/lucene-core-9.5.0.jar=modules/ext/maven/lucene-core-9.5.0.jar
-release.external/lucene-highlighter-9.5.0.jar=modules/ext/maven/lucene-highlighter-9.5.0.jar
-release.external/lucene-queryparser-9.5.0.jar=modules/ext/maven/lucene-queryparser-9.5.0.jar
-release.external/lucene-analysis-common-9.5.0.jar=modules/ext/maven/lucene-analysis-common-9.5.0.jar
+release.external/indexer-core-7.0.2.jar=modules/ext/maven/indexer-core-7.0.2.jar
+release.external/lucene-core-9.6.0.jar=modules/ext/maven/lucene-core-9.6.0.jar
+release.external/lucene-backward-codecs-9.6.0.jar=modules/ext/maven/lucene-backward-codecs-9.6.0.jar
+release.external/lucene-highlighter-9.6.0.jar=modules/ext/maven/lucene-highlighter-9.6.0.jar
+release.external/lucene-queryparser-9.6.0.jar=modules/ext/maven/lucene-queryparser-9.6.0.jar
+release.external/lucene-analysis-common-9.6.0.jar=modules/ext/maven/lucene-analysis-common-9.6.0.jar
release.external/javax.annotation-api-1.2.jar=modules/ext/maven/javax.annotation-api-1.2.jar
# XXX so long as Lucene is bundled here:
sigtest.gen.fail.on.error=false
diff --git a/java/maven.indexer/nbproject/project.xml
b/java/maven.indexer/nbproject/project.xml
index b7be1d818f..fb0e05a8a5 100644
--- a/java/maven.indexer/nbproject/project.xml
+++ b/java/maven.indexer/nbproject/project.xml
@@ -175,24 +175,28 @@
<package>org.netbeans.modules.maven.indexer.spi.impl</package>
</friend-packages>
<class-path-extension>
-
<runtime-relative-path>ext/maven/indexer-core-7.0.1.jar</runtime-relative-path>
- <binary-origin>external/indexer-core-7.0.1.jar</binary-origin>
+
<runtime-relative-path>ext/maven/indexer-core-7.0.2.jar</runtime-relative-path>
+ <binary-origin>external/indexer-core-7.0.2.jar</binary-origin>
</class-path-extension>
<class-path-extension>
-
<runtime-relative-path>ext/maven/lucene-core-9.5.0.jar</runtime-relative-path>
- <binary-origin>external/lucene-core-9.5.0.jar</binary-origin>
+
<runtime-relative-path>ext/maven/lucene-core-9.6.0.jar</runtime-relative-path>
+ <binary-origin>external/lucene-core-9.6.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
-
<runtime-relative-path>ext/maven/lucene-highlighter-9.5.0.jar</runtime-relative-path>
-
<binary-origin>external/lucene-highlighter-9.5.0.jar</binary-origin>
+
<runtime-relative-path>ext/maven/lucene-backward-codecs-9.6.0.jar</runtime-relative-path>
+
<binary-origin>external/lucene-backward-codecs-9.6.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
-
<runtime-relative-path>ext/maven/lucene-queryparser-9.5.0.jar</runtime-relative-path>
-
<binary-origin>external/lucene-queryparser-9.5.0.jar</binary-origin>
+
<runtime-relative-path>ext/maven/lucene-highlighter-9.6.0.jar</runtime-relative-path>
+
<binary-origin>external/lucene-highlighter-9.6.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
-
<runtime-relative-path>ext/maven/lucene-analysis-common-9.5.0.jar</runtime-relative-path>
-
<binary-origin>external/lucene-analysis-common-9.5.0.jar</binary-origin>
+
<runtime-relative-path>ext/maven/lucene-queryparser-9.6.0.jar</runtime-relative-path>
+
<binary-origin>external/lucene-queryparser-9.6.0.jar</binary-origin>
+ </class-path-extension>
+ <class-path-extension>
+
<runtime-relative-path>ext/maven/lucene-analysis-common-9.6.0.jar</runtime-relative-path>
+
<binary-origin>external/lucene-analysis-common-9.6.0.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/maven/javax.annotation-api-1.2.jar</runtime-relative-path>
diff --git
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
index 4df4326222..5d1fb15450 100644
---
a/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
+++
b/java/maven.indexer/src/org/netbeans/modules/maven/indexer/NexusRepositoryIndexerImpl.java
@@ -328,7 +328,6 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
}
private boolean loadIndexingContext(final RepositoryInfo info) throws
IOException {
- boolean index = false;
LOAD: {
assert getRepoMutex(info).isWriteAccess();
initIndexer();
@@ -375,9 +374,10 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
try {
addIndexingContextForced(info, creators);
LOGGER.log(Level.FINE, "using index creators: {0}", creators);
- } catch (IOException ex) {
- LOGGER.log(Level.INFO, "Found a broken index at " +
getIndexDirectory(info) + " with loaded contexts " +
getIndexingContexts().keySet(), ex);
- break LOAD;
+ } catch (IOException | IllegalArgumentException ex) { // IAE
thrown by lucene on index version incompatibilites
+ LOGGER.log(Level.WARNING, "Found an incompatible or broken
index at " + getIndexDirectory(info) + " with loaded contexts " +
getIndexingContexts().keySet()+", resetting.", ex);
+ removeDir(getIndexDirectory(info));
+// break LOAD; // todo: too dangerous to loop here
}
}
@@ -403,11 +403,11 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
Path indexDir = getIndexDirectory(info);
if (!indexExists(indexDir)) {
- index = true;
LOGGER.log(Level.FINER, "Index Not Available: {0} at: {1}", new
Object[]{info.getId(), indexDir.toAbsolutePath()});
+ return true;
+ } else {
+ return false;
}
-
- return index;
}
private @CheckForNull IteratorSearchResponse repeatedPagedSearch(Query q,
final List<IndexingContext> contexts, int count) throws IOException {
@@ -568,6 +568,16 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
// IllegalArgumentException signals remote archive
format problems
fetchFailed = true;
throw new IOException("Failed to load maven-index for:
" + indexingContext.getRepositoryUrl(), ex);
+ } catch (RuntimeException ex) {
+ // thread pools, like the one used in maven-indexer's
IndexDataReader, may suppress cancellation exceptions
+ // lets try to find them again
+ if (isCancellation(ex)) {
+ Cancellation cancellation = new Cancellation();
+ cancellation.addSuppressed(ex);
+ throw cancellation;
+ } else {
+ throw ex;
+ }
} finally {
if (nic != null) {
nic.end();
@@ -629,7 +639,7 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
throw e;
} catch (Cancellation x) {
pauseRemoteRepoIndexing(120); // pause a while
- throw new IOException("canceled indexing", x);
+ LOGGER.log(Level.INFO, "user canceled indexing", x);
} catch (ComponentLookupException x) {
throw new IOException("could not find protocol handler for " +
repo.getRepositoryUrl(), x);
} finally {
@@ -658,6 +668,10 @@ public class NexusRepositoryIndexerImpl implements
RepositoryIndexerImplementati
|| (suppressed.length > 0 &&
Stream.of(suppressed).anyMatch(NexusRepositoryIndexerImpl::isNoSpaceLeftOnDevice));
}
+ private static boolean isCancellation(Throwable ex) {
+ return Stream.of(ex.getSuppressed()).anyMatch(s -> s instanceof
Cancellation);
+ }
+
private static boolean isDiag() {
return Boolean.getBoolean("maven.indexing.diag");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists