[
https://issues.apache.org/jira/browse/DRILL-5116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15789071#comment-15789071
]
Paul Rogers commented on DRILL-5116:
------------------------------------
One more issue for nested classes is that some declare private constructors:
{code}
public abstract class HashAggTemplate implements HashAggregator {
...
public class BatchHolder {
...
private BatchHolder() {
{code}
Private (or protected) constructors are not visible using Java introspection:
the mechanism that the code generator uses to learn about constructors. Private
constructors cannot be called by subclasses.
This must be yet another area where the byte code manipulations strip away the
protection status of the constructor, or simply discard it. (Though, it is hard
to see how it is discarded if it has parameters...)
The fix for plain-old Java is simply to make the nested class' constructor
public.
> Enable generated code debugging in each Drill operator
> ------------------------------------------------------
>
> Key: DRILL-5116
> URL: https://issues.apache.org/jira/browse/DRILL-5116
> Project: Apache Drill
> Issue Type: Improvement
> Affects Versions: 1.9.0
> Reporter: Paul Rogers
> Assignee: Paul Rogers
> Priority: Minor
>
> DRILL-5052 adds the ability to debug generated code. Some of the code
> generated by Drill's operators has minor problems when compiled directly
> using the new technique. These issues are ignore by the byte-code-merge
> technique uses in production. This ticket asks to try the DRILL-5052 feature
> in each operator, clean up any minor problems, and ensure each operator
> generates code suitable for debugging. Use the new
> {{CodeGenerator.plainOldJavaCapable()}} method to mark each generated class
> as ready for "plain-old Java" code gen.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)