You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benjamin Lerer (JIRA)" <ji...@apache.org> on 2014/09/19 16:18:34 UTC

[jira] [Commented] (CASSANDRA-7924) Optimization of Java UDFs

    [ https://issues.apache.org/jira/browse/CASSANDRA-7924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14140631#comment-14140631 ] 

Benjamin Lerer commented on CASSANDRA-7924:
-------------------------------------------

My comments:
* It seems to me that more than 90% of the code of {{AbstractJavaSourceUDF}} is use to generate the code of the UDF classes. Due to that I think it should be better to convert it into a factory that do not extends UDFunction. It will make the things clearer on what is the main purpose of the class.
* The code of {{AbstractJavaSourceUDF.buildUDF}} should be split in smaller methods as it will make the code easier to read. I think that using {{String.format}} instead of {{StringBuilder.append}} will also help making the code more readable.
* Calling {{CannotCompileException.getReason()}} is the same as calling {{CannotCompileException.getMessage()}} and calling 
{{InvocationTargetException.getTargetException()}} is the same as calling {{InvocationTargetException.getCause()}}, so I think that you should decide if you perfer to append only the message or the full stack trace and merge the 3 catches into one.
 * You should remove the {{@SuppressWarnings}} as they are only needed by your IDE (they actually trigger some warning in mine)
* In {{UFTest.testFunctionCreationAndDrop}}, could you add a test to verify that when one function as been drop you cannot call it anymore?  
* In {{UFTest.testCreateOrReplaceJavaFunction}}, could you test that when you have replaced a function it will that one which is called? 

> Optimization of Java UDFs
> -------------------------
>
>                 Key: CASSANDRA-7924
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7924
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Robert Stupp
>            Assignee: Robert Stupp
>              Labels: docs, lhf, udf
>             Fix For: 3.0
>
>         Attachments: 7924.txt
>
>
> Refactor 'java' UDFs to optimize invocation. Goal is to remove reflection code. Implementation uses javassist to generate an instance of {{Function}} that can be directly used.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)