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

"Failure executing javac, but could not parse the error"

XMLWordPrintable

    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      NOTE THAT ECLIPSE IS USING 1.8.0_05, but here is the output requested:
      C:\>java -version
      java version "1.8.0_45"
      Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
      Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Windows 7 Enterprise
      Service Pack 1

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Error occurred in Eclipse IDE:
      Spring Tool Suite
      Version: 3.6.3.SR1
      Build Id: 201501121239
      Platform: Eclipse Luna SR1 (4.4.1)

      A DESCRIPTION OF THE PROBLEM :
      I am entering this bug report because the compiler error message asked me to.

      When I replaced an anonymous inner class:

      protected static final String SELECT_RDR_COLUMNS = "SELECT " + getColumnList(new IColumnFormatter() {

      @Override
      public String formatColumn(final RdrEntryColumn column) {
      return "e." + column.name();
      }

      });

       with (an attempt at) a lambda expression:

      protected static final String SELECT_RDR_COLUMNS = "SELECT " + getColumnList(
      (RdrEntryColumn column) -> "e." + column.name()
      );

      the compiler gave me this:

      [INFO] -------------------------------------------------------------
      [ERROR] COMPILATION ERROR :
      [INFO] -------------------------------------------------------------
      [ERROR] Failure executing javac, but could not parse the error:
      An exception has occurred in the compiler (1.8.0_05). 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.AssertionError: java.lang.NullPointerException
      at com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue(Symbol.java:1261)
      at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1061)
      at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:846)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
      at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4305)
      at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4215)
      at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4149)
      at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4124)
      at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1251)
      at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:904)
      at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:863)
      at com.sun.tools.javac.main.Main.compile(Main.java:523)
      at com.sun.tools.javac.main.Main.compile(Main.java:381)
      at com.sun.tools.javac.main.Main.compile(Main.java:370)
      at com.sun.tools.javac.main.Main.compile(Main.java:361)
      at com.sun.tools.javac.Main.compile(Main.java:74)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:554)
      at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:161)
      at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:605)
      at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
      at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
      Caused by: java.lang.NullPointerException
      at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1051)
      at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:846)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
      at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:681)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2300)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:372)
      at com.sun.tools.javac.comp.DeferredAttr$2.complete(DeferredAttr.java:265)
      at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:231)
      at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:218)
      at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:976)
      at com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:822)
      at com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:733)
      at com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:831)
      at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:578)
      at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1418)
      at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1597)
      at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1668)
      at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1641)
      at com.sun.tools.javac.comp.Resolve.findFun(Resolve.java:1804)
      at com.sun.tools.javac.comp.Resolve$8.doLookup(Resolve.java:2365)
      at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3056)
      at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3307)
      at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3292)
      at com.sun.tools.javac.comp.Resolve.resolveMethod(Resolve.java:2361)
      at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:3151)
      at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:2005)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1828)
      at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:645)
      at com.sun.tools.javac.comp.Attr.visitBinary(Attr.java:3030)
      at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1779)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:638)
      at com.sun.tools.javac.comp.Attr.attribLazyConstantValue(Attr.java:780)
      at com.sun.tools.javac.code.Symbol$VarSymbol$2.call(Symbol.java:1227)
      at com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue(Symbol.java:1259)
      ... 43 more

      [INFO] 1 error
      [INFO] -------------------------------------------------------------
      [INFO] ------------------------------------------------------------------------
      [ERROR] BUILD FAILURE
      [INFO] ------------------------------------------------------------------------
      [INFO] Compilation failure
      Failure executing javac, but could not parse the error:
      An exception has occurred in the compiler (1.8.0_05). 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.AssertionError: java.lang.NullPointerException
      at com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue(Symbol.java:1261)
      at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1061)
      at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:846)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
      at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4305)
      at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4215)
      at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4149)
      at com.sun.tools.javac.comp.Attr.attrib(Attr.java:4124)
      at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1251)
      at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:904)
      at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:863)
      at com.sun.tools.javac.main.Main.compile(Main.java:523)
      at com.sun.tools.javac.main.Main.compile(Main.java:381)
      at com.sun.tools.javac.main.Main.compile(Main.java:370)
      at com.sun.tools.javac.main.Main.compile(Main.java:361)
      at com.sun.tools.javac.Main.compile(Main.java:74)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:554)
      at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:161)
      at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:605)
      at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
      at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
      at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
      Caused by: java.lang.NullPointerException
      at com.sun.tools.javac.comp.Attr.visitVarDef(Attr.java:1051)
      at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:846)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribStat(Attr.java:665)
      at com.sun.tools.javac.comp.Attr.attribStats(Attr.java:681)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2300)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.DeferredAttr.attribSpeculative(DeferredAttr.java:372)
      at com.sun.tools.javac.comp.DeferredAttr$2.complete(DeferredAttr.java:265)
      at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:231)
      at com.sun.tools.javac.comp.DeferredAttr$DeferredType.check(DeferredAttr.java:218)
      at com.sun.tools.javac.comp.Resolve$MethodResultInfo.check(Resolve.java:976)
      at com.sun.tools.javac.comp.Resolve$4.checkArg(Resolve.java:822)
      at com.sun.tools.javac.comp.Resolve$AbstractMethodCheck.argumentsAcceptable(Resolve.java:733)
      at com.sun.tools.javac.comp.Resolve$4.argumentsAcceptable(Resolve.java:831)
      at com.sun.tools.javac.comp.Resolve.rawInstantiate(Resolve.java:578)
      at com.sun.tools.javac.comp.Resolve.selectBest(Resolve.java:1418)
      at com.sun.tools.javac.comp.Resolve.findMethodInScope(Resolve.java:1597)
      at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1668)
      at com.sun.tools.javac.comp.Resolve.findMethod(Resolve.java:1641)
      at com.sun.tools.javac.comp.Resolve.findFun(Resolve.java:1804)
      at com.sun.tools.javac.comp.Resolve$8.doLookup(Resolve.java:2365)
      at com.sun.tools.javac.comp.Resolve$BasicLookupHelper.lookup(Resolve.java:3056)
      at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3307)
      at com.sun.tools.javac.comp.Resolve.lookupMethod(Resolve.java:3292)
      at com.sun.tools.javac.comp.Resolve.resolveMethod(Resolve.java:2361)
      at com.sun.tools.javac.comp.Attr.visitIdent(Attr.java:3151)
      at com.sun.tools.javac.tree.JCTree$JCIdent.accept(JCTree.java:2005)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitApply(Attr.java:1828)
      at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1459)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:645)
      at com.sun.tools.javac.comp.Attr.visitBinary(Attr.java:3030)
      at com.sun.tools.javac.tree.JCTree$JCBinary.accept(JCTree.java:1779)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.attribExpr(Attr.java:638)
      at com.sun.tools.javac.comp.Attr.attribLazyConstantValue(Attr.java:780)
      at com.sun.tools.javac.code.Symbol$VarSymbol$2.call(Symbol.java:1227)
      at com.sun.tools.javac.code.Symbol$VarSymbol.getConstValue(Symbol.java:1259)
      ... 43 more


      [INFO] ------------------------------------------------------------------------
      [INFO] For more information, run Maven with the -e switch
      [INFO] ------------------------------------------------------------------------
      [INFO] Total time: 41 seconds
      [INFO] Finished at: Mon May 04 14:51:06 EDT 2015
      [INFO] Final Memory: 108M/721M
      [INFO] ------------------------------------------------------------------------


      When i simplified the lambda expression to this:
      */
      protected static final String SELECT_RDR_COLUMNS = "SELECT " +
      getColumnList(column -> "e." + column.name());

      the compiler went into a loop:
      [INFO] -------------------------------------------------------------
      [ERROR] COMPILATION ERROR :
      [INFO] -------------------------------------------------------------
      [ERROR] Failure executing javac, but could not parse the error:


      The system is out of resources.
      Consult the following stack trace for details.
      java.lang.StackOverflowError
      at com.sun.tools.javac.comp.Attr.lambdaEnv(Attr.java:2622)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2292)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.JCTree$JCLambda.accept(JCTree.java:1618)
      at com.sun.tools.javac.comp.Attr.attribTree(Attr.java:596)
      at com.sun.tools.javac.comp.Attr.visitLambda(Attr.java:2417)
      at com.sun.tools.javac.tree.

      etc. until StackOverflowError




      ADDITIONAL REGRESSION INFORMATION:
      NOTE THAT ECLIPSE IS USING 1.8.0_05, but here is the output requested:
      C:\>java -version
      java version "1.8.0_45"
      Java(TM) SE Runtime Environment (build 1.8.0_45-b14)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Just run a build in Eclipse.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Either a clean build or an error message telling me what is wrong with the attempt at a lambda expression
      ACTUAL -
      The javac choke show under Description.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      See Description

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      It is not possible to include compilable Java source code because the bug is in javac which failed while trying to compile it.

      THE PARENT CLASS, RdrEntryDao, CONTAINS THE FOLLOWING:

      protected static String getColumnList(final IColumnFormatter formatter) {
      StringBuilder builder = new StringBuilder();

      boolean first = true;
      for (RdrEntryColumn column : RdrEntryColumn.values()) {
      if (first) {
      first = false;
      } else {
      builder.append(", ");
      }
      builder.append(formatter.formatColumn(column));
      }
      return builder.toString();
      }

      protected interface IColumnFormatter {
      String formatColumn(RdrEntryColumn column);
      }

      The RdrEntryColumn class is as follows:
      public enum RdrEntryColumn {

      /** The GUID. */
      C_GUID(1),

      /** The PROCESSED TIME. */
      C_PROCESSED_TIME(2),

      /** The VERB. */
      C_VERB(3),

      /** The NOUN. */
      C_NOUN(4),

      /** The SOURCE_FILTER_VALUE. */
      C_SOURCE_FILTER_VALUE(5),

      /** The MESSAGE_ID. */
      C_MESSAGE_ID(6),

      /**
      * The column's position.
      */
      private final int position;

      /**
      * Constructor for the enums.
      *
      * @param position the position
      */
      RdrEntryColumn(final int position) {
      this.position = position;
      }

      /**
      * Returns column's position.
      * @return column's position.
      */
      public int getPosition() {
      return position;
      }

      }

      The child class, RdrEntryX7Dao, contains the following:

      protected static final String SELECT_RDR_COLUMNS = "SELECT " + getColumnList(
      (RdrEntryColumn column) -> "e." + column.name()
      );

      private static final String SELECT_ENTRY_BY_MESSAGE_ID_S3 = SELECT_RDR_COLUMNS
      + " FROM RDR_ENTRY e "
      + " WHERE e." + RdrEntryColumn.C_MESSAGE_ID + " = ?";

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

      CUSTOMER SUBMITTED WORKAROUND :
      I went back to using the anonymous inner class and gave up on trying to use the lambda expression instead.

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: