[Building Sakai] issue with externalAssessmentService

Noah Botimer nbotimer at unicon.net
Tue Sep 10 20:20:38 PDT 2013


Steve,

I'm still confused here. The things you mentioned were added for 2.9. I 
think you're seeing the NPE here, right?

     // Student ID -> Assignments
     protected Map<String, Set<Assignment>> getVisibleExternalAssignments(
             Gradebook gradebook, Collection<String> studentIds, 
List<Assignment> assignments)
     {
         String gradebookUid = gradebook.getUid();
         Map<String, List<String>> allExternals = 
externalAssessmentService.getVisibleExternalAssignments(gradebookUid, 
studentIds);
         Map<String, Assignment> allRequested = new HashMap<String, 
Assignment>();

There may be a way for that to fail because of the rather unwieldy 
inheritance (BaseHibernateManager being abstract, extending 
HibernateDaoSupport, and implementing the methods that are needed to do 
some of the external work -- so we have a couple of beans extending 
BaseHibernateManager, which gets quite confusing). I suppose that should 
probably be a lookup method rather than injected -- or generally 
refactored, but that is a nasty bit of work.

There are also some similar signatures and names. Where is the actual 
calling code for this issue and what does it do? I'm asking because this 
is a new method for 2.9 (though similar signatures have been around for 
some time). I'm not sure exactly what the error conditions are yet, so I 
need a little more info.

Thanks,
-Noah

On 09/10/2013 07:43 PM, Steve Swinsburg wrote:
> Looks like its unrelated to being quartz. From what I've seen, code 
> was moved around from one class to another but the Spring wiring 
> wasn't changed so the dependencies aren't being injected, therefore null.
>
> cheers
> S
>
>
> On Wed, Sep 11, 2013 at 1:59 AM, Noah Botimer <botimer at umich.edu 
> <mailto:botimer at umich.edu>> wrote:
>
>     Pretty odd, but I did touch it last. I will have a look.
>
>     Unfortunately, I'm pretty unfamiliar with our wrapper on
>     Quartz. Do you have a suggested path or understanding of how the
>     context differs from the tools?
>
>     Comments on the JIRA issue are fine -- just wanted to mention that
>     I'm on it.
>
>     Thanks,
>     -Noah
>
>     On Sep 10, 2013, at 7:23 AM, Steve Swinsburg wrote:
>
>>     Here is the Jira. This is a regression in 2.10, as this bit of
>>     code was moved post 2.9, specifically r118469.
>>     https://jira.sakaiproject.org/browse/SAK-23908
>>
>>
>>     On Tue, Sep 10, 2013 at 9:16 PM, Steve Swinsburg
>>     <steve.swinsburg at gmail.com <mailto:steve.swinsburg at gmail.com>> wrote:
>>
>>         Looking through old versions of this, this code was
>>         originally in GradebookServiceHibernateImpl.java, but its
>>         been moved to BaseHibernateManager.java. It hasnt been wired
>>         up correctly and the setters arent even used. There is
>>         something very wrong with this bit of code...
>>
>>
>>         On Tue, Sep 10, 2013 at 8:44 PM, Steve Swinsburg
>>         <steve.swinsburg at gmail.com
>>         <mailto:steve.swinsburg at gmail.com>> wrote:
>>
>>             Updating this, the startup error was an old one and is a
>>             red herring. The NPE remains though. Does anyone who
>>             worked on the external assignments work know why this
>>             might be null when run from a quartz job? It just looks
>>             like a normal bean injection.
>>
>>             Thanks,
>>             Steve
>>
>>
>>             On Tue, Sep 10, 2013 at 7:42 AM, Steve Swinsburg
>>             <steve.swinsburg at gmail.com
>>             <mailto:steve.swinsburg at gmail.com>> wrote:
>>
>>                 Hi all,
>>
>>                 I'm am having an issue with the gradebook service
>>                 specifically to do with the
>>                 externalAssessmentService. In the
>>                 Gradebook getVisibleExternalAssignments.getVisibleExternalAssignments
>>                 method, there is a call to
>>                 the externalAssessmentService.getVisibleExternalAssignments
>>                 method. The issue is, that from within the context of
>>                 a quartz job, this is null, so throws a NPE.
>>
>>                 So does anyone that worked on this area know what the
>>                 reason for this is?
>>
>>                 Here is the main part of the stacktrace:
>>
>>                 Caused by: java.lang.NullPointerException
>>                 at
>>                 org.sakaiproject.component.gradebook.BaseHibernateManager.getVisibleExternalAssignments(BaseHibernateManager.java:1421)
>>                 at
>>                 org.sakaiproject.component.gradebook.BaseHibernateManager$34.doInHibernate(BaseHibernateManager.java:1474)
>>                 at
>>                 org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
>>                 at
>>                 org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
>>                 at
>>                 org.sakaiproject.component.gradebook.BaseHibernateManager.finalizeNullGradeRecords(BaseHibernateManager.java:1469)
>>                 at
>>                 org.sakaiproject.component.gradebook.GradebookServiceHibernateImpl.finalizeGrades(GradebookServiceHibernateImpl.java:2671)
>>
>>                 I note that in current trunk, on startup, I receive
>>                 this bean error:
>>                 Offending resource: file
>>                 [/Users/steve/dev/sakai/tomcat/apache-tomcat-7.0.37-trunk/components/sakai-assignment-pack/WEB-INF/components.xml]
>>                 Bean
>>                 'org.sakaiproject.assignment.impl.AssignmentGradeInfoProvider';
>>                 nested exception is java.lang.NoClassDefFoundError:
>>                 org/sakaiproject/service/gradebook/shared/ExternalAssignmentProviderCompat
>>
>>                 Is this a known error? Could it be the cause?
>>
>>                 thanks,
>>                 Steve
>>
>>
>>
>>
>>
>>
>>
>>
>
>
>
>
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130910/97beecd4/attachment.html 


More information about the sakai-dev mailing list