Uploaded image for project: 'NetBeans'
  1. NetBeans
  2. NETBEANS-4075

NullPointerException when using Lombok @Builder.Default

VotersWatch issueWatchersLinkUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 11.3
    • None
    • java - Compiler
    • None
    • Windows 10, AdoptOpenJDK 11 OpenJ9

    Description

      I recognized some strange behaviour when using latest Lombok release with NetBeans 11.3.

      When using @Builder and @Builder.Default

      
      package it.impl.lombok.netbeans.poc;
      
      import lombok.Builder;
      import lombok.Getter;
      
      @Getter
      @Builder
      public class Configuration {
      
        @Builder.Default
        private long config1 = 500L;
      }
      

      1) A NullPointerException occurs

      java.lang.NullPointerException
       at com.sun.tools.javac.comp.Check$Validator.visitTypeIdent(Check.java:1451)
       at com.sun.tools.javac.tree.JCTree$JCPrimitiveTypeTree.accept(JCTree.java:2434)
       at com.sun.tools.javac.comp.Check$Validator.validateTree(Check.java:1470)
       at com.sun.tools.javac.comp.Check.validate(Check.java:1341)
       at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1217)
       at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:972)
       at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:674)
       at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:754)
       at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:5099)
       at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4982)
       at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4910)
       at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4855)
       at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1439)
       at com.sun.tools.javac.api.JavacTaskImpl$1.process(JavacTaskImpl.java:504)
       at com.sun.tools.javac.api.JavacTaskImpl$Filter.run(JavacTaskImpl.java:651)
       at com.sun.tools.javac.api.JavacTaskImpl.analyze(JavacTaskImpl.java:507)
      [catch] at org.netbeans.modules.java.source.nbjavac.indexing.MultiPassCompileWorker.compile(MultiPassCompileWorker.java:261)
       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$Work$3.call(RepositoryUpdater.java:3300)
       at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Work$3.call(RepositoryUpdater.java:3255)
       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$Work.scanFiles(RepositoryUpdater.java:3255)
       at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$FileListWork.getDone(RepositoryUpdater.java:3785)
       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)
      

      2) The class seems to be unresolvable

      When commenting the @Builder.Default annotation out. The problem seems to be solved.

      In addition it seems that the entire package cannot be used for auto completion and/or auto import.
      Compile and build via maven is working like expected.

      An example maven project is attached.

      Attachments

        1. ide.log
          677 kB
          Benjamin Asbach
        2. ui.log
          2.03 MB
          Benjamin Asbach
        3. lombok-netbeans-poc.zip
          6 kB
          Benjamin Asbach
        4. screenshot-1.png
          22 kB
          Benjamin Asbach

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            Unassigned Unassigned
            asbachb Benjamin Asbach
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment