Skip to main content

Modules List Throws Error if Building Block Install Job Fails

If a B2 (Building Block) install job for a SaaS instance fails, after the Environment is accessed, navigating to System Admin > Tabs and Modules > Modules will throw a Null Pointer Exception.

Description

If a B2 (Building Block) install job for a SaaS instance fails, after the Environment is accessed, navigating to System Admin > Tabs and Modules > Modules will throw a Null Pointer Exception.

Symptoms

java.lang.NullPointerException 
at blackboard.webapps.portal.struts.ManageModulesAction.pluginIsAvailable(ManageModulesAction.java:325) 
at blackboard.webapps.portal.struts.ManageModulesAction.processSearch(ManageModulesAction.java:272) 
at blackboard.webapps.portal.struts.ManageModulesAction.initPageForDisplay(ManageModulesAction.java:133)
at blackboard.webapps.portal.struts.ManageModulesAction.execute(ManageModulesAction.java:107) 
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.doGet(ActionServlet.java:446) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) 
at blackboard.struts.BbActionServlet.service(BbActionServlet.java:103) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
at sun.reflect.GeneratedMethodAccessor492.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.platform.servlet.DevNonceFilter.doFilter(DevNonceFilter.java:68) 
at sun.reflect.GeneratedMethodAccessor445.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:137) 
at sun.reflect.GeneratedMethodAccessor445.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.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:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
at java.lang.Thread.run(Thread.java:748)

Steps to Replicate

After a B2 install fails in a SaaS Environment:

  1. Log into Blackboard Learn as a System Administrator

  2. Navigate to System Admin > [Communities] Tabs and Modules > Modules

Expected Behavior:

The Modules page loads
​Observed Behavior:

An error occurred. Contact the System Administrator.
For reference, the Error ID is
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
<timestamp>

Target Release

Will Not Fix

Did this answer your question?