deason %!s(int64=4) %!d(string=hai) anos
pai
achega
e39e595b3d

+ 8 - 4
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/ExamQuestionOuterServiceProvider.java

@@ -239,7 +239,6 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
         //所有试题信息
         List<OuterQuestionBean> allQuestions = outletPaperStructService.getPaperStructQuestions(
                 req.getExamId(), course.getCode(), QuestionCategory.SUBJECTIVE);
-        RichTextHandler complexRichTextHandler = RichTextHandlerFactory.getHandler("complex");
 
         for (OuterQuestionBean subQues : subjectiveQuestions) {
             OuterSubjectivePaperQuestionBean subPaperQues=new OuterSubjectivePaperQuestionBean();
@@ -249,9 +248,14 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
             String strParentBody=getParentBody(cachedQues);
             String strBody=getBody(subQues.getSubNumber(), subQues.getQuestionId(), cachedQues, allQuestions);
 
-            subPaperQues.setAnswer(transferFrom(complexRichTextHandler.handle(strAnswer)));
-            subPaperQues.setParentBody(transferFrom(complexRichTextHandler.handle(strParentBody)));
-            subPaperQues.setBody(transferFrom(complexRichTextHandler.handle(strBody)));
+            //注意:ComplexTextHandler类中有公共字段,需要多例,不能搞成单例,否则会出问题
+            RichTextHandler answerComplexRichTextHandler = RichTextHandlerFactory.getHandler("complex");
+            RichTextHandler parentBodyComplexRichTextHandler = RichTextHandlerFactory.getHandler("complex");
+            RichTextHandler bodyComplexRichTextHandler = RichTextHandlerFactory.getHandler("complex");
+
+            subPaperQues.setAnswer(transferFrom(answerComplexRichTextHandler.handle(strAnswer)));
+            subPaperQues.setParentBody(transferFrom(parentBodyComplexRichTextHandler.handle(strParentBody)));
+            subPaperQues.setBody(transferFrom(bodyComplexRichTextHandler.handle(strBody)));
 
             subPaperQues.setMainNumber(subQues.getMainNumber());
             subPaperQues.setSubNumber(subQues.getSubNumber());