[
https://issues.apache.org/jira/browse/DRILL-6888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16713511#comment-16713511
]
ASF GitHub Bot commented on DRILL-6888:
---------------------------------------
Ben-Zvi commented on a change in pull request #1569: DRILL-6888: Move nested
classes outside HashAggTemplate to allow for plain java compile option
URL: https://github.com/apache/drill/pull/1569#discussion_r239992221
##########
File path:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggUpdater.java
##########
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.drill.exec.physical.impl.aggregate;
+
+import org.apache.drill.exec.memory.BufferAllocator;
+import org.apache.drill.exec.physical.impl.common.SpilledState;
+
+public class HashAggUpdater implements SpilledState.Updater {
+ private BufferAllocator allocator;
+ HashAggUpdater(BufferAllocator allocator) { this.allocator = allocator; }
+
+ @Override
+ public void cleanup() {
+ this.cleanup();
Review comment:
Good catch ! This is how the nested class code (in the master branch) was
implemented. And then "refactor" was used to "move" this class out, so it kept
this "this".
Maybe the original intention was to call the containing class' _cleanup_,
like `HashAggTemplate.this.cleanup()`
So this method is probably never called ....
Needs a fix anyway -- should be a no-op (no reason to call the
HashAggTemplate's cleanup() ).
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Nested classes in HashAggTemplate break the plain Java for debugging codegen
> ----------------------------------------------------------------------------
>
> Key: DRILL-6888
> URL: https://issues.apache.org/jira/browse/DRILL-6888
> Project: Apache Drill
> Issue Type: Improvement
> Components: Execution - Relational Operators
> Affects Versions: 1.14.0
> Reporter: Boaz Ben-Zvi
> Assignee: Boaz Ben-Zvi
> Priority: Minor
>
> The *prefer_plain_java* compile option is useful for debugging of generated
> code.
> DRILL-6719 ("separate spilling logic for Hash Agg") introduced two nested
> classes into the HashAggTemplate class. However those nested classes cause
> the prefer_plain_java compile option to fail when compiling the generated
> code, like:
> {code:java}
> Error: SYSTEM ERROR: CompileException: File
> '/tmp/janino5709636998794673307.java', Line 36, Column 35: No applicable
> constructor/method found for actual parameters
> "org.apache.drill.exec.test.generated.HashAggregatorGen11$HashAggSpilledPartition";
> candidates are: "protected
> org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder
> org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate.injectMembers(org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder)"
> {code}
> +The proposed fix+: Move those nested classes outside HashAgTemplate.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)