Tim Donohue created DS-1569:
-------------------------------

             Summary: RoleDisseminator fails to check for possible null password
                 Key: DS-1569
                 URL: https://jira.duraspace.org/browse/DS-1569
             Project: DSpace
          Issue Type: Bug
          Components: DSpace API
    Affects Versions: 3.1, 3.0
            Reporter: Tim Donohue


If a single user in DSpace happens to have a "null" password (e.g. external 
authentication system is being used), and the RoleDisseminator is called with 
"emitPassword=true", then a NullPointerException will occur.

For example, passing the "passwords=true" flag to the AIP Packager will result 
in a NPE if a single user has a null password:

dspace packager -d -a -t AIP -e [admin-email] -i 10673/0 -o passwords=true 
[email protected]

Here's the resulting error message:

org.dspace.content.crosswalk.CrosswalkInternalException: Failed to export Roles 
via packager (see wrapped error message                                         
              for more details)
        at 
org.dspace.content.crosswalk.RoleCrosswalk.disseminateElement(RoleCrosswalk.java:234)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.crosswalkToMetsElement(AbstractMETSDisseminator.java:135
                                                      9)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.makeMdSec(AbstractMETSDisseminator.java:614)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.addToAmdSec(AbstractMETSDisseminator.java:727)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.addAmdSec(AbstractMETSDisseminator.java:753)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.makeManifest(AbstractMETSDisseminator.java:839)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.writeZipPackage(AbstractMETSDisseminator.java:311)
        at 
org.dspace.content.packager.AbstractMETSDisseminator.disseminate(AbstractMETSDisseminator.java:258)
        at 
org.dspace.content.packager.DSpaceAIPDisseminator.disseminate(DSpaceAIPDisseminator.java:160)
        at 
org.dspace.content.packager.AbstractPackageDisseminator.disseminateAll(AbstractPackageDisseminator.java:86)
        at org.dspace.app.packager.Packager.disseminate(Packager.java:636)
        at org.dspace.app.packager.Packager.main(Packager.java:460)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.dspace.app.launcher.ScriptLauncher.main(ScriptLauncher.java:183)
Caused by: org.dspace.content.packager.PackageException: 
java.lang.NullPointerException, Reason: java.lang.NullPointerEx                 
                                     ception
        at 
org.dspace.content.packager.RoleDisseminator.writeToStream(RoleDisseminator.java:257)
        at 
org.dspace.content.packager.RoleDisseminator.disseminate(RoleDisseminator.java:108)
        at 
org.dspace.content.crosswalk.RoleCrosswalk.disseminateElement(RoleCrosswalk.java:202)
        ... 16 more
Caused by: java.lang.NullPointerException
        at 
com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:498)
        at 
org.dspace.content.packager.RoleDisseminator.writeEPerson(RoleDisseminator.java:493)
        at 
org.dspace.content.packager.RoleDisseminator.writeToStream(RoleDisseminator.java:244)
        ... 18 more

The problem area of the code is here -- it fails to check for a possible null 
value.

https://github.com/DSpace/DSpace/blob/master/dspace-api/src/main/java/org/dspace/content/packager/RoleDisseminator.java#L481

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with <2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to