Skip to content

Commit c691c40

Browse files
authored
Добавлена обработка ошибки чтения содержимого прав роли (#564)
1 parent 37be919 commit c691c40

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

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

Lines changed: 10 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.Role;
25+
import com.github._1c_syntax.bsl.mdo.storage.RoleData;
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,15 @@ public class RoleConverter 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+
RoleData data;
43+
try {
44+
data = (RoleData) ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath(), readerContext.getName()));
45+
} catch (Exception e) {
46+
// ничего не делаем, считаем файл битым
47+
data = RoleData.EMPTY;
48+
}
49+
50+
readerContext.setValue(DATA_FIELD, data);
4351
return readerContext.build();
4452
}
4553

src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.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.Role;
25+
import com.github._1c_syntax.bsl.mdo.storage.RoleData;
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 RoleConverter 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+
RoleData data;
42+
try {
43+
data = (RoleData) ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath()));
44+
} catch (Exception e) {
45+
// ничего не делаем, считаем файл битым
46+
data = RoleData.EMPTY;
47+
}
48+
49+
readerContext.setValue(DATA_FIELD, data);
4150
return readerContext.build();
4251
}
4352

0 commit comments

Comments
 (0)