Skip to content

Commit bc9178a

Browse files
authored
Добавлена обработка ошибки чтения содержимого xdto пакета (#559)
* Добавлена обработка ошибки чтения содержимого xdto пакета * Revert "Добавлена обработка ошибки чтения содержимого xdto пакета" This reverts commit ad64a2f.
1 parent 953217c commit bc9178a

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/XDTOPackageConverter.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
package com.github._1c_syntax.bsl.reader.designer.converter;
2323

2424
import com.github._1c_syntax.bsl.mdo.XDTOPackage;
25+
import com.github._1c_syntax.bsl.mdo.storage.XdtoPackageData;
2526
import com.github._1c_syntax.bsl.reader.common.converter.AbstractReadConverter;
2627
import com.github._1c_syntax.bsl.reader.common.xstream.ExtendXStream;
2728
import com.thoughtworks.xstream.converters.UnmarshallingContext;
@@ -38,8 +39,16 @@ public class XDTOPackageConverter extends AbstractReadConverter {
3839
@Override
3940
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
4041
var readerContext = super.read(reader, context);
41-
readerContext.setValue(DATA_FIELD,
42-
ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath(), readerContext.getName())));
42+
XdtoPackageData data;
43+
try {
44+
data = (XdtoPackageData) ExtendXStream.read(reader,
45+
dataPath(readerContext.getCurrentPath(), readerContext.getName()));
46+
} catch (Exception e) {
47+
// ничего не делаем, считаем файл битым
48+
data = XdtoPackageData.EMPTY;
49+
}
50+
51+
readerContext.setValue(DATA_FIELD, data);
4352
return readerContext.build();
4453
}
4554

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/XDTOPackageConverter.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
package com.github._1c_syntax.bsl.reader.edt.converter;
2323

2424
import com.github._1c_syntax.bsl.mdo.XDTOPackage;
25+
import com.github._1c_syntax.bsl.mdo.storage.XdtoPackageData;
2526
import com.github._1c_syntax.bsl.reader.common.converter.AbstractReadConverter;
2627
import com.github._1c_syntax.bsl.reader.common.xstream.ExtendXStream;
2728
import com.thoughtworks.xstream.converters.UnmarshallingContext;
@@ -37,7 +38,15 @@ public class XDTOPackageConverter extends AbstractReadConverter {
3738
@Override
3839
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
3940
var readerContext = super.read(reader, context);
40-
readerContext.setValue(DATA_FIELD, ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath())));
41+
XdtoPackageData data;
42+
try {
43+
data = (XdtoPackageData) ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath()));
44+
} catch (Exception e) {
45+
// ничего не делаем, считаем файл битым
46+
data = XdtoPackageData.EMPTY;
47+
}
48+
49+
readerContext.setValue(DATA_FIELD, data);
4150
return readerContext.build();
4251
}
4352

0 commit comments

Comments
 (0)