Behind the Blackboard! When Creating Matching Questions Instructors Receive IndexOutOfBoundsException: Index: 4, Size: 4 Error Message if Reusing a Question - Behind the Blackboard Skip Navigation
Download PDF  Icon Download PDF    Print article

When Creating Matching Questions Instructors Receive IndexOutOfBoundsException: Index: 4, Size: 4 Error Message if Reusing a Question

Date Published: Jan 11,2019


CategoryPlanned First Fix Release:Future Reference; Product:Course Tools,Extensions; Version:Learn 9.1 Q4 2017 (3300.0.0),Learn 9.1 Q2 2018 (3400.0.0),Learn 9.1 Q4 2018 (3500.0.0),Learn 9.1 Q2 2019,SaaS
Article No.: 000050115
Product:
Blackboard Learn
Release:
9.1;SaaS
Service Pack(s):
Learn 9.1 Q4 2017 (3300.0.0), Learn 9.1 Q2 2018 (3400.0.0), Learn 9.1 Q4 2018 (3500.0.0), Learn 9.1 Q2 2019, SaaS
Issue Description:
When creating matching questions, Instructors receive IndexOutOfBoundsException: Index: 4, Size: 4 error message if reuse a question.
Steps to Repeat:
  1. Login to Environment as Admin
  2. Create a new Course shell or access an existing one
  3. Enroll yourself to the Course or enroll a new or existing User as Instructor
  4. Login as test User
  5. Access test Course
  6. Go to: Course > Control Panel > Tests, Surveys, and Pools > Tests
  7. Build a new Test > Build Test > assign any name (e.g. bbsupport test)
  8. Create a new Matching type question: Create question > Matching
  9. Increase the Number of Questions to 6 and press the Update Partial Credit % (Sometimes we need to re-try this step many times)
  10. Scroll down to check if new 2 questions were added/if the percentages are correct. For our case the "Partial Credit %" was updated to 16.66667
  11. Enter questions and answers, use the "Reuse Answer Choice from" option on Question 5 and Question 6; select Answer/Question 1 to use in both ones
  12. Press submit

Expected Behavior:
Instructor would create a new question

Observed Behavior:
Instructor sees this error:

Index: 4, Size: 4
For reference, the Error ID is ad5445c4-a0e8-4dac-af6d-aa01b160b723.
Wednesday, December 26, 2018 1:43:07 PM EST

Symptoms:

java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
 at java.util.ArrayList.rangeCheck(ArrayList.java:657)
 at java.util.ArrayList.set(ArrayList.java:448)
 at blackboard.data.qti.asi.item.ResponseFlowBlock.setFlowStructure(ResponseFlowBlock.java:107)
 at blackboard.apis.assessment.MatchingQuestionWrapper$RightMatchList.reorderRightMatch(MatchingQuestionWrapper.java:216)
 at blackboard.webapps.assessment.MatchingQuestionOrderHelper.reorder(MatchingQuestionOrderHelper.java:122)
 at blackboard.webapps.assessment.MatchingQuestionOrderHelper.orderAnswers(MatchingQuestionOrderHelper.java:34)
 at blackboard.webapps.assessment.struts.actions.ModifyMatchingQuestionAction.orderAnswers(ModifyMatchingQuestionAction.java:479)
 at blackboard.webapps.assessment.struts.actions.ModifyMatchingQuestionAction.saveForm(ModifyMatchingQuestionAction.java:428)
 at blackboard.webapps.assessment.struts.actions.ModifyQuestionAction.execute(ModifyQuestionAction.java:178)
 at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
 at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
 at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
 at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
 at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
 at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
 at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
 at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
 at blackboard.struts.BbActionServlet.service(BbActionServlet.java:109)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
 at sun.reflect.GeneratedMethodAccessor637.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
 at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
 at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:170)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:224)
 at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
 at blackboard.webapps.assessment.AssessmentUpgradeFilter.doFilter(AssessmentUpgradeFilter.java:53)
 at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
 at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
 at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)
 at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
 at blackboard.platform.servlet.DevNonceFilter.doFilter(DevNonceFilter.java:68)
 at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
 at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
 at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)
 at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
 at blackboard.platform.servlet.B2ContextFilter.doFilter(B2ContextFilter.java:81)
 at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
 at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
 at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)
 at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
 at blackboard.platform.servlet.RequestSecurityFilter.doFilter(RequestSecurityFilter.java:77)
 at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:282)
 at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:279)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:549)
 at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:314)
 at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)
 at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:46)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:148)
 at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:144)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
 at org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:580)
 at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)
 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
 at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677)
 at blackboard.tomcat.valves.LoggingRemoteIpValve.invoke(LoggingRemoteIpValve.java:44)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.lang.Thread.run(Thread.java:748)




Target Release:

Future Reference

Patch Available:

No






The information contained in the Knowledge Base was written and/or verified by Blackboard Support. It is approved for client use. Nothing in the Knowledge Base shall be deemed to modify your license in any way to any Blackboard product. If you have comments, questions, or concerns, please send an email to kb@blackboard.com. © 2019 Blackboard Inc. All rights reserved