Skip to content

Commit

Permalink
SAK-26637 - NPE from Gradebook on DAC sites (nightly2 10.x) (sakaipro…
Browse files Browse the repository at this point in the history
…ject#3614)

Fixes only to the gradebook tool, no changes to service
  • Loading branch information
jonespm authored and ottenhoff committed Nov 29, 2016
1 parent 81caefc commit 74b6d8b
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.sakaiproject.service.gradebook.shared.GradebookNotFoundException;
import org.sakaiproject.service.gradebook.shared.GradebookPermissionService;
import org.sakaiproject.service.gradebook.shared.GradebookExternalAssessmentService;
import org.sakaiproject.service.gradebook.shared.GradebookFrameworkService;
import org.sakaiproject.tool.gradebook.Gradebook;
import org.sakaiproject.tool.gradebook.business.GradebookManager;
import org.sakaiproject.tool.gradebook.business.GradebookScoringAgentManager;
Expand Down Expand Up @@ -68,6 +69,7 @@ public class GradebookBean extends InitializableBean {
private GradebookPermissionService gradebookPermissionService;
private GradebookExternalAssessmentService gradebookExternalAssessmentService;
private GradebookScoringAgentManager scoringAgentManager;
private GradebookFrameworkService gradebookFrameworkService;

/**
* @return Returns the gradebookId.
Expand All @@ -89,22 +91,28 @@ private final void setGradebookId(Long gradebookId) {
* into play on each request.
*/
public final void setGradebookUid(String newGradebookUid) {
Long newGradebookId = null;
if (newGradebookUid != null) {
Gradebook gradebook = null;
try {
gradebook = getGradebookManager().getGradebook(newGradebookUid);
} catch (GradebookNotFoundException gnfe) {
logger.error("Request made for inaccessible gradebookUid=" + newGradebookUid);
newGradebookUid = null;
}
if(gradebook == null)
throw new IllegalStateException("Gradebook gradebook == null!");
newGradebookId = gradebook.getId();
if (logger.isDebugEnabled()) logger.debug("setGradebookUid gradebookUid=" + newGradebookUid + ", gradebookId=" + newGradebookId);
}
this.gradebookUid = newGradebookUid;
setGradebookId(newGradebookId);
Long newGradebookId = null;
if (newGradebookUid != null) {
Gradebook gradebook = null;
try {
gradebook = getGradebookManager().getGradebook(newGradebookUid);
} catch (GradebookNotFoundException gnfe1) {
logger.debug("Request made for inaccessible, adding gradebookUid=" + newGradebookUid);
getGradebookFrameworkService().addGradebook(newGradebookUid,newGradebookUid);
try {
gradebook = getGradebookManager().getGradebook(newGradebookUid);
} catch (GradebookNotFoundException gnfe2) {
logger.error("Request made and could not add inaccessible gradebookUid=" + newGradebookUid);
newGradebookUid = null;
}
}
if(gradebook == null)
throw new IllegalStateException("Gradebook gradebook == null!");
newGradebookId = gradebook.getId();
if (logger.isDebugEnabled()) logger.debug("setGradebookUid gradebookUid=" + newGradebookUid + ", gradebookId=" + newGradebookId);
}
this.gradebookUid = newGradebookUid;
setGradebookId(newGradebookId);
}

private final void refreshFromRequest() {
Expand Down Expand Up @@ -140,13 +148,28 @@ public GradebookManager getGradebookManager() {
return gradebookManager;
}

/**
* @return Returns the gradebookFrameworkService
*/
public GradebookFrameworkService getGradebookFrameworkService() {
return gradebookFrameworkService;
}

/**
* @param gradebookManager The gradebookManager to set.
*/
public void setGradebookManager(GradebookManager gradebookManager) {
this.gradebookManager = gradebookManager;
}

/**
* @param gradebookFrameworkServicee The gradebookFrameworkService to set.
*/

public void setGradebookFrameworkService(GradebookFrameworkService gradebookFrameworkService) {
this.gradebookFrameworkService = gradebookFrameworkService;
}

public SectionAwareness getSectionAwareness() {
return sectionAwareness;
}
Expand Down
5 changes: 5 additions & 0 deletions gradebook/app/ui/src/webapp/WEB-INF/faces-beans.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@
<property-name>gradebookManager</property-name>
<value>#{org_sakaiproject_tool_gradebook_business_GradebookManager}</value>
</managed-property>
<managed-property>
<description>Gradebook FrameworkService</description>
<property-name>gradebookFrameworkService</property-name>
<value>#{org_sakaiproject_service_gradebook_GradebookFrameworkService}</value>
</managed-property>
<managed-property>
<description>Section Awareness Service</description>
<property-name>sectionAwareness</property-name>
Expand Down

0 comments on commit 74b6d8b

Please sign in to comment.