Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

jLEMS does not appear to like multi-line XML tags

Abierto
#127 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java, xml
Área
compilers

Línea de trabajo

Reproduce el fallo con el comando pynml-channelanalysis indicado y la etiqueta neuroml multilínea. Empieza en AbstractInclusionReader.trimOuterElement y en la ruta de procesamiento de includes que se muestra en el stack trace; después comprueba cómo NeuroMLInclusionReader gestiona la entrada. Se considera terminado cuando las etiquetas de apertura XML multilínea se cargan sin el error de cierre no coincidente ni el fallo por componente ausente.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug

<neuroml
    xmlns="http://www.neuroml.org/schema/neuroml2"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.neuroml.org/schema/neuroml2 https://raw.github.com/NeuroML/NeuroML2/development/Schemas/NeuroML2/NeuroML_v2.3.1.xsd" id="kd3">
    <ionChannelHH id="kd3" species="K" conductance="10 pS">
        <annotation>
            
            <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/">
              <rdf:Description rdf:about="kd3">
                <dc:title>Potassium channel</dc:title>
                <dc:description>Potassium channel with Hodgkin-Huxley style kinetics</dc:description>
                <dc:source>
                  <rdf:Bag>
                    <rdf:li rdf:resource="https://modeldb.science/8210"/>
                  </rdf:Bag>
                </dc:source>
                <dc:creator>
                  <rdf:Bag>
                    <rdf:li rdf:resource="#Zack_Mainen"/>
                  </rdf:Bag>
                </dc:creator>
                <dc:contributor>
                  <rdf:Bag>
                    <rdf:li rdf:resource="#Volker_Steuber"/>
                    <rdf:li rdf:resource="#Padraig_Gleeson"/>
                    <rdf:li rdf:resource="#Ankur_Sinha"/>
                  </rdf:Bag>
                </dc:contributor>
              </rdf:Description>
              <rdf:Description rdf:about="#Zack_Mainen">
                <foaf:name>Zack Mainen</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Padraig_Gleeson">
                <foaf:name>Padraig Gleeson</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Ankur_Sinha">
                <foaf:name>Ankur Sinha</foaf:name>
              </rdf:Description>
              <rdf:Description rdf:about="#Volker_Steuber">
                <foaf:name>Volker Steuber</foaf:name>
              </rdf:Description>
            </rdf:RDF>

        </annotation>
        <gate id="n" instances="1" type="gateHHrates">
            <q10Settings type="q10ExpTemp" q10Factor="3" experimentalTemp="16 degC"/>
            <forwardRate type="HHNearlyExpLinearRate" rate="0.02 per_ms" midpoint="20 mV" scale="9 mV"/>
            <reverseRate type="HHNearlyExpLinearRate" rate="-0.002 per_ms" midpoint="20 mV" scale="-9 mV"/>
        </gate>
    </ionChannelHH>
    <ComponentType name="HHNearlyExpLinearRate" extends="baseHHRate" description="A HHExpLinearRate, but not quite">
        <Parameter name="scale" dimension="voltage"/>
        <Parameter name="midpoint" dimension="voltage"/>
        <Parameter name="rate" dimension="per_time"/>
        <Constant name="VOLT_SCALE" dimension="voltage" value="1 mV"/>
        <Dynamics>
            <DerivedVariable name="x" dimension="voltage" value="(v - midpoint)"/>
            <DerivedVariable name="xnodim" dimension="none" value="x / VOLT_SCALE"/>
            <ConditionalDerivedVariable name="r" dimension="per_time" exposure="r">
                <Case condition="xnodim .neq. 0" value="rate * xnodim/(1 - exp(0 - x/scale))"/>
                <Case value="rate"/>
            </ConditionalDerivedVariable>
        </Dynamics>
    </ComponentType>
</neuroml>

Just having the top neuroml tag in multiple lines makes jLEMS fail, e.g.:

