apache / apache/netbeans

Multi Module Maven Project desyncs when running git pull.

Open
#3,771 0 comments 0 reactions 0 assignees View on GitHub
Java kind:bug Maven needs:triage
Dominant language
Java
Stars
3.1k
Forks
935
Avg merge
2d 3h
Merged PRs (30d)
17

Description

### Apache NetBeans version

Apache NetBeans 13

### What happened

I work on a multimodule project with Maven, with code generation(hibernate-jpamodelgen). In NetBeans 12.4, 12.5 and 13.0(always), when pulling from the remote repository, some files are desync. Some compilation errors are reported in the interface, however the project is built normally in the IDE. When deleting the NetBeans cache/index directory, on filesystem, the messages are no longer displayed.

### How to reproduce

Pull Git remote repository via IDE, into Maven Multimodule Project with code generation.

### Did this work correctly in an earlier version?

Apache NetBeans 12.3 or earlier

### Operating System

Windows

### JDK

Oracle JDK 1.8.301

### Apache NetBeans packaging

Apache NetBeans provided installer

### Anything else

When deleting the NetBeans cache/index directory, on filesystem, the messages are no longer displayed. StackTrace
```
java.lang.NullPointerException
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitIdent(Flow.java:2821)
at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:2584)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scanExpr(Flow.java:1981)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitApply(Flow.java:2688)
at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1797)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:219)
at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1584)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitBlock(Flow.java:2257)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:1091)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitMethodDef(Flow.java:2160)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:921)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.visitClassDef(Flow.java:2098)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:819)
at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
at com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:444)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.scan(Flow.java:1724)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.analyzeTree(Flow.java:2871)
at com.sun.tools.javac.comp.Flow$AssignAnalyzer.analyzeTree(Flow.java:2853)
at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:221)
at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1377)
at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1341)
at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:404)
at com.sun.tools.javac.api.JavacTaskImpl.generate(JavacTaskImpl.java:465)
at org.netbeans.modules.java.source.indexing.VanillaCompileWorker$2.run(VanillaCompileWorker.java:355)
at org.netbeans.modules.java.source.parsing.FileManagerTransaction.runConcurrent(FileManagerTransaction.java:180)
[catch] at org.netbeans.modules.java.source.indexing.VanillaCompileWorker.compile(VanillaCompileWorker.java:342)
at org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:359)
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:273)
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:2748)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.lambda$index$0(RepositoryUpdater.java:2625)
at org.netbeans.modules.parsing.impl.indexing.errors.TaskCache.refreshTransaction(TaskCache.java:540)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.index(RepositoryUpdater.java:2624)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.lambda$scanFiles$4(RepositoryUpdater.java:3344)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.lambda$runInContext$4(RepositoryUpdater.java:2118)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2116)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2097)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1400(RepositoryUpdater.java:134)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.scanFiles(RepositoryUpdater.java:3302)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$FileListWork.getDone(RepositoryUpdater.java:3844)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3464)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6209)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$3400(RepositoryUpdater.java:5867)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.lambda$call$0(RepositoryUpdater.java:6128)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:279)
at org.netbeans.modules.parsing.impl.RunWhenScanFinishedSupport.performScan(RunWhenScanFinishedSupport.java:83)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6128)
at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6124)
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:6124)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
```

### Are you willing to submit a pull request?

Yes

### Code of Conduct

Yes

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue by pulling a Git repository into a Maven multimodule project with code generation on NetBeans 13 and Windows. Start with VanillaCompileWorker, JavaCustomIndexer, and the RepositoryUpdater paths shown in the stack trace, then inspect the cache/index behavior. Done means a pull no longer leaves stale errors or desynchronized files, without requiring manual cache deletion.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.