[ https://issues.apache.org/jira/browse/HADOOP-5901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12790989#action_12790989 ]
Aaron Kimball commented on HADOOP-5901: --------------------------------------- Yes, changing the signature for {{FileSystem.setDefaultUri(Configuration, String)}} to throw an IOException if it cannot create a proper URI from the String argument would be an incompatible change. Digging into the changes necessary in the MapReduce codebase, it appears that ({{MiniMRCluster.configureJobConf()}}) is the only use of FileSystem.setDefaultUri(). So that could be changed to itself throw IOException easily enough. But that is called by {{MiniMRCluster.createJobConf()}} which is used in several dozen places throughout the test codebase. On the HDFS codebase side, it looks as though all the uses of setDefaultUri are in test cases which can all be modified to throw more exceptions than they do now in a straightforward way; or else in places where the URI is generated programmatically and we know that it's going to be valid. (Hence we can swallow the IOException.) So I think our options are as follows: # Modify {{MiniMRCluster.createJobConf()}} to also throw IOException and modify all call-sites to catch IOException. # Early in this patch's development I was throwing an IllegalArgumentException (unchecked) for this reason (preventing incompatibility). Konstantin S: Are you still pro-IOException here? # Make the {{FileSystem.checkName()}} method public. The {{namenode}} argument in MiniMRCluster which is used to format the URI is passed into MiniMRCluster's constructor. With a public checkName, we could call {{checkName(namenode)}} in the MiniMRCluster constructor, which already throws IOException, so clients already trap that. Then we could swallow the exception (maybe with a log4j message) in {{createJobConf()}}, knowing that it should never be thrown since we already verified the URI's sanity. This increases the size of the public static FileSystem API. > FileSystem.fixName() has unexpected behaviour > --------------------------------------------- > > Key: HADOOP-5901 > URL: https://issues.apache.org/jira/browse/HADOOP-5901 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Affects Versions: 0.21.0 > Reporter: Steve Loughran > Assignee: Aaron Kimball > Priority: Minor > Fix For: 0.22.0 > > Attachments: HADOOP-5901.2.patch, HADOOP-5901.3.patch, > HADOOP-5901.patch > > > {{FileSystem.fixName()}} tries to patch up fs.default.name values, but I'm > not sure it helps that well. > Has it been warning about deprecated values for long enough for it to be > turned off? -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.