1c-syntax / bsl-language-server

Реализация Language Server Protocol для языка 1C (BSL)
https://1c-syntax.github.io/bsl-language-server
Other
293 stars 105 forks source link

Ошибка чтения роли. #3274

Closed Asakra closed 2 months ago

Asakra commented 2 months ago

При сканировании расширения в лог выводится ошибка чтения роли. Расширение из файлов загружается. Подскажите, в чем может быть причина?

ERROR: Can't read file 'D:\repo\runners\GitLab\builds\nVsykeMG\0\1C\Projects\Account\src\ext\Roles\ПолныеПрава\Ext\Rights.xml' - it's broken 
 : 
 com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: Duplicate field name
 ---- Debugging information ----
 message             : Duplicate field name
 field               : name
 class               : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 required-type       : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
 line number         : 122
 class[1]            : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 required-type[1]    : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 version             : not available
 -------------------------------
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$3.add(AbstractReflectionConverter.java:287)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:457)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:445)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
    at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1421)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:13[99](http://gitlabserver/1C/Projects/Account/BY/-/jobs/2330#L99))
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1365)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1315)
    at com.github._1c_syntax.mdclasses.unmarshal.XStreamFactory.fromXML(XStreamFactory.java:145)
    at com.github._1c_syntax.mdclasses.utils.MDOFactory.readRoleData(MDOFactory.java:110)
    at com.github._1c_syntax.mdclasses.mdo.MDRole.supplement(MDRole.java:67)
    at java.base/java.util.Optional.ifPresent(Unknown Source)
    at com.github._1c_syntax.mdclasses.utils.MDOFactory.readMDObject(MDOFactory.java:65)
    at java.base/java.util.Optional.flatMap(Unknown Source)
    at com.github._1c_syntax.mdclasses.mdo.MDConfiguration.readChildMDO(MDConfiguration.java:242)
    at com.github._1c_syntax.mdclasses.mdo.MDConfiguration.lambda$computeAllMDObject$3(MDConfiguration.java:226)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source)
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
 ERROR: Can't parse configuration metadata. Execution exception.
 java.util.concurrent.ExecutionException: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: Duplicate field name
 ---- Debugging information ----
 message             : Duplicate field name
 field               : name
 class               : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 required-type       : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
 line number         : 122
 class[1]            : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 required-type[1]    : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 version             : not available
 -------------------------------
    at java.base/java.util.concurrent.ForkJoinTask.reportExecutionException(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinTask.get(Unknown Source)
    at com.github._1c_syntax.bsl.languageserver.context.ServerContext.computeConfigurationMetadata(ServerContext.java:289)
    at com.github._1c_syntax.utils.Lazy.maybeCompute(Lazy.java:76)
    at com.github._1c_syntax.utils.Lazy.getOrCompute(Lazy.java:53)
    at com.github._1c_syntax.utils.Lazy.getOrCompute(Lazy.java:61)
    at com.github._1c_syntax.bsl.languageserver.context.ServerContext.getConfiguration(ServerContext.java:262)
    at com.github._1c_syntax.bsl.languageserver.context.DocumentContext.getMdObject(DocumentContext.java:249)
    at com.github._1c_syntax.bsl.languageserver.utils.MdoRefBuilder.getMdoRef(MdoRefBuilder.java:59)
    at com.github._1c_syntax.bsl.languageserver.context.ServerContext.addMdoRefByUri(ServerContext.java:307)
    at com.github._1c_syntax.bsl.languageserver.context.ServerContext.createDocumentContext(ServerContext.java:271)
    at com.github._1c_syntax.bsl.languageserver.context.ServerContext.lambda$populateContext$0(ServerContext.java:116)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.ForEachOps$ForEachTask.compute(Unknown Source)
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
 Caused by: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: Duplicate field name
 ---- Debugging information ----
 message             : Duplicate field name
 field               : name
 class               : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 required-type       : com.github._1c_syntax.mdclasses.mdo.support.ObjectRight
 converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
 line number         : 122
 class[1]            : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 required-type[1]    : com.github._1c_syntax.mdclasses.mdo.support.RoleData
 version             : not available
 -------------------------------
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$3.add(AbstractReflectionConverter.java:287)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:457)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:445)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:277)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:74)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:68)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:52)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:136)
    at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1421)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1399)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1365)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1315)
    at com.github._1c_syntax.mdclasses.unmarshal.XStreamFactory.fromXML(XStreamFactory.java:145)
    at com.github._1c_syntax.mdclasses.utils.MDOFactory.readRoleData(MDOFactory.java:[110](http://gitlabserver/1C/Projects/Account/BY/-/jobs/2330#L110))
    at com.github._1c_syntax.mdclasses.mdo.MDRole.supplement(MDRole.java:67)
    at java.base/java.util.Optional.ifPresent(Unknown Source)
    at com.github._1c_syntax.mdclasses.utils.MDOFactory.readMDObject(MDOFactory.java:65)
    at java.base/java.util.Optional.flatMap(Unknown Source)
    at com.github._1c_syntax.mdclasses.mdo.MDConfiguration.readChildMDO(MDConfiguration.java:242)
    at com.github._1c_syntax.mdclasses.mdo.MDConfiguration.lambda$computeAllMDObject$3(MDConfiguration.java:226)
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source)
    ... 6 common frames omitted
nixel2007 commented 2 months ago

Можете приложить xml с ролью?

Asakra commented 2 months ago

Никита, спасибо за наводку! Нашел ошибку в файле. Странно, что при этом 1С загружает это расширение из файлов. В одном из объектов было два тэга name.

<object>
    <name>HTTPService.ЧтениеДанных.URLTemplate.Request.Method.GET</name>
    <name>DataProcessor.СверкаБП_УХ</name>
    <right>
        <name>Use</name>
        <value>true</value>
    </right>
</object>
nixel2007 commented 2 months ago

Как интересно) спасибо за репорт!