Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-7194212

NPE in Flow.visitIdent

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 20
    • 7
    • tools
    • 7u6
    • b11
    • x86
    • linux_ubuntu

      FULL PRODUCT VERSION :
      java version "1.7.0_06"
      Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
      Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Linux devaccarch 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      I'm trying to rewrite some classes from Weld with my own implementations. I don't want to touch the existing code, so I copied the classes into my own project, keeping all the dependencies to the original.

      One of the classes that I want to replace is a nested private static class that I moved into a file with the name of the container class + $ + inner, and made it public. This has worked fine in other occasions.


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      The setup is a little bit difficult to describe, but simple im maven. I haven't found an attachment feature here, so I gzipped the minimized maven project and base64-ed it.

        To unpack and run do the following:
      1. put the text in the source field into a file called javac-npe-example.tar.gz.base64
      2. base64 -d javac-npe-example.tar.gz.base64 > javac-npe-example.tar.gz
      3. tar xzf javac-npe-example.tar.gz
      4. cd dummy
      5. mvn clean install

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      the compiler should either just do it's work or report a specific error message
      ACTUAL -
      javac fails with a NullPointerException

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      An exception has occurred in the compiler (1.7.0_06). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
       java.lang.NullPointerException
       at com.sun.tools.javac.comp.Flow.visitIdent(Flow.java:1397)
       at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:1705)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.comp.Flow.scanExpr(Flow.java:549)
       at com.sun.tools.javac.comp.Flow.visitApply(Flow.java:1277)
       at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1321)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:173)
       at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1167)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.comp.Flow.scanStat(Flow.java:533)
       at com.sun.tools.javac.comp.Flow.scanStats(Flow.java:541)
       at com.sun.tools.javac.comp.Flow.visitBlock(Flow.java:801)
       at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:781)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.comp.Flow.scanStat(Flow.java:533)
       at com.sun.tools.javac.comp.Flow.visitMethodDef(Flow.java:747)
       at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:669)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.comp.Flow.visitClassDef(Flow.java:695)
       at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:591)
       at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49)
       at com.sun.tools.javac.comp.Flow.analyzeTree(Flow.java:1464)
       at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1244)
       at com.sun.tools.javac.main.JavaCompiler.flow(JavaCompiler.java:1218)
       at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:870)
       at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:829)
       at com.sun.tools.javac.main.Main.compile(Main.java:439)
       at com.sun.tools.javac.main.Main.compile(Main.java:353)
       at com.sun.tools.javac.main.Main.compile(Main.java:342)
       at com.sun.tools.javac.main.Main.compile(Main.java:333)
       at com.sun.tools.javac.Main.compile(Main.java:94)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:601)
       at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess0(JavacCompiler.java:551)
       at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:526)
       at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:167)
       at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:678)
       at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
       at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
       at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
       at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
       at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
       at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
       at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
       at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
       at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:601)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
       at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
       at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
       at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)


      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      H4sIALw3O1AAA+1Y227jNhD1a/wVQtCHLdBQV9tAohpNsw81kGwCJOn2lZYYm6lEaknJdrDIv++Q
      kmXZsetLYhVFdRAgvAxnhnNmSMphFscvphSBGWPKzGc8wSYXI/N5yKU0pyQKYYLhERHm7wSzm7w9
      iJPopwGTKWYBGbBnEqSUsztOWYqUitYSLEC366n/dq9jVf9r2K7dsh3L7nZd2/W6LcsFcbdlWK0a
      kMEmhGG0RMjHDG+W2zb/H0WCg7+BUQM4R5pzpDhHBecX7XaSDSMaGEGEpTR2SwHje/u1/W9vrMFO
      CLfX/1eVEG+rendsqX/HdZ1F/fc6LcuxOk3914P19Q91T+OEi9RQvKMIsxHCjPEUqyJHl2XzYkku
      S2mEBikROOViWccMEQYTiaCSIKqPCzQ/PS62CcqEoqvPg81y2vDDS0KuqbIeLWyvP9fQykG2es6p
      lPcf+gaZpYSF0gDjqvu9bQB+u50QIWhIdK9Yt6LQGJG0MvTp52KtgiBpJpjBsgjsqoHXdq5J8BR2
      S0LjPhWUjZSOKxxF0LxSXn3BMdlJ0VoH57SofdCifbi2B+XcO5wpmFfOSBLBrj8tcgohZHzLcESf
      KBHyYBv+Y0kfWCktPpYWdVB1PxumkDu/GPX7UMnZ43oy5DyCfDSofGQSFEtQF64j8AlHkuyj7zIe
      0lHGM/kObUXCpzxv7FYu+dIJpyFULfiSJeW61+YBsiPy+z/hMZrF0ZFsbLn/7Z7jlve/58L9b7uW
      5zX3fx3w4dZRd6wB9DP56+k4TZNzEx6DE8IQhtfBmCD1Hry7vTE9ZCHrNJc8n0laSk+nUzR1tZwD
      fJp/3Vzfw8IYn9HiyDttn8CCc6lHr3mgj7YdrBmbJGYyzAfPtByC/mm/feLHPCTRn3BSgv6+nvLN
      pTGQGQmeJYOwr3PfN+ddmMEipU84SBeTlRGYnxRKbGSd3X+5vLv/4/bBN+ejbZBIBBHkW0YlHOoS
      loBHysu+C654fu6y0mSuCMLQMKNRqJckUTaCyKn2vKPbC9fVs6aIRh6aYkl1N0q+4n4erYDHCY2I
      OMsXrGxQLZnvxkEdZFc2pycDzp7gtBeav3zsxJc8EwGBoHR9s2gXM1Ba8E7IZ4r2fM2YTz8TCEKe
      Cv1UZARWr4xWhL9iweBqkBXJcij3zXzrHIS5jN68LXX4i2BDMyQJXNCEBbQgrBx4yXVUY754Si5H
      uhpoNQtxFuRNcCuxVTl7GSVj7C6H2JcBT0gfqnICdyRYyfva/yXHKl3tuMooXcn9vep/h++/+e8/
      B58x6pDvqe+6Db//AJZ//3EsdQ0YnYMt7oH/+fm/A//vtrEP/7bdg/u/B38N/3Xgn/n/GBv789+1
      4LnY8F8DNvH/kTb259/reQ3/tWAd/x9t4wD+7U5z/9eCFf6PYmMP/t2O66nvf8ezG/7rwIL/49nY
      i3/HBf4d+BBo+K8DOf/HtbEP/13HBv5tlQYN/w0aNGjQoMGR8AOjznT7ACgAAA==

      ---------- END SOURCE ----------

        1. AddStaticMethod.java
          3 kB
          Coleen Phillimore
        2. bugNPEFlow.tar.gz
          10 kB
          Vicente Arturo Romero Zaldivar

            jlahoda Jan Lahoda
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: