использование новых версий библиотек supportconf и common library#529
Conversation
WalkthroughОбновлены версии зависимостей. В логике чтения поддержки заменены вызовы ParseSupportData: вместо getSupportVariantByMDO()/readSimple теперь используются get()/read с проверками на null и существование файла. Добавлены условия: пропуск чтения при отсутствии UUID и при отсутствии ParentConfigurations.bin. Изменены импорты без изменения логики. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Caller
participant MDReaderContext
participant ParseSupportData
Caller->>MDReaderContext: new(..., uuid, currentPath)
alt uuid != null
MDReaderContext->>ParseSupportData: get(uuid, currentPath)
ParseSupportData-->>MDReaderContext: SupportVariant
else uuid == null
note right of MDReaderContext: SupportVariant.NONE
end
MDReaderContext-->>Caller: instance initialized
sequenceDiagram
autonumber
actor Client
participant Reader as DesignerReader/EDTReader
participant FS as FileSystem
participant ParseSupportData
Client->>Reader: read(skipSupport=false)
Reader->>FS: check ParentConfigurations.bin exists
alt exists
Reader->>ParseSupportData: read(ParentConfigurations.bin)
ParseSupportData-->>Reader: support data loaded
else not exists
note right of Reader: пропуск чтения поддержки
end
Reader-->>Client: result
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
build.gradle.kts(1 hunks)src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java(1 hunks)src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java(2 hunks)src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/AbstractReadConverter.java(1 hunks)src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java(1 hunks)src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
- GitHub Check: build (17, ubuntu-latest)
- GitHub Check: build (23, ubuntu-latest)
- GitHub Check: build (17, windows-latest)
- GitHub Check: build (23, macOS-latest)
- GitHub Check: build (23, windows-latest)
- GitHub Check: build (21, windows-latest)
- GitHub Check: build (17, macOS-latest)
- GitHub Check: build (21, ubuntu-latest)
- GitHub Check: QA
- GitHub Check: build (23, ubuntu-latest)
- GitHub Check: build (23, windows-latest)
- GitHub Check: build (21, windows-latest)
- GitHub Check: build (17, macOS-latest)
- GitHub Check: build (23, macOS-latest)
- GitHub Check: build (17, ubuntu-latest)
- GitHub Check: build (17, windows-latest)
- GitHub Check: build (21, macOS-latest)
- GitHub Check: build (21, ubuntu-latest)
🔇 Additional comments (5)
build.gradle.kts (1)
62-66: LGTM! Обновление версий зависимостей выглядит корректным.Версии библиотек обновлены согласно целям PR:
bsl-common-library: 0.9.0.16-SNAPSHOT → 0.9.0.18-SNAPSHOTsupportconf: 0.14.3 → 0.15.0.7-SNAPSHOTИсключение
bsl-common-libraryизsupportconfсохранено, что предотвращает конфликты зависимостей.Примечание: Использование SNAPSHOT-версий допустимо для ветки develop.
src/main/java/com/github/_1c_syntax/bsl/reader/edt/EDTReader.java (1)
117-120: LGTM! Добавлена проверка существования файла.Код теперь проверяет наличие
ParentConfigurations.binперед чтением, что предотвращает ошибки при отсутствии файла. ИспользованиеParseSupportData.read()соответствует обновлённому API библиотеки.src/main/java/com/github/_1c_syntax/bsl/reader/common/converter/AbstractReadConverter.java (1)
23-37: LGTM! Явные импорты улучшают читаемость.Импорты сделаны явными без изменения функциональности класса.
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDReaderContext.java (1)
97-101: LGTM! Корректная обработка null-значения uuid.Добавлена проверка на null перед вызовом
ParseSupportData.get(), с безопасным значением по умолчаниюSupportVariant.NONE. Это предотвращает потенциальные ошибки при отсутствии UUID.src/main/java/com/github/_1c_syntax/bsl/reader/designer/DesignerReader.java (1)
113-116: LGTM! Добавлена проверка существования файла.Реализован тот же защитный паттерн, что и в
EDTReader: проверка существованияParentConfigurations.binперед чтением. Это обеспечивает согласованность между читателями и повышает надёжность кода.
| var uuid = reader.getAttribute(UUID_FIELD_NAME); | ||
| supportVariant = ParseSupportData.getSupportVariantByMDO(uuid, currentPath); | ||
| supportVariant = ParseSupportData.get(uuid, currentPath); |
There was a problem hiding this comment.
Добавьте проверку на null для uuid.
В методе reader.getAttribute(UUID_FIELD_NAME) может вернуться null. При вызове ParseSupportData.get(uuid, currentPath) с null-значением uuid может возникнуть ошибка или некорректное поведение.
В MDReaderContext (строки 97-101) реализована null-safe обработка uuid. Рекомендуется применить аналогичный подход здесь для согласованности и надёжности.
Примените этот diff:
var uuid = reader.getAttribute(UUID_FIELD_NAME);
-supportVariant = ParseSupportData.get(uuid, currentPath);
+if (uuid != null) {
+ supportVariant = ParseSupportData.get(uuid, currentPath);
+} else {
+ supportVariant = SupportVariant.NONE;
+}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| var uuid = reader.getAttribute(UUID_FIELD_NAME); | |
| supportVariant = ParseSupportData.getSupportVariantByMDO(uuid, currentPath); | |
| supportVariant = ParseSupportData.get(uuid, currentPath); | |
| var uuid = reader.getAttribute(UUID_FIELD_NAME); | |
| if (uuid != null) { | |
| supportVariant = ParseSupportData.get(uuid, currentPath); | |
| } else { | |
| supportVariant = SupportVariant.NONE; | |
| } |
🤖 Prompt for AI Agents
In
src/main/java/com/github/_1c_syntax/bsl/reader/common/context/MDCReaderContext.java
around lines 79-80, add a null-check for the uuid returned by
reader.getAttribute(UUID_FIELD_NAME) before calling ParseSupportData.get(uuid,
currentPath); if uuid is null replace it with an empty string (or otherwise use
the same null-safe handling implemented in MDReaderContext at lines 97-101) and
then call ParseSupportData.get with the non-null value to avoid potential NPEs
or incorrect behavior.
|



Описание
Связанные задачи
Closes
Чеклист
Общие
gradlew precommit)Дополнительно