Closed mbien closed 1 day ago
narrowed it down to a project which can serve as reproducer: open java/java.editor
and let it scan
edit: not reproducible with NB 23 -> regression edit2: confirmed that it is caused by https://github.com/apache/netbeans/commit/ec8384f94389e4ac3c0d60a6f0f198634da770c5 and revert still applies cleanly to delivery
This is a real bummer. Have not worked with Java in the last few months, then just found some free time.
I can confirm that this happens.
Thanks for investigation. I saw these errors, but did not directly look into these. I can verify that it is reproducible with delivery
and the hint provided by @mbien . It is also reproducible with the voting candiate.
I can also verify, that with #7982 the exception don't occur, so the revert seems to fix the problem.
Huh. A short reproducible testcase:
package javaapplication2;
public class JavaApplication2 {
public static void main(String[] args) {
new G() {
};
}
}
class G {
@Deprecated
G() {}
}
Requires -Xlint:deprecation
.
PR upcoming.
@matthiasblaesing @lahodaj @neilcsmith-net @ebarboni we have to decide if this is a blocker for the release or not.
I think that this can be seen as critical functionality, but at the same time doing a release is a lot of work and stopping the vote would double that work (for the release managers).
@lahodaj thanks a lot for providing a proper fix so quickly!
I think we should pull the release, apply #7983 and respin. The issue is a regression, user facing and the error state is incomprehensible for normal users. The problematic situation "deprecations" and "unchecked" warnings are common enough, that there is a high chance for people to hit this.
ran a brute force test which opens all NB projects and still got some exceptions
test:
# opens all netbeans modules as smoke test
# run in netbeans project, should be built first
NB="insert path"
JDK="insert path"
OPEN=$(find -maxdepth 2 -mindepth 2 -type d\
-not -path "./.git*"\
-not -path "./nbbuild/*"\
-not -path "./dist/*"\
-not -path "./ide/xml.core"\
-not -path "./nbi/*" | sort | xargs)
FLAGS="-J-Dorg.netbeans.modules.parsing.impl.indexing.LogContext\$EventType.PATH.treshold=20"
"$NB" --userdir /tmp/nbusr$$ --jdkhome $JDK $FLAGS $OPEN
(will open >800 projects)
SEVERE [org.openide.util.Exceptions]
can't dump errors for: FileObjectIndexable@58aff7c0 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1030/package-info.java]
can't dump errors for: FileObjectIndexable@58aff7c0 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1030/package-info.java]
Caused: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 47
at com.sun.tools.javac.util.Position$LineTabMapImpl.getColumnNumber(Position.java:266)
at com.sun.tools.javac.util.Position$LineMapImpl.getColumnNumber(Position.java:236)
at com.sun.tools.javac.util.Position$LineTabMapImpl.getColumnNumber(Position.java:253)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer$ErrorConvertorImpl.getRange(JavaCustomIndexer.java:1334)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer$ErrorConvertorImpl.getRange(JavaCustomIndexer.java:1307)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:169)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:249)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.access$100(TaskCache.java:75)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache$1.run(TaskCache.java:227)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache$1.run(TaskCache.java:225)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:578)
Caused: java.io.IOException
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:582)
[catch] at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:225)
at org.netbeans.modules.parsing.spi.indexing.ErrorsCache.setErrors(ErrorsCache.java:46)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer.setErrors(JavaCustomIndexer.java:811)
at org.netbeans.modules.java.source.indexing.VanillaCompileWorker.compile(VanillaCompileWorker.java:343)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:363)
at org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor$2.run(Indexable.java:138)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runIndexer(RepositoryUpdater.java:274)
at org.netbeans.modules.parsing.spi.indexing.Indexable$MyAccessor.index(Indexable.java:136)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doIndex(RepositoryUpdater.java:2749)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.lambda$index$0(RepositoryUpdater.java:2626)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:578)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2625)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.lambda$scanSource$3(RepositoryUpdater.java:5735)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.lambda$runInContext$4(RepositoryUpdater.java:2119)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2117)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2098)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1400(RepositoryUpdater.java:135)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSource(RepositoryUpdater.java:5770)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSources(RepositoryUpdater.java:5443)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$RootsWork.getDone(RepositoryUpdater.java:5075)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3452)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6197)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$3400(RepositoryUpdater.java:5855)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.lambda$call$0(RepositoryUpdater.java:6116)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:288)
at org.netbeans.modules.parsing.impl.RunWhenScanFinishedSupport.performScan(RunWhenScanFinishedSupport.java:83)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6116)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6112)
at org.netbeans.modules.masterfs.filebasedfs.utils.FileChangedManager.priorityIO(FileChangedManager.java:153)
at org.netbeans.modules.masterfs.providers.ProvidedExtensions.priorityIO(ProvidedExtensions.java:335)
at org.netbeans.modules.parsing.nb.DataObjectEnvFactory.runPriorityIO(DataObjectEnvFactory.java:118)
at org.netbeans.modules.parsing.impl.Utilities.runPriorityIO(Utilities.java:67)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.run(RepositoryUpdater.java:6112)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1403)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:287)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2018)
grepped and deduplicated log lines listing the improved exception message:
awk '!seen[$0]++' errordump.log
can't dump errors for: FileObjectIndexable@1628291c [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb90/package-info.java]
can't dump errors for: FileObjectIndexable@1df5cd13 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/web1030/package-info.java]
can't dump errors for: FileObjectIndexable@1f37a359 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/web1221/package-info.java]
can't dump errors for: FileObjectIndexable@1fe562d1 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ear1221/package-info.java]
can't dump errors for: FileObjectIndexable@298a364 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/web90/package-info.java]
can't dump errors for: FileObjectIndexable@3902db69 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ear1031/package-info.java]
can't dump errors for: FileObjectIndexable@4124fc64 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ear90/package-info.java]
can't dump errors for: FileObjectIndexable@4de6d8da [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ear1030/package-info.java]
can't dump errors for: FileObjectIndexable@503c4ca9 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/web1211/package-info.java]
can't dump errors for: FileObjectIndexable@58aff7c0 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1030/package-info.java]
can't dump errors for: FileObjectIndexable@5a91a1bb [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/jms1031/package-info.java]
can't dump errors for: FileObjectIndexable@5d3f3b75 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1221/package-info.java]
can't dump errors for: FileObjectIndexable@617ec25 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1031/package-info.java]
can't dump errors for: FileObjectIndexable@61997923 [file:/home/mbien/NetBeansProjects/netbeans/ide/project.dependency/src//org/netbeans/modules/project/dependency/reload/StateDataListener.java]
can't dump errors for: FileObjectIndexable@623e4a26 [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/SymbolProviderImpl.java]
can't dump errors for: FileObjectIndexable@65968c42 [file:/home/mbien/NetBeansProjects/netbeans/ide/project.dependency/src//org/netbeans/modules/project/dependency/reload/Reloader.java]
can't dump errors for: FileObjectIndexable@69fdd5ea [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/TypeProviderImpl.java]
can't dump errors for: FileObjectIndexable@717a08f9 [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/BaseSymbolProvider.java]
can't dump errors for: FileObjectIndexable@7400ef33 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/config/gen/package-info.java]
can't dump errors for: FileObjectIndexable@776e9857 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ejb1211/package-info.java]
can't dump errors for: FileObjectIndexable@7845da84 [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/ear1211/package-info.java]
can't dump errors for: FileObjectIndexable@7f296dde [file:/home/mbien/NetBeansProjects/netbeans/contrib/j2ee.weblogic9/src//org/netbeans/modules/j2ee/weblogic9/dd/jms1211/package-info.java]
most of them are from empty package-info.java
, but not all of them are:
can't dump errors for: FileObjectIndexable@61997923 [file:/home/mbien/NetBeansProjects/netbeans/ide/project.dependency/src//org/netbeans/modules/project/dependency/reload/StateDataListener.java]
can't dump errors for: FileObjectIndexable@65968c42 [file:/home/mbien/NetBeansProjects/netbeans/ide/project.dependency/src//org/netbeans/modules/project/dependency/reload/Reloader.java]
can't dump errors for: FileObjectIndexable@69fdd5ea [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/TypeProviderImpl.java]
can't dump errors for: FileObjectIndexable@717a08f9 [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/BaseSymbolProvider.java]
can't dump errors for: FileObjectIndexable@623e4a26 [file:/home/mbien/NetBeansProjects/netbeans/ide/lsp.client/src//org/netbeans/modules/lsp/client/bindings/SymbolProviderImpl.java]
short reproducer:
netbeans24rc4/bin/netbeans --userdir /tmp/nbusr1 ide/project.dependency ide/lsp.client
fwiw: testing with the dev-build of the revert PR it is working fine (https://github.com/apache/netbeans/pull/7982)
edit: bruteforce indexing test using the dev-build completed too
INFO [org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater]: Complete indexing of 2,527 source roots took: 639,843 ms (New or modified files: 44,728, Deleted files: 0) [Adding listeners took: 81 ms]
INFO [org.netbeans.ui.indexing]: Indexing finished, indexing took 643,305 ms.
I can confirm. I'm seeing this one as well, with 24-rc4:
can't dump errors for: FileObjectIndexable@163c55b7 [file:/home/lkishalmi/NetBeansProjects/netbeans/ide/project.dependency/src//org/netbeans/modules/project/dependency/reload/Reloader.java]
Caused: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 929
at com.sun.tools.javac.util.Position$LineTabMapImpl.getColumnNumber(Position.java:266)
at com.sun.tools.javac.util.Position$LineMapImpl.getColumnNumber(Position.java:236)
at com.sun.tools.javac.util.Position$LineTabMapImpl.getColumnNumber(Position.java:253)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer$ErrorConvertorImpl.getRange(JavaCustomIndexer.java:1334)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer$ErrorConvertorImpl.getRange(JavaCustomIndexer.java:1307)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:169)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:249)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.access$100(TaskCache.java:75)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache$1.run(TaskCache.java:227)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache$1.run(TaskCache.java:225)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:578)
Caused: java.io.IOException
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:582)
[catch] at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.dumpErrors(TaskCache.java:225)
at org.netbeans.modules.parsing.spi.indexing.ErrorsCache.setErrors(ErrorsCache.java:46)
assuming @ebarboni has still sufficient willpower i would recommend to:
so I opened a PR for that too, if we revert in the right order everything should apply cleanly I hope:
1) https://github.com/apache/netbeans/pull/7999 2) https://github.com/apache/netbeans/pull/7982
ok doing the 2 PR merge , ant then creating the sync PR
verified using https://github.com/apache/netbeans/issues/7981#issuecomment-2501928011 that it is working as intended again in NB 24 rc5.
Thanks for the extra RCs! I am planning to run the same smoke test on RC 1 on every release from now on - if i don't forget. But anyone else is also welcome to do so of course, esp when changing indexing code.
closing
Apache NetBeans version
Apache NetBeans 24 vote candidate
What happened
I am seeing this quite often during scanning now:
code was last changed in https://github.com/apache/netbeans/pull/7737
Language / Project Type / NetBeans Component
java
How to reproduce
this exception is thrown multiple times on startup while scanning NetBeans sources. ~I have probably 100 projects open.~
java/java.editor
1)
netbeans --userdir /tmp/tmpusr1 --jdkhome ~/dev/java/jdk-23.0.1.8.1-corretto/
2) no config import 3) openjava/java.editor
moduleDid this work correctly in an earlier version?
Apache NetBeans 23
Operating System
linux
JDK
Corretto 23.0.1
Apache NetBeans packaging
Apache NetBeans binary zip
Anything else
No response
Are you willing to submit a pull request?
No