The same for usual classes works fine. And inner classes with only one c'tor also work fine.
I get the following exception via source class loader (javac doesn't complain):
Caused by: java.lang.RuntimeException: JaninoBug$Sub.JaninoBug$Sub(int[] a): Operand stack underrun at offset 7
at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler$1.visitMemberClassDeclaration(UnitCompiler.java)
at org.codehaus.janino.Java$MemberClassDeclaration.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler$1.visitPackageMemberClassDeclaration(UnitCompiler.java)
at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java)
at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java)
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java)
at org.codehaus.janino.JavaSourceClassLoader.findClass(JavaSourceClassLoader.java)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
[...]
I'm not really sure if I'm spot on with the summary. Well, I attached some minimalistic example, which should outline the problem.
You were close. The reason being is not the two constructors, but the expicit constructor invocation.
Changed the summary line accordingly.
Added a JUNIT test to ReportedBugs.java that reproduces the problem.