pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dai (JIRA)" <j...@apache.org>
Subject [jira] Updated: (PIG-1288) EvalFunc returnType is wrong for generic subclasses
Date Sun, 02 May 2010 18:06:56 GMT

     [ https://issues.apache.org/jira/browse/PIG-1288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Daniel Dai updated PIG-1288:

    Status: Patch Available  (was: Open)

> EvalFunc returnType is wrong for generic subclasses
> ---------------------------------------------------
>                 Key: PIG-1288
>                 URL: https://issues.apache.org/jira/browse/PIG-1288
>             Project: Pig
>          Issue Type: Bug
>          Components: impl
>    Affects Versions: 0.7.0
>            Reporter: Daniel Dai
>            Assignee: Daniel Dai
>             Fix For: 0.8.0
>         Attachments: PIG-1288-1.patch, PIG-1288-2.patch
> From Garrett Buster Kaminaga:
> The EvalFunc constructor has code to determine the return type of the function.
> This walks up the object hierarchy until it encounters EvalFunc, then calls getActualTypeArguments
and extracts type
> param 0.
> However, if the user class is itself a generic extension of EvalFunc, then the returned
object is not the correct type,
> but a TypeVariable.
> Example:
>   class MyAbstractEvalFunc<T> extends EvalFunc<T> ...
>   class MyEvalFunc extends MyAbstractEvalFunc<String> ...
> when MyEvalFunc() is called, inside EvalFunc constructor the return type is set to a
TypeVariable rather than
> String.class.
> The workaround we've implemented is for the MyAbstractEvalFunc<T> to determine
*its* type parameters using code
> similar to that in the EvalFunc constructor, and then reset protected data member returnType
manually in the
> MyAbstractEvalFunc constructor.  (though this has the same drawback of not working if
someone then extends
> MyAbstractEvalFunc)

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message