Skip to content

Commit 12afc0f

Browse files
author
hongwei.quhw
committed
oss合并已存文件body为空错误
1 parent d5729fb commit 12afc0f

File tree

9 files changed

+127
-6
lines changed

9 files changed

+127
-6
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
<url>https://github.com/alipay/rdf-file</url>
1212

1313
<properties>
14-
<rdf.file.core.version>2.2.4</rdf.file.core.version>
15-
<rdf.file.oss.version>2.2.4</rdf.file.oss.version>
16-
<rdf.file.sftp.version>2.2.4</rdf.file.sftp.version>
14+
<rdf.file.core.version>2.2.5</rdf.file.core.version>
15+
<rdf.file.oss.version>2.2.5</rdf.file.oss.version>
16+
<rdf.file.sftp.version>2.2.5</rdf.file.sftp.version>
1717
</properties>
1818

1919
<modules>

rdf-file-core/src/main/java/com/alipay/rdf/file/common/ProtocolFileReader.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,11 @@ public String readBodyLine() {
247247
}
248248
}
249249

250+
// 返回空
251+
if (!ProcessExecutor.execute(ProcessorTypeEnum.BEFORE_READ_ROW, processors, bodyConfig)) {
252+
return null;
253+
}
254+
250255
ensureOpen(bodyConfig);
251256
try {
252257
return reader.readLine();

rdf-file-oss/src/test/java/com/alipay/rdf/file/preheat/PreheatMergeDeFileTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,46 @@ public void testMergeEmpty() throws Exception {
376376

377377
mergedReader.close();
378378
}
379+
380+
@Test
381+
public void testNormlMergeEmpty() throws Exception {
382+
String ossPath = RdfFileUtil.combinePath(ossPathPrefix, "testMergeEmpty");
383+
fileStorage.upload(File.class.getResource("/preheat/de/empty/").getPath(), ossPath, false);
384+
385+
String targetFilePath = RdfFileUtil.combinePath(ossPath, "normalmergeempty.txt");
386+
// 目标文件删除
387+
try {
388+
fileStorage.delete(targetFilePath);
389+
} catch (Exception e) {
390+
}
391+
392+
FileStorage fileStorage = FileFactory.createStorage(storageConfig);
393+
List<String> paths = fileStorage.listAllFiles(ossPath);
394+
Collections.sort(paths);
395+
System.out.println(paths);
396+
397+
FileConfig normalConfig = new FileConfig(targetFilePath,
398+
"/preheat/template_Allocation.json", storageConfig);
399+
normalConfig.setFileEncoding("GBK");
400+
normalConfig.setSummaryEnable(true);
401+
402+
FileMerger fileMerger = FileFactory.createMerger(normalConfig);
403+
MergerConfig mergerConfig = new MergerConfig();
404+
mergerConfig.setExistFilePaths(paths);
405+
fileMerger.merge(mergerConfig);
406+
407+
FileConfig mergedConfig = new FileConfig(targetFilePath,
408+
"/preheat/template_Allocation.json", storageConfig);
409+
mergedConfig.setFileEncoding("GBK");
410+
FileReader mergedReader = FileFactory.createReader(mergedConfig);
411+
Map<String, Object> head = mergedReader.readHead(HashMap.class);
412+
Assert.assertEquals(new Integer(0), head.get("totalCount"));
413+
Assert.assertEquals(new BigDecimal("0.00"), head.get("totalAmount"));
414+
415+
Assert.assertNull(mergedReader.readRow(HashMap.class));
416+
417+
mergedReader.close();
418+
}
379419

380420
@After
381421
public void after() {
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.alipay.rdf.file.reader;
2+
3+
import java.io.File;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
import org.junit.Before;
8+
import org.junit.Test;
9+
10+
import com.alipay.rdf.file.interfaces.FileFactory;
11+
import com.alipay.rdf.file.interfaces.FileReader;
12+
import com.alipay.rdf.file.interfaces.FileStorage;
13+
import com.alipay.rdf.file.model.FileConfig;
14+
import com.alipay.rdf.file.model.StorageConfig;
15+
import com.alipay.rdf.file.storage.OssConfig;
16+
import com.alipay.rdf.file.util.OssTestUtil;
17+
import com.alipay.rdf.file.util.RdfFileUtil;
18+
import com.alipay.rdf.file.util.TemporaryFolderUtil;
19+
20+
import junit.framework.Assert;
21+
22+
public class BodyEmptyReader {
23+
private TemporaryFolderUtil temporaryFolder = new TemporaryFolderUtil();
24+
private static final StorageConfig storageConfig = OssTestUtil.geStorageConfig();
25+
private static String ossPathPrifx = "rdf/rdf-file/open/BodyEmptyReader";
26+
private static FileStorage fileStorage = FileFactory.createStorage(storageConfig);
27+
private OssConfig ossConfig;
28+
29+
@Before
30+
public void setUp() throws Exception {
31+
temporaryFolder.create();
32+
ossConfig = (OssConfig) storageConfig.getParam(OssConfig.OSS_STORAGE_CONFIG_KEY);
33+
ossConfig.setOssTempRoot(temporaryFolder.getRoot().getAbsolutePath());
34+
System.out.println(temporaryFolder.getRoot().getAbsolutePath());
35+
}
36+
37+
@Test
38+
public void testRead() {
39+
String ossFilePath = RdfFileUtil.combinePath(ossPathPrifx, "test.txt");
40+
fileStorage.upload(File.class.getResource("/reader/test.txt").getPath(), ossFilePath, true);
41+
42+
FileConfig normalConfig = new FileConfig(ossFilePath, "/reader/template_Allocation.json",
43+
storageConfig);
44+
FileReader reader = FileFactory.createReader(normalConfig);
45+
46+
Map<String, Object> row = null;
47+
while (null != (row = reader.readRow(HashMap.class))) {
48+
49+
}
50+
51+
Assert.assertNull(row);
52+
}
53+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"head": [
3+
"totalCount|总笔数|Integer",
4+
"totalAmount|总金额|BigDecimal"
5+
],
6+
"body": [
7+
"orderNo|流水号",
8+
"orderNo|支付宝订单号",
9+
"appSheetNo|基金公司订单号",
10+
"transInAmount|支付金额|BigDecimal",
11+
"tradeType|订单类型",
12+
"paymentStatus|支付状态",
13+
"payTime|创建日期|Date:yyyyMMdd HH:mm:ss",
14+
"memo|备注"
15+
],
16+
"totalCountKey": "totalCount",
17+
"summaryColumnPairs": [
18+
"totalAmount|transInAmount"
19+
],
20+
"protocol":"DE"
21+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
总笔数:0|总金额:0.00
2+
流水号|支付宝订单号|基金公司订单号|支付金额|订单类型|支付状态|创建日期|备注

rdf-file-test/src/main/resources/pom/rdf-file-core.pom

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.alipay.rdf.file</groupId>
66
<artifactId>rdf-file-core</artifactId>
7-
<version>2.2.2</version>
7+
<version>2.2.5</version>
88
<name>RDF FILE CORE</name>
99
<description>RDF FILE CORE</description>
1010
<url>https://github.com/alipay/rdf-file</url>

rdf-file-test/src/main/resources/pom/rdf-file-oss.pom

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.alipay.rdf.file</groupId>
66
<artifactId>rdf-file-oss</artifactId>
7-
<version>2.2.2</version>
7+
<version>2.2.5</version>
88
<name>RDF FILE OSS</name>
99
<description>RDF FILE OSS</description>
1010
<url>https://github.com/alipay/rdf-file</url>

rdf-file-test/src/main/resources/pom/rdf-file-sftp.pom

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.alipay.rdf.file</groupId>
66
<artifactId>rdf-file-sftp</artifactId>
7-
<version>2.2.2</version>
7+
<version>2.2.5</version>
88
<name>RDF FILE SFTP</name>
99
<description>RDF FILE SFTP</description>
1010
<url>https://github.com/alipay/rdf-file</url>

0 commit comments

Comments
 (0)