Browse Source

HDFS-9155. OEV should treat .XML files as XML even when the file name extension is uppercase (nijel via cmccabe)

Colin Patrick Mccabe 9 years ago
parent
commit
2fc2b50534

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -1013,6 +1013,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

+ 1 - 1
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();

+ 8 - 0
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