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

NullPointerException when using Lombok @Builder.Default

    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. ui.log
          2.03 MB
          Benjamin Asbach
        2. screenshot-1.png
          22 kB
          Benjamin Asbach
        3. lombok-netbeans-poc.zip
          6 kB
          Benjamin Asbach
        4. ide.log
          677 kB
          Benjamin Asbach

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: