JDK-8081646 : "Failure executing javac, but could not parse the error"
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 8u45
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2015-05-06
  • Updated: 2016-02-11
  • Resolved: 2016-02-11
Related Reports
Duplicate :  
Description
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.


Comments
Trying to reproduce the issue with 8u45 and 8u60 ea builds.
02-06-2015