Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
Description
Dominique Petitpierre
8:46 PM
Hello,
if the attribute associated to the name field in the subject source description has no value for a person, then USDU terminates with a NullPointerException error (cf. annex below).
Agreed that an empty name is bad, but a log message saying "Warning: no value found for Grouper field name of user jsmith" instead of an exception dumping the java stack would be nice (and would have saved me hours).
Annex:
Context: Grouper 2.6.16.2 gsh container
[root@gsh-6d5d6679f-x7gmm WEB-INF]# sudo --preserve-env --user tomcat $GROUPER_HOME/bin/gsh.sh
...
Type help() for instructions
Groovy Shell (2.5.18, JVM: 1.8.0_342)
Type ':help' or ':h' for help.
-------------------------------------------------------------------------------------------------------------------------------------
groovy:000> :load '/opt/grouper/grouperWebapp/WEB-INF/classes/groovysh.profile'
groovy:000> GrouperSession.startRootSession();
===> ba6f351a549f4181a0e272433ea9a7b2,'GrouperSystem','application'
groovy:000> subject=SubjectFinder.findById("GrouperSystem");
===> Subject id: GrouperSystem, sourceId: g:isa, name: GrouperSysAdmin
groovy:000> session=GrouperSession.start(subject);
groovy:000> loaderRunOneJob("OTHER_JOB_usduDaemon");
ERROR java.lang.RuntimeException:
java.lang.NullPointerException: jobName: OTHER_JOB_usduDaemon
at edu.internet2.middleware.grouper.app.loader.GrouperLoader.runOnceByJobName (GrouperLoader.java:1803)
at edu.internet2.middleware.grouper.app.loader.GrouperLoader.runOnceByJobName (GrouperLoader.java:1747)
at edu.internet2.middleware.grouper.app.gsh.loaderRunOneJob.invoke (loaderRunOneJob.java:95)
at edu.internet2.middleware.grouper.app.gsh.loaderRunOneJob$invoke.call (Unknown Source)
at groovysh_evaluate.loaderRunOneJob (groovysh_evaluate:4)
And the grouper logs show
grouper;grouper_error.log;2022-11-24T00:10:43,340: [main] ERROR OtherJobBase$2.callback(447) - [] - Error occurred while running job: OTHER_JOB_usduDaemon
java.lang.NullPointerException: null
at edu.internet2.middleware.subject.provider.SubjectImpl.getName(SubjectImpl.java:315) ~[grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.Member.internal_updateMemberAttributes(Member.java:4804) ~[grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.Member.updateMemberAttributes(Member.java:4656) ~[grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.usdu.USDU.isMemberResolvable(USDU.java:519) ~[grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.usdu.UsduJob.run(UsduJob.java:202) ~[grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.OtherJobBase$2.callback(OtherJobBase.java:439) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:1000) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1069) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.GrouperSession.internal_callbackRootGrouperSession(GrouperSession.java:1036) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.OtherJobBase.execute(OtherJobBase.java:392) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.GrouperLoaderType$3.runJob(GrouperLoaderType.java:235) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.GrouperLoaderJob.runJob(GrouperLoaderJob.java:541) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.GrouperLoader.runOnceByJobName(GrouperLoader.java:1799) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.loader.GrouperLoader.runOnceByJobName(GrouperLoader.java:1747) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.gsh.loaderRunOneJob.invoke(loaderRunOneJob.java:95) [grouper-2.6.16.jar:2.6.16]
at edu.internet2.middleware.grouper.app.gsh.loaderRunOneJob$invoke.call(Unknown Source) [grouper-2.6.16.jar:2.6.16]
...