Administrators Cannot see Announcements in Unavailable Courses




 
Administrators Cannot see Announcements in Unavailable Courses

Date Published: Feb 04,2019 Category: Planned_First_Fix_Release:SaaS_v3500_11_0,Learn_9_1_Q2_2019_Release; Product:Communication_Tools,Course_Tools_Learn; Version:Learn_9_1_Q4_2017,Learn_9_1_Q2_2018,Learn_9_1_Q4_2018,SaaS   Article No.: 000048200

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), SaaS

Issue Description: Administrators are not able to see Announcements in Courses that are unavailable.

Steps to Replicate:

  1. Log into Blackboard Learn as System Administrator
  2. Create a Course, but do not make it Available
  3. Access the Course and navigate to Announcements
Expected Behavior:
Announcements loads without error.

Observed Behavior:
An error occurred.  Please contact the System Administrator.
For reference, the Error ID is xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
<timestamp>

 
Symptoms: The following is observed in the logs:
java.lang.NullPointerException
	at blackboard.webapps.blackboard.announcement.struts.AnnouncementViewHelper.prepareAnnouncementList(AnnouncementViewHelper.java:192)
	at blackboard.webapps.blackboard.announcement.struts.AnnouncementAction.search(AnnouncementAction.java:357)
	at sun.reflect.GeneratedMethodAccessor2124.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:266)
	at blackboard.struts.SecureDispatchAction.dispatchMethod(SecureDispatchAction.java:49)
	at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:167)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
	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:104)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	at sun.reflect.GeneratedMethodAccessor993.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.GeneratedMethodAccessor980.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 blackboard.plugin.assignment.util.RequestRedirectValve.invoke(RequestRedirectValve.java:65)
	at blackboard.webapps.blackboard.plugin.web.PluginsRequestRedirectValve.invoke(PluginsRequestRedirectValve.java:63)
	at blackboard.webapps.blackboard.blog.web.BlogRequestRedirectValve.invoke(BlogRequestRedirectValve.java:63)
	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)


Resolution/Workaround: Quick Enroll in the Course.

Target Release: Learn 9.1 Q2 2019 Release

SaaS - Fixed (v3500.10.0)
Patch Available: Yes
Patch Versions: Learn 9.1 Q2 2018 (3400.0.0-rel.44+9fb1e0e);Learn 9.1 Q4 2018
Patch Information: Updates to resolve this issue are available for the following releases:
 

ReleaseCUPDATEUpdate Access
Learn 9.1 Q4 2018CU3Access via installer in Cumulative Update 3 for Blackboard Learn, 9.1 Q4 2018 - Article #50259
Learn 9.1 Q2 2018CU7Access via installer in Cumulative Update 7 for Blackboard Learn, 9.1 Q2 2018 - Article #50258