Hello Humphrey,
report new issue with separate steps to reproduce. Cross reference the
issues. Once assigned and analysed, they may be closed as duplicates.
-jt


st 6. 1. 2021 v 12:49 odesílatel Humphrey Clerx <[email protected]> napsal:

> Hi Tulach,
>
> Hello to you too. Indeed quite a long time. We're still going strong with
> the use of the NetBeans RCP in our software.
>
> I totally agree that somewhen in the future nb-javac should converge with
> javac (or vice versa), but until then I hope we can fix nb-javac.
>
> I do hope the sample project helps in finding the problem with nb-javac. At
> first I thought it was a generic problem to do with duplicate class(es) in
> separate modules, used by other modules. But it turned out, at least in my
> case (I don't know if this is the same problem as reported by Javier
> in NETBEANS-4931) it was actually due to the particular StringUtils class
> that we were using that has some convenience lookup tables for Integer to
> String conversion. But still it's puzzling as to why nb-javac has a problem
> with this. In any case I'm glad we're able to reproduce it and that
> hopefully a fix can be found.
>
> Should I create a separate JIRA issue for this, or attach the sample
> project to NETBEANS-4931?
>
> Greets,
>     Humphrey.
>
> On Tue, Jan 5, 2021 at 10:22 AM Jaroslav Tulach <[email protected]
> >
> wrote:
>
> > Long time no see Humphrey!
> >
> > Thanks a lot for your simplified test case. It makes sense to record it
> > into JIRA for tracking purposes.
> >
> > I talked about your problem with Jan Lahoda and we believe that the best
> > way to fix the problem is to eliminate differences between Javac and
> > NbJavac as discussed in
> >
> >
> https://lists.apache.org/thread.html/r5f210c99b0926aeaac2d0c3c419ff4b79e01f15b67c5ddcf32a51bbe%40%3Cdev.netbeans.apache.org%3E
> > that however is going to take about a year.
> >
> > Reporting JIRA issue may possibly speed resolution of the problem by
> other
> > means[1] without waiting for implementation of the "big idea".
> > -jt
> >
> > [1] by fixing the bug in current nb-javac.
> >
> > út 22. 12. 2020 v 9:16 odesílatel Humphrey Clerx <[email protected]>
> > napsal:
> >
> > > I've been able to narrow the problem down and have an example module
> > suite
> > > that shows the problem.
> > >
> > > It turned out it has nothing to do with duplicate classes being defined
> > in
> > > different modules and both being visible in other modules. The problem
> is
> > > with the one file StringUtils in one module.
> > >
> > > When opening the suite and the modules the "error badges" appear. The
> > > "error badges" also appear in the Unit Test package in the same module.
> > >
> > > This problem happens with any NetBeans 12.x when using nb-javac.
> > >
> > > The problem itself seems to be caused by the String lookup arrays
> > > OCTAL_NUMBERS and NUMBERS. If you remove these and refactor the code to
> > use
> > > Integer.toString(val), the "error badges" disappear.
> > >
> > > When deactivating and removing nb-javac, so that the JDK_1.8 javac is
> > > used, the "error badges" also don't appear (even with the lookup
> arrays).
> > >
> > > It seems nb-javac has a problem parsing/caching/... the class
> > StringUtils,
> > > such that it's no longer visible in other modules. It's cumbersome to
> > > knwo why this is happening, since nb-javac gived no logging output,
> other
> > > than several NPE's in the messages.log and the INFO log entries.
> > >
> > > INFO [org.netbeans.api.java.source.ElementHandle]: Resolved type is
> null
> > > for kind = CLASS
> > > INFO [org.netbeans.api.java.source.ElementHandle]: Cannot resolve:
> > > ElementHandle[kind=CLASS;
> > > sigs=org.nato.unclassified.mice.common.util.StringUtils ]
> > > INFO [org.netbeans.modules.java.editor.imports.ComputeImports]: Cannot
> > > resolve type element "ElementHandle[kind=CLASS;
> > > sigs=org.nato.unclassified.mice.common.util.StringUtils ]".
> > >
> > >
> > > Maybe someone can shed some light on why this is and possibly fix it
> for
> > > NB 12.3?
> > >
> > > Greets,
> > >     Humphrey.
> > >
> > >
> > > On Fri, Dec 18, 2020 at 3:11 PM Humphrey Clerx <[email protected]>
> wrote:
> > >
> > >> I checked the messages.log of NetBeans 12.2 and found the following
> kind
> > >> of entries:
> > >>
> > >> INFO [org.netbeans.api.java.source.ElementHandle]: Resolved type is
> null
> > >> for kind = CLASS
> > >> INFO [org.netbeans.api.java.source.ElementHandle]: Cannot resolve:
> > >> ElementHandle[kind=CLASS;
> > >> sigs=org.nato.unclassified.mice.common.util.StringUtils ]
> > >> INFO [org.netbeans.modules.java.editor.imports.ComputeImports]: Cannot
> > >> resolve type element "ElementHandle[kind=CLASS;
> > >> sigs=org.nato.unclassified.mice.common.util.StringUtils ]".
> > >>
> > >> And the log is also full of the following entries:
> > >>
> > >> java.lang.NullPointerException
> > >> WARNING [org.netbeans.modules.java.source.indexing.JavaIndex]:
> > >> MultiPassCompileWorker caused an exception
> > >>
> > >>
> > >>
> > >>
> > >> On Fri, Dec 11, 2020 at 2:21 PM Javier Ortiz Bultron <
> > >> [email protected]> wrote:
> > >>
> > >>> Yup, exactly the same behavior I reported. Maybe you can add more
> > details
> > >>> there.
> > >>>
> > >>> https://issues.apache.org/jira/browse/NETBEANS-4931
> > >>>
> > >>>
> > >>>
> > >>> On Fri, Dec 11, 2020 at 3:34 AM Humphrey Clerx <[email protected]>
> > wrote:
> > >>>
> > >>> > Currently we are using NetBeans 8.2 using JDK 1.8 (AdoptOpenJDK
> > 8u272)
> > >>> > under Windows 10 (and Solaris 11.3).
> > >>> >
> > >>> > Our project is a NetBeans Platform Application, consisting of
> several
> > >>> > Module Suites with several Modules. Our project sets an explicit
> Java
> > >>> > Platform to use (nbjdk.active=JDK_1.8). We use Ant for building the
> > >>> > project.
> > >>> >
> > >>> > All of this works fine. But recently I tried to migrate to using
> > >>> NetBeans
> > >>> > 12.2 with nb-javac installed and enabled. I installed NetBeans 12.2
> > and
> > >>> > configured it to run with JDK 11 (AdoptOpenJDK 11.0.9) as the
> default
> > >>> JDK
> > >>> > (by setting jdk_home in netbeans.conf).
> > >>> >
> > >>> > I then ran NB12.2 without importing settings from NB8.2. Then I
> > >>> defined an
> > >>> > additional Java Platform to point to the AdoptOpenJDK 1.8
> > installation
> > >>> > folder to define the JDK_1.8 platform property.
> > >>> >
> > >>> > If I then open our project and all the modules, NB12.2 starts a
> > >>> background
> > >>> > scan. During this scanning it throws numerous NPE's (almost every
> > >>> second).
> > >>> > I'll add the stacktrace at the end of this mail.
> > >>> >
> > >>> > And on multiple files an "error badge" appears because it imports a
> > >>> class
> > >>> > (StringUtils) that happens to be defined in two independent modules
> > in
> > >>> our
> > >>> > project (this is to avoid cyclic dependency and visibility between
> > >>> modules
> > >>> > needing this class).
> > >>> >
> > >>> > The error badge appears on the import of StringUtils from the one
> > >>> module
> > >>> > only, not on the imports of StringUtils from the other module. The
> > >>> error
> > >>> > badge does not appear on the import in the same module where
> > >>> StringUtils is
> > >>> > defined, but it does appear on the use of StringUtils in the Unit
> > Test
> > >>> > Packages in the module.
> > >>> >
> > >>> > The error badge states the following:
> > >>> >
> > >>> > cannot find symbol
> > >>> >   symbol: class StringUtils
> > >>> >   location: package common.util
> > >>> >
> > >>> >
> > >>> > When selecting the "error badge" it asks to "Change to import
> > <package
> > >>> > name>.StringUtils", suggesting the other StringUtils.java class.
> > >>> >
> > >>> > Note that when I use Ctrl-O to open the "Go to Type" dialog and
> type
> > >>> > StringUtils it find both instances of StringUtils (plus some
> > additional
> > >>> > ones e.g. com.sun.xml.internal.ws.util.StringUtils).
> > >>> >
> > >>> > I tried doing the same with completely disabling/uninstalling
> > nb-javac
> > >>> and
> > >>> > ran 12.2 again from scratch. Doing this, the NPE's still occur, but
> > the
> > >>> > "error badges" problem disappears.
> > >>> >
> > >>> > I tried doing the same with installing NB 12.1 (without nb-javac).
> > This
> > >>> > also stops the NPE's. Installing/enabling nb-javac brings back the
> > >>> "error
> > >>> > badges" in NB 12.1 as well though.
> > >>> >
> > >>> > To me it seems nb-javac has a problem with determining visibility
> of
> > >>> > classes between modules when (multiple) classes are defined with
> the
> > >>> same
> > >>> > name but that live in a different package/module.
> > >>> >
> > >>> > And it seems something is broken in NB12.2 with respect to the
> > >>> Background
> > >>> > scanning in that it throws NPE's all the time.
> > >>> >
> > >>> > For now I'm using NB12.1 (without nb-javac) and that at least
> solves
> > my
> > >>> > "error badge" and NPE problems, but the scanning/etc of javac as
> > >>> opposed to
> > >>> > using nb-javac seems to slow down the display of e.g. Java Hints
> and
> > >>> other
> > >>> > things inside the editor and/or when doing "Find Usages".
> > >>> >
> > >>> > Note that I'm not having ANY of these problems with NB 8.2 (using
> > >>> > nb-javac).
> > >>> >
> > >>> > Is there anyone who can give some idea on how/why these "error
> > badges"
> > >>> > appear?
> > >>> >
> > >>> > And/or why NB12.2 seems to throw so many NPE's (as opposed to
> > NB12.1)?
> > >>> >
> > >>> > Greets,
> > >>> >     Humphrey.
> > >>> >
> > >>> > ----- NPE stacktrace ----
> > >>> >
> > >>> > java.lang.NullPointerException
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:914)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.processing.JavacProcessingEnvironment.access$2500(JavacProcessingEnvironment.java:113)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1298)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1380)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1350)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1240)
> > >>> >
> > >>> >             at
> > >>> > com.sun.tools.javac.api.JavacTaskImpl.enter(JavacTaskImpl.java:404)
> > >>> >
> > >>> >             at
> > >>> >
> > >>>
> > com.sun.tools.javac.api.JavacTaskImpl.enterTrees(JavacTaskImpl.java:451)
> > >>> >
> > >>> > [catch] at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.java.source.nbjavac.indexing.MultiPassCompileWorker.compile(MultiPassCompileWorker.java:204)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.java.source.indexing.JavaCustomIndexer.index(JavaCustomIndexer.java:361)
> > >>> >
> > >>> >             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:275)
> > >>> >
> > >>> >             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:2750)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.access$800(RepositoryUpdater.java:2154)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2636)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$1.run(RepositoryUpdater.java:2634)
> > >>> >
> > >>> >             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:2634)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork$4.call(RepositoryUpdater.java:5714)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork$4.call(RepositoryUpdater.java:5622)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$4.run(RepositoryUpdater.java:2127)
> > >>> >
> > >>> >             at
> > >>> > org.openide.util.lookup.Lookups.executeWith(Lookups.java:279)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2123)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.runInContext(RepositoryUpdater.java:2104)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.access$1500(RepositoryUpdater.java:136)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSource(RepositoryUpdater.java:5749)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$AbstractRootsWork.scanSources(RepositoryUpdater.java:5419)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$RootsWork.getDone(RepositoryUpdater.java:5038)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work.doTheWork(RepositoryUpdater.java:3420)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task._run(RepositoryUpdater.java:6183)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.access$4300(RepositoryUpdater.java:5834)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2$1.run(RepositoryUpdater.java:6099)
> > >>> >
> > >>> >             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:6095)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task$2.call(RepositoryUpdater.java:6091)
> > >>> >
> > >>> >             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:6091)
> > >>> >
> > >>> >             at
> > >>> >
> > >>> >
> > >>>
> >
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> > >>> >
> > >>> >             at
> > >>> > java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> > >>> >
> > >>> >             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)
> > >>> >
> > >>> > --
> > >>> > In the mountains of truth, you never climb in vain - Nietzsche
> > >>> > #-------------------------------------------------------------
> > >>> >  \_O
> > >>> > ,__/>
> > >>> >   <"
> > >>> >    '
> > >>> >
> > >>>
> > >>
> > >>
> > >> --
> > >> In the mountains of truth, you never climb in vain - Nietzsche
> > >> #-------------------------------------------------------------
> > >>  \_O
> > >> ,__/>
> > >>   <"
> > >>    '
> > >>
> > >
> > >
> > > --
> > > In the mountains of truth, you never climb in vain - Nietzsche
> > > #-------------------------------------------------------------
> > >  \_O
> > > ,__/>
> > >   <"
> > >    '
> > >
> > > ---------------------------------------------------------------------
> > > 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
> > >
> > >
> >
>
>
> --
> In the mountains of truth, you never climb in vain - Nietzsche
> #-------------------------------------------------------------
>  \_O
> ,__/>
>   <"
>    '
>

Reply via email to