diff --git a/src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java b/src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java index 9d499288b..f5b85b07d 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java +++ b/src/main/java/com/github/_1c_syntax/bsl/reader/designer/converter/RoleConverter.java @@ -22,6 +22,7 @@ package com.github._1c_syntax.bsl.reader.designer.converter; import com.github._1c_syntax.bsl.mdo.Role; +import com.github._1c_syntax.bsl.mdo.storage.RoleData; import com.github._1c_syntax.bsl.reader.common.converter.AbstractReadConverter; import com.github._1c_syntax.bsl.reader.common.xstream.ExtendXStream; import com.thoughtworks.xstream.converters.UnmarshallingContext; @@ -38,8 +39,15 @@ public class RoleConverter extends AbstractReadConverter { @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { var readerContext = super.read(reader, context); - readerContext.setValue(DATA_FIELD, - ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath(), readerContext.getName()))); + RoleData data; + try { + data = (RoleData) ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath(), readerContext.getName())); + } catch (Exception e) { + // ничего не делаем, считаем файл битым + data = RoleData.EMPTY; + } + + readerContext.setValue(DATA_FIELD, data); return readerContext.build(); } diff --git a/src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java b/src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java index 9c7b8c073..895300aac 100644 --- a/src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java +++ b/src/main/java/com/github/_1c_syntax/bsl/reader/edt/converter/RoleConverter.java @@ -22,6 +22,7 @@ package com.github._1c_syntax.bsl.reader.edt.converter; import com.github._1c_syntax.bsl.mdo.Role; +import com.github._1c_syntax.bsl.mdo.storage.RoleData; import com.github._1c_syntax.bsl.reader.common.converter.AbstractReadConverter; import com.github._1c_syntax.bsl.reader.common.xstream.ExtendXStream; import com.thoughtworks.xstream.converters.UnmarshallingContext; @@ -37,7 +38,15 @@ public class RoleConverter extends AbstractReadConverter { @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { var readerContext = super.read(reader, context); - readerContext.setValue(DATA_FIELD, ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath()))); + RoleData data; + try { + data = (RoleData) ExtendXStream.read(reader, dataPath(readerContext.getCurrentPath())); + } catch (Exception e) { + // ничего не делаем, считаем файл битым + data = RoleData.EMPTY; + } + + readerContext.setValue(DATA_FIELD, data); return readerContext.build(); }