Behind the Blackboard! Export/Archive, Deletion, Conversion and B2 to LTI Migration Failure due to "StringIndexOutOfBoundsException" on "OscBasicLTICxComponent" - Behind the Blackboard Skip Navigation
Download PDF  Icon Download PDF    Print article

Export/Archive, Deletion, Conversion and B2 to LTI Migration Failure due to "StringIndexOutOfBoundsException" on "OscBasicLTICxComponent"

Date Published: May 06,2024


CategoryPlanned First Fix Release:Will Not Fix; Product:Troubleshooting Guides; Version:Learn
Article No.: 000078638

Introduction:

Failures have been reported to the company caused by StringIndexOutOfBoundsException in a common third party Building Block. This will not be fixed. To prevent these issues set the "Oscelot Basic LTI" B2 to Inactive.

Functionality:

Aside from explicit user-initiated export/archive tasks and the Automatic Archive process, before doing certain actions such as deleting a course, converting it to Ultra or performing B2 to LTI migration on it, the application performs an archive operation. If this essential prologue fails: then the main action usually is also cancelled.

Technologies:

A sample exception is:
 
Apr 2, 2024 11:01:27 AM - [ERROR] Error: An unexpected error occurred during Basic LTI tools processing.
For more information, consult the detailed log.
Apr 2, 2024 11:01:27 AM - [DEBUG] Debug: java.lang.StringIndexOutOfBoundsException: start 1, end 0, length 0
at java.base/java.lang.AbstractStringBuilder.checkRangeSIOOBE(AbstractStringBuilder.java:1724)
at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1017)
at java.base/java.lang.StringBuilder.substring(StringBuilder.java:89)
at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:968)
at java.base/java.lang.StringBuilder.substring(StringBuilder.java:89)
at com.spvsoftwareproducts.blackboard.utils.B2Context.processCourseExport(B2Context.java:2878)
at org.oscelot.blackboard.utils.OscBasicLTICxComponent.doExport(OscBasicLTICxComponent.java:242)

The exception "java.lang.StringIndexOutOfBoundsException" is fairly generic and could be caused by various data issues. Look for a stack frame that refers to "com.spvsoftwareproducts" or "org.oscelot.blackboard.utils.OscBasicLTICxComponent" — as shown here on the last and second-to-last lines — to confirm that the issue is the same one described here.

Information:

Steven P. Vickers, the publisher of the B2 in question has indicated that the B2 is EOL:
  • https://github.com/celtic-project/bb-basiclti/issues/13
Thus: issues with this B2 will not be fixed. This B2 was granted a temporary exemption to assist customers in converting to the Blackboard Learn 'built-in' support for LTI. The "Oscelot Basic LTI B2" is a third party product and is not necessary for LTI in Learn. As part of the previously announced deprecation of the third-party B2 SDK for removal most third party B2s have already been disabled; a few have been granted extensions.

For information concerning the end of support for third party B2s in Learn refer to KB № 000075625 — Building Block Support Bulletin

Common Issues:

It isn't sufficient to set the building block to unavailable, it should be set to inactive. When a B2 is set to "unavailable" it can still execute code and the issue is occurring because this B2 registers callback 'hooks' with Learn. When the content-exchange event occurs: Learn executes all callbacks to third party b2s. The B2 must be set to inactive.

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. © 2024 Blackboard Inc. All rights reserved