Uploaded image for project: 'Forms'
  1. Forms
  2. FORMS-783

Model of form question should be computed only once

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 2.29.0
    • None
    • None
    • None
    • 4.10 RC1
    • Oui

      Currently model of a form question is computed each time calling question.getValue("xxx").

      As model is computed by browsing all question type extension point, it should be computed only once.

      Moreover the model computation should be synchronized. Indeed when indexing, the computation is accessed by multiple indexing threads. It seems that this concurrent access is responsible for NPE during full indexation.

      Pile d'appels :
      java.lang.NullPointerException: Cannot invoke "org.ametys.runtime.model.ModelItem.setModel(org.ametys.runtime.model.Model)" because "modelItem" is null
      at org.ametys.runtime.model.Model#of:57
      at org.ametys.plugins.forms.question.types.AbstractStaticFormQuestionType#getModel:178
      at org.ametys.plugins.forms.repository.FormQuestionFactory#createFormQuestionModel:97
      at org.ametys.plugins.forms.repository.FormQuestionFactory#getModel:83
      at org.ametys.cms.repository.SimpleIndexableAmetysObject#getDataHolder:67
      at org.ametys.cms.repository.SimpleIndexableAmetysObject#getDataHolder:50
      at org.ametys.plugins.repository.AbstractAmetysObject#getValue:121
      at org.ametys.plugins.forms.repository.FormQuestion#getType:99
      at org.ametys.plugins.forms.dao.FormEntryDAO#getFormEntryModel:573
      at org.ametys.plugins.forms.repository.FormEntryFactory#getModel:67
      at org.ametys.cms.repository.SimpleIndexableAmetysObject#getDataHolder:67
      at org.ametys.cms.repository.SimpleIndexableAmetysObject#getDataHolder:50
      at org.ametys.plugins.repository.jcr.SimpleModelAwareAmetysObject#getModel:241
      at org.ametys.cms.repository.SimpleIndexableAmetysObject#indexData:77
      at org.ametys.plugins.forms.indexing.solr.SolrFormEntryIndexer#_indexFormEntry:185
      at org.ametys.plugins.forms.indexing.solr.SolrFormEntryIndexer#indexFormEntry:135
      at org.ametys.plugins.forms.indexing.solr.SolrFormEntryIndexer$FormEntryIndexerCallable#process:294
      at org.ametys.plugins.forms.indexing.solr.SolrFormEntryIndexer$FormEntryIndexerCallable#process:278
      
      java.lang.NullPointerException: Cannot invoke "org.ametys.runtime.model.ModelItem.setModel(org.ametys.runtime.model.Model)" because "modelItem" is null
      	at org.ametys.runtime.model.Model.of(Model.java:57)
      	at org.ametys.plugins.forms.question.types.AbstractStaticFormQuestionType.getModel(AbstractStaticFormQuestionType.java:178)
      	at org.ametys.plugins.forms.repository.FormQuestionFactory.createFormQuestionModel(FormQuestionFactory.java:97)
      	at org.ametys.plugins.forms.repository.FormQuestionFactory.getModel(FormQuestionFactory.java:83)
      	at org.ametys.cms.repository.SimpleIndexableAmetysObject.getDataHolder(SimpleIndexableAmetysObject.java:67)
      	at org.ametys.cms.repository.SimpleIndexableAmetysObject.getDataHolder(SimpleIndexableAmetysObject.java:1)
      	at org.ametys.plugins.repository.AbstractAmetysObject.getValue(AbstractAmetysObject.java:121)
      	at org.ametys.plugins.forms.repository.FormQuestion.getType(FormQuestion.java:99)
      	at org.ametys.plugins.forms.dao.FormEntryDAO.getFormEntryModel(FormEntryDAO.java:573)
      	at org.ametys.plugins.forms.repository.FormEntryFactory.getModel(FormEntryFactory.java:67)
      

      Autre log d'erreur vu:

      java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6
      	at java.base/java.util.LinkedHashMap.valuesToArray(LinkedHashMap.java:688)
      	at java.base/java.util.LinkedHashMap$LinkedValues.toArray(LinkedHashMap.java:817)
      	at java.base/java.util.ArrayList.addAll(ArrayList.java:752)
      	at org.ametys.plugins.forms.question.types.impl.ComputedQuestionType._getModelItems(ComputedQuestionType.java:104)
      	at org.ametys.plugins.forms.question.types.AbstractStaticFormQuestionType.getModel(AbstractStaticFormQuestionType.java:176)
      

            laurence Laurence Aumeunier
            laurence Laurence Aumeunier
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: