Skip to content

Commit

Permalink
SAK-49575 Sometimes some answers are interchanged when clicking Solut…
Browse files Browse the repository at this point in the history
…ion - S2U-10 - MASTER (sakaiproject#12199)
  • Loading branch information
jesusmmp authored Dec 19, 2023
1 parent 10c0347 commit fe41cc4
Showing 1 changed file with 8 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.stream.Collectors;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
Expand Down Expand Up @@ -1292,15 +1293,14 @@ public String checkSolution() {
ItemTextIfc text = (ItemTextIfc) item.getItemTextArraySorted().toArray()[0];
List<FinBean> fins = new ArrayList<FinBean>();
List<AnswerIfc> calcQuestionEntities = text.getAnswerArraySorted();
Iterator<AnswerIfc> iter = calcQuestionEntities.iterator();
while (iter.hasNext()) {
AnswerIfc answer = iter.next();

// Checks if the 'answer' object is a variable, a global variable or a real answer
if (StringUtils.isEmpty(answersMapValues.get(answer.getLabel()))) {
continue;
}
// Converting to map
Map<String, AnswerIfc> calcQuestionEntitiesMap = calcQuestionEntities.stream()
.collect(Collectors.toMap(AnswerIfc::getLabel, answerIfc -> answerIfc, (existing, replacement) -> existing, LinkedHashMap::new));

// AnswerMapValues contains real answers on right order
for (Map.Entry<String, String> entry : answersMapValues.entrySet()) {
AnswerIfc answer = calcQuestionEntitiesMap.get(entry.getKey());
ItemGradingData data = new ItemGradingData();
String answerKey = (String)answersMapValues.get(answer.getLabel());
int decimalPlaces = Integer.valueOf(answerKey.substring(answerKey.indexOf(',')+1, answerKey.length()));
Expand Down Expand Up @@ -1338,7 +1338,7 @@ public String checkSolution() {
itemBean.setItemGradingDataArray(datas);

FinBean fbean = new FinBean();
if (texts.toArray().length > i) {
if (texts.get(0).toArray().length > i) {
fbean.setText( (String) texts.get(0).toArray()[i]);
}
else {
Expand Down

0 comments on commit fe41cc4

Please sign in to comment.