AnsweredAssumed Answered

SASubmissionServiceCxHandler - issues when copying items

Question asked by mb35216 on Mar 30, 2016
Latest reply on Jul 22, 2016 by scott.hurrey

Hey guys,

 

This might be a very simple question, but I am currently stuck and aren't sure where to look for answers.

 

My institution currently uses a custom Course Join building block which works in the following way,

 

Course that has all the content is referred to as the primary child and this is where the course Course Join is initiated from.

On the Course Join page, additional courses to be joined to the primary child are selected, these are referred to as secondary children.

Once all the courses are selected and a course join is initiated, the building block will create a new parent course, copy the content from the primary child into the parent and merge all children courses to the parent.

 

Once the join is performed and all the content is copied to the parent apart from Assignment submission point (Blackboard native Assignments)

 

The only relevant error I can find is in the bb-services log in our staging environment

2016-03-31 11:16:02 +1000 - blackboard.plugin.submissionservice.api.exceptions.SubmissionServiceException: Unexpected error occurred trying to perform copy.

  at com.blackboard.plugin.submissionservice.provider.handlers.impl.SASubmissionServiceCxHandler.performCopy(SASubmissionServiceCxHandler.java:397)

  at blackboard.plugin.submissionservice.cx.impl.SubmissionServicesCxComponent.doCopy(SubmissionServicesCxComponent.java:52)

  at blackboard.admin.persist.course.impl.clone.operator.extension.ExtensionPointCloneOperator.doContentDirectoryTranslation(ExtensionPointCloneOperator.java:61)

  at blackboard.admin.persist.course.impl.clone.AdminCourseCloneOperator.doContentDirectoryTranslation(AdminCourseCloneOperator.java:504)

  at blackboard.admin.persist.course.impl.clone.AdminCourseCloneOperator.clone(AdminCourseCloneOperator.java:270)

  at blackboard.admin.persist.course.impl.CourseSiteDbPersister$1.run(CourseSiteDbPersister.java:509)

  at java.security.AccessController.doPrivileged(Native Method)

  at blackboard.admin.persist.course.impl.CourseSiteDbPersister.clone(CourseSiteDbPersister.java:498)

  at au.edu.griffith.casam.service.impl.CourseMergeManagerImpl.createParent(CourseMergeManagerImpl.java:274)

  at au.edu.griffith.casam.web.CourseMergeRequestController.onSubmit(CourseMergeRequestController.java:164)

Below are our custom B2 permissions.  Our environment is currently on 9.1 October 2014 release CU3.

       <permissions>
            <permission type="java.lang.reflect.ReflectPermission" name="suppressAccessChecks"/>
            <permission type="java.util.PropertyPermission" name="*" actions="read,write"/>
            <permission type="blackboard.data.AttributePermission" name="user.*" actions="get"/>
            <permission type="blackboard.data.AttributePermission" name="course.*" actions="get"/>
            <permission type="blackboard.persist.PersistPermission" name="*" actions="*"/>
            <permission type="java.lang.RuntimePermission" name="accessDeclaredMembers" actions=""/>
            <permission type="java.lang.RuntimePermission" name="getClassLoader" actions="*"/>
        </permissions>

 


Performing a course join in a developer VM produced a slightly different error in bb-services log

2016-03-31 04:10:39 +0000 - java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfigur

