Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

jLEMS does not appear to like multi-line XML tags

Aperta
#127 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
java, xml
Ambito
compilers

Direzione di ricerca

Riproduci il malfunzionamento con il comando pynml-channelanalysis segnalato e il tag neuroml su più righe. Inizia da AbstractInclusionReader.trimOuterElement e dal percorso di elaborazione degli includes mostrato nello stack trace, quindi verifica come NeuroMLInclusionReader gestisce l’input. Il lavoro è completato quando i tag di apertura XML su più righe vengono caricati senza l’errore di chiusura non corrispondente né l’errore dovuto a un componente mancante.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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

Lingua principale
Java
Stelle
13
Fork
11
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di LEMS/jLEMS

Tutte le issue di LEMS/jLEMS

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.