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

Reply via email to