pynml-channelanalysis Kd3.channel.nml
pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO -
Analysing channels from files: ['Kd3.channel.nml']

pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO - Generating LEMS file to investigate kd3 in Kd3.channel.nml, -100mV->100mV, 6.3degC
pyNeuroML >>> INFO - Loading NeuroML2 file: Kd3.channel.nml
pyNeuroML >>> INFO - Loading LEMS file: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml and running with jNeuroML
pyNeuroML >>> INFO - Executing: (java -Xmx400M  -Djava.awt.headless=true -jar  "/home/asinha/Documents/02_Code/00_mine/NeuroML/software/pyNeuroML/pyneuroml/utils/./../lib/jNeuroML-0.13.2-jar-with-dependencies.jar"  /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml  -nogui -I '') in directory: .
pyNeuroML >>> CRITICAL - *** Problem running command:
       Command 'java -Xmx400M  -Djava.awt.headless=true -jar  "/home/asinha/Documents/02_Code/00_mine/NeuroML/software/pyNeuroML/pyneuroml/utils/./../lib/jNeuroML-0.13.2-jar-with-dependencies.jar"  /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml  -nogui -I ''' returned non-zero exit status 1.
pyNeuroML >>> CRITICAL -  jNeuroML >>   jNeuroML v0.13.2
 jNeuroML >>  Loading: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml with jLEMS, NO GUI mode...
 jNeuroML >>  Aug 14, 2024 5:56:38 PM org.lemsml.jlems.io.logging.DefaultLogger msg
 jNeuroML >>  SEVERE:  (ERROR) non matching XML close in include: open tag=neuroml
 jNeuroML >>   end= ...ype>
 jNeuroML >>  </neuroml>
 jNeuroML >>  org.lemsml.jlems.core.sim.ContentError: No component found: kd3. Existing components:
 jNeuroML >>   - Component(id=holderCell_min100 type=vClampedCell)
 jNeuroML >>   - Component(id=holderCell_min80 type=null)
 jNeuroML >>   - Component(id=holderCell_min60 type=null)
 jNeuroML >>   - Component(id=holderCell_min40 type=null)
 jNeuroML >>   - Component(id=holderCell_min20 type=null)
 jNeuroML >>   - Component(id=holderCell_0 type=null)
 jNeuroML >>   - Component(id=holderCell_20 type=null)
 jNeuroML >>   - Component(id=holderCell_40 type=null)
 jNeuroML >>   - Component(id=holderCell_60 type=null)
 jNeuroML >>   - Component(id=holderCell_80 type=null)
 jNeuroML >>   - Component(id=holderCell_100 type=null)
 jNeuroML >>   - Component(id=rampCell0 type=null)
 jNeuroML >>   - Component(id=net1 type=networkWithTemperature)
 jNeuroML >>   - Component(id=sim1 type=null)
 jNeuroML >>
 jNeuroML >>    at org.lemsml.jlems.core.type.Lems.getComponent(Lems.java:290)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:424)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:471)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
 jNeuroML >>    at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
 jNeuroML >>    at org.lemsml.jlems.core.type.Lems.resolve(Lems.java:163)
 jNeuroML >>    at org.lemsml.jlems.core.sim.LemsProcess.readModel(LemsProcess.java:82)
 jNeuroML >>    at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:263)
 jNeuroML >>    at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
 jNeuroML >>    at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
 jNeuroML >>    at org.lemsml.jlems.viz.datadisplay.ControlPanel.initialise(ControlPanel.java:134)
 jNeuroML >>    at org.neuroml.export.utils.Utils.loadLemsFile(Utils.java:549)
 jNeuroML >>    at org.neuroml.export.utils.Utils.runLemsFile(Utils.java:526)
 jNeuroML >>    at org.neuroml.JNeuroML.main(JNeuroML.java:622)
 jNeuroML >>  INFO Aug 14,2024 17:56  (INFO) Loading LEMS file from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
 jNeuroML >>  INFO Aug 14,2024 17:56  (INFO) Reading from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.multiError(E.java:251)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.error(E.java:217)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.trimOuterElement(AbstractInclusionReader.java:109)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.getIncludeContent(AbstractInclusionReader.java:43)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.insertIncludes(AbstractInclusionReader.java:71)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.NeuroMLInclusionReader.insertIncludes(NeuroMLInclusionReader.java:102)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.read(AbstractInclusionReader.java:24)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:261)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
 jNeuroML >>  INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
 jNeuroML >>
