hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-12973) make DU pluggable
Date Thu, 07 Apr 2016 18:26:25 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-12973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15230772#comment-15230772

Colin Patrick McCabe commented on HADOOP-12973:

Part of the reason I believe there should be a builder is because otherwise, we have no way
of adding new parameters in a backwards compatible way.  For example, if we want to add a
Foobar parameter to the constructor, we can't do that in a compatible fashion since the Factory
is hard-coded to look for a 3-argument constructor with {{File, long, long}} by this code:

37      Constructor<? extends GetSpaceUsed> cons =
38	          duKlass.getConstructor(File.class, long.class, long.class);

And if I accidentally implement a constructor with File, long, long that uses those parameters
for something else, weird stuff happens.  For example, if I have a constructor like this:
{{MyGetSpaceUsedSubclass(File birthdayMessage, long numberOfClowns, long numberOfBirthdayCakes)}},
the factory will happily find it and pass it arguments that make no sense.  This can all be
avoided by just passing the Builder object to the constructor.

> make DU pluggable
> -----------------
>                 Key: HADOOP-12973
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12973
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Elliott Clark
>            Assignee: Elliott Clark
>         Attachments: HADOOP-12973v0.patch, HADOOP-12973v1.patch, HADOOP-12973v10.patch,
HADOOP-12973v2.patch, HADOOP-12973v3.patch, HADOOP-12973v5.patch, HADOOP-12973v6.patch, HADOOP-12973v7.patch,
HADOOP-12973v8.patch, HADOOP-12973v9.patch
> If people are concerned about replacing the call to DU. Then an easy first step is to
make it pluggable. Then it's possible to replace it with something while leaving the default

This message was sent by Atlassian JIRA

View raw message