ation

        at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)

        at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)

        at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)

        at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)

        at blackboard.xml.XmlPropertiesUtil$1.initialValue(XmlPropertiesUtil.java:60)

        at blackboard.xml.XmlPropertiesUtil$1.initialValue(XmlPropertiesUtil.java:54)

        at blackboard.xml.XmlPropertiesUtil$1.initialValue(XmlPropertiesUtil.java:54)

        at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:160)

        at java.lang.ThreadLocal.get(ThreadLocal.java:150)

        at blackboard.xml.XmlPropertiesUtil.getDocumentBuilder(XmlPropertiesUtil.java:156)

        at blackboard.xml.XmlPropertiesUtil.xmlToExtendedData(XmlPropertiesUtil.java:129)

        at blackboard.persist.impl.mapping.ExtendedDataMapping.fromXml(ExtendedDataMapping.java:102)

        at blackboard.persist.impl.mapping.ExtendedDataMapping.unmarshall(ExtendedDataMapping.java:53)

        at blackboard.persist.impl.DbBbObjectMapUnmarshaller.unmarshall(DbBbObjectMapUnmarshaller.java:116)

        at blackboard.persist.impl.DbBbObjectMapUnmarshaller.unmarshall(DbBbObjectMapUnmarshaller.java:77)

        at blackboard.persist.impl.UnmarshallSelectQuery.processRow(UnmarshallSelectQuery.java:108)

        at blackboard.persist.impl.SelectQuery.processResults(SelectQuery.java:173)

        at blackboard.persist.impl.SelectQuery.doExecute(SelectQuery.java:148)

        at blackboard.persist.impl.Query.executeQuery(Query.java:148)

        at blackboard.persist.impl.Query.executeQuery(Query.java:114)

        at blackboard.persist.impl.NewBaseDbLoader$DbConnectivityPrivilege.run(NewBaseDbLoader.java:266)

        at java.security.AccessController.doPrivileged(Native Method)

        at blackboard.persist.impl.NewBaseDbLoader.loadList(NewBaseDbLoader.java:188)

        at blackboard.persist.content.impl.ContentDbLoaderImpl.loadChildren(ContentDbLoaderImpl.java:359)

        at blackboard.persist.content.impl.ContentDbLoaderImpl.loadChildren(ContentDbLoaderImpl.java:348)

        at blackboard.persist.content.impl.ContentDbLoaderImpl.loadChildren(ContentDbLoaderImpl.java:337)

        at com.rusticisoftware.scormengineb2.util.ScormEngineB2CxComponent.addScormContentItemChildren(ScormEngineB2CxComponent.java:378)

        at com.rusticisoftware.scormengineb2.util.ScormEngineB2CxComponent.getScormContentList(ScormEngineB2CxComponent.java:367)

        at com.rusticisoftware.scormengineb2.util.ScormEngineB2CxComponent.doCopy(ScormEngineB2CxComponent.java:48)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:606)

        at blackboard.platform.extension.impl.ExtensionProxyFactory$ExtensionInvocationHandler$1.call(ExtensionProxyFactory.java:198)

        at blackboard.util.ThreadUtil$1.run(ThreadUtil.java:61)

        at java.security.AccessController.doPrivileged(Native Method)

        at blackboard.util.ThreadUtil.callWithContextClassLoader(ThreadUtil.java:53)

        at blackboard.util.ThreadUtil.callWithContextClassLoader(ThreadUtil.java:36)

        at blackboard.platform.plugin.PlugInUtilEx.callWithCurrentPlugInAndContextClassLoader(PlugInUtilEx.java:133)

        at blackboard.platform.extension.impl.ExtensionProxyFactory$ExtensionInvocationHandler.invoke(ExtensionProxyFactory.java:193)

        at com.sun.proxy.$Proxy573.doCopy(Unknown Source)

        at blackboard.admin.persist.course.impl.clone.operator.extension.ExtensionPointCloneOperator.doContentDirectoryTranslation(ExtensionPointCloneOperator.java:61)

        at blackboard.admin.persist.course.impl.clone.AdminCourseCloneOperator.doContentDirectoryTranslation(AdminCourseCloneOperator.java:504)

        at blackboard.admin.persist.course.impl.clone.AdminCourseCloneOperator.clone(AdminCourseCloneOperator.java:270)

        at blackboard.admin.persist.course.impl.CourseSiteDbPersister$1.run(CourseSiteDbPersister.java:509)

        at java.security.AccessController.doPrivileged(Native Method)

        at blackboard.admin.persist.course.impl.CourseSiteDbPersister.clone(CourseSiteDbPersister.java:498)

        at au.edu.griffith.casam.service.impl.CourseMergeManagerImpl.createParent(CourseMergeManagerImpl.java:274)

        at au.edu.griffith.casam.web.CourseMergeRequestController.onSubmit(CourseMergeRequestController.java:164)

2016-03-31 04:10:41 +0000 - Error processing event handler: com.blackboard.plugin.cx.event.handlers.impl.SACourseEventHandler - com.blackboard.plugin.cx.event.handlers.impl.SALegacyConversionException: Conversion of SafeAssignment to Assignment failed for course _19_1

        at com.blackboard.plugin.cx.util.CxHandlerUtil.convertSafeAssignToIntegratedAssignment(CxHandlerUtil.java:169)

        at com.blackboard.plugin.cx.event.handlers.impl.SACourseEventHandler.courseCloned(SACourseEventHandler.java:37)

        at blackboard.admin.persist.course.impl.clone.PostCourseCloneMessageHandler.onMessage(PostCourseCloneMessageHandler.java:78)

        at blackboard.platform.messagequeue.impl.activemq.ActiveMQMessageQueueConsumer$ConsumerThread.run(ActiveMQMessageQueueConsumer.java:188)

Caused by: java.lang.NullPointerException

        at com.blackboard.plugin.cx.util.CxHandlerUtil.convertSafeAssignToIntegratedAssignment(CxHandlerUtil.java:109)

 

Any helpful information is greatly appreciated!

Outcomes