pyNeuroML >>> ERROR - execute_command_in_dir returned with output:  jNeuroML v0.13.2
Loading: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml with jLEMS, NO GUI mode...
Aug 14, 2024 5:56:38 PM org.lemsml.jlems.io.logging.DefaultLogger msg
SEVERE:  (ERROR) non matching XML close in include: open tag=neuroml
 end= ...ype>
</neuroml>
org.lemsml.jlems.core.sim.ContentError: No component found: kd3. Existing components:
 - Component(id=holderCell_min100 type=vClampedCell)
 - Component(id=holderCell_min80 type=null)
 - Component(id=holderCell_min60 type=null)
 - Component(id=holderCell_min40 type=null)
 - Component(id=holderCell_min20 type=null)
 - Component(id=holderCell_0 type=null)
 - Component(id=holderCell_20 type=null)
 - Component(id=holderCell_40 type=null)
 - Component(id=holderCell_60 type=null)
 - Component(id=holderCell_80 type=null)
 - Component(id=holderCell_100 type=null)
 - Component(id=rampCell0 type=null)
 - Component(id=net1 type=networkWithTemperature)
 - Component(id=sim1 type=null)

        at org.lemsml.jlems.core.type.Lems.getComponent(Lems.java:290)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:424)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
        at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:471)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:251)
        at org.lemsml.jlems.core.type.Component.resolve(Component.java:238)
        at org.lemsml.jlems.core.type.Component.checkResolve(Component.java:215)
        at org.lemsml.jlems.core.type.Lems.resolve(Lems.java:163)
        at org.lemsml.jlems.core.sim.LemsProcess.readModel(LemsProcess.java:82)
        at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:263)
        at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
        at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)
        at org.lemsml.jlems.viz.datadisplay.ControlPanel.initialise(ControlPanel.java:134)
        at org.neuroml.export.utils.Utils.loadLemsFile(Utils.java:549)
        at org.neuroml.export.utils.Utils.runLemsFile(Utils.java:526)
        at org.neuroml.JNeuroML.main(JNeuroML.java:622)
INFO Aug 14,2024 17:56  (INFO) Loading LEMS file from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
INFO Aug 14,2024 17:56  (INFO) Reading from: /home/asinha/Documents/02_Code/00_mine/models/UCL_PHOL0009/NeuroML/tutorial2/channels/LEMS_Test_kd3.xml
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.multiError(E.java:251)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.logging.E.error(E.java:217)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.trimOuterElement(AbstractInclusionReader.java:109)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.getIncludeContent(AbstractInclusionReader.java:43)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.insertIncludes(AbstractInclusionReader.java:71)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.NeuroMLInclusionReader.insertIncludes(NeuroMLInclusionReader.java:102)
INFO Aug 14,2024 17:56  (LOG)   at org.lemsml.jlems.core.sim.AbstractInclusionReader.read(AbstractInclusionReader.java:24)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:261)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils.readLemsNeuroMLFile(Utils.java:247)
INFO Aug 14,2024 17:56  (LOG)   at org.neuroml.export.utils.Utils$1.importFile(Utils.java:538)

Needs to be tested with a simple LEMS file to confirm if the issue is in LEMS or the NeuroML export stack, though

Lenguaje dominante
Java
Estrellas
13
Forks
11
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de LEMS/jLEMS

Todos los issues de LEMS/jLEMS

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.