From ae66a18b336a02874d02ae35fe76606b41acd946 Mon Sep 17 00:00:00 2001 From: Fengnan Li Date: Thu, 23 May 2019 16:53:29 -0700 Subject: [PATCH 1/2] Make XML parsing error message more explicit; use endWith for inode close --- .../linkedin/dynamometer/blockgenerator/XMLParser.java | 2 +- .../dynamometer/blockgenerator/XMLParserMapper.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java index 3b915c23b2..9a5711c383 100644 --- a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java +++ b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java @@ -77,7 +77,7 @@ List parseLine(String line) throws IOException { long size = Long.parseLong(blockMatcher.group(3)); blockInfos.add(new BlockInfo(id, gs, size, currentReplication)); } - if (line.contains("")) { + if (line.endsWith("")) { transitionTo(State.DEFAULT); } return blockInfos; diff --git a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParserMapper.java b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParserMapper.java index c6b694e1e7..6f68e88f47 100644 --- a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParserMapper.java +++ b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParserMapper.java @@ -49,7 +49,13 @@ public void setup(Mapper.Context context) { public void map(LongWritable lineNum, Text line, Mapper.Context context) throws IOException, InterruptedException { - List blockInfos = parser.parseLine(line.toString()); + List blockInfos; + try { + blockInfos = parser.parseLine(line.toString()); + } catch (IOException e) { + throw new IOException(String.format("IOException %s happened for line %s", e.getMessage(), line)); + } + for (BlockInfo blockInfo : blockInfos) { for (short i = 0; i < blockInfo.getReplication(); i++) { context.write(new IntWritable((blockIndex + i) % numDataNodes), blockInfo); From bedd0f1df697abfcf5ba1da62d8de51c8c42577a Mon Sep 17 00:00:00 2001 From: Fengnan Li Date: Fri, 24 May 2019 15:21:24 -0700 Subject: [PATCH 2/2] Undo the change for XMLParser regarding This should be revisited in the future --- .../java/com/linkedin/dynamometer/blockgenerator/XMLParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java index 9a5711c383..3b915c23b2 100644 --- a/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java +++ b/dynamometer-blockgen/src/main/java/com/linkedin/dynamometer/blockgenerator/XMLParser.java @@ -77,7 +77,7 @@ List parseLine(String line) throws IOException { long size = Long.parseLong(blockMatcher.group(3)); blockInfos.add(new BlockInfo(id, gs, size, currentReplication)); } - if (line.endsWith("")) { + if (line.contains("")) { transitionTo(State.DEFAULT); } return blockInfos;