diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 4669e3f8e39..baad9272f9e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -668,6 +668,9 @@ Release 2.8.0 - UNRELEASED HDFS-8979. Clean up checkstyle warnings in hadoop-hdfs-client module. (Mingliang Liu via wheat9) + HDFS-9155. OEV should treat .XML files as XML even when the file name + extension is uppercase (nijel via cmccabe) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java index cd1e73b93ba..54b8511526f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/OfflineEditsViewer.java @@ -136,7 +136,7 @@ public class OfflineEditsViewer extends Configured implements Tool { visitor = OfflineEditsVisitorFactory.getEditsVisitor( outputFileName, processor, flags.getPrintToScreen()); } - boolean xmlInput = inputFileName.endsWith(".xml"); + boolean xmlInput = inputFileName.toLowerCase().endsWith(".xml"); OfflineEditsLoader loader = OfflineEditsLoaderFactory. createLoader(visitor, inputFileName, xmlInput, flags); loader.loadEdits(); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java index 2ad7b6072ba..fbbbc292973 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java @@ -100,10 +100,17 @@ public class TestOfflineEditsViewer { LOG.info("Generated edits=" + edits); String editsParsedXml = folder.newFile("editsParsed.xml").getAbsolutePath(); String editsReparsed = folder.newFile("editsParsed").getAbsolutePath(); + // capital case extension + String editsParsedXML_caseInSensitive = + folder.newFile("editsRecoveredParsed.XML").getAbsolutePath(); // parse to XML then back to binary assertEquals(0, runOev(edits, editsParsedXml, "xml", false)); + assertEquals(0, runOev(edits, editsParsedXML_caseInSensitive, "xml", false)); assertEquals(0, runOev(editsParsedXml, editsReparsed, "binary", false)); + assertEquals(0, + runOev(editsParsedXML_caseInSensitive, editsReparsed, "binary", false)); + // judgment time assertTrue("Edits " + edits + " should have all op codes", @@ -115,6 +122,7 @@ public class TestOfflineEditsViewer { filesEqualIgnoreTrailingZeros(edits, editsReparsed)); } + @Test public void testRecoveryMode() throws IOException { // edits generated by nnHelper (MiniDFSCluster), should have all op codes