Changeset 64:c48435e7f312 in AnnotationManagerN4J for src


Ignore:
Timestamp:
Dec 3, 2012, 5:42:20 PM (11 years ago)
Author:
casties
Branch:
default
Message:

fix npe when an annotation has no creator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorResourceImpl.java

    r63 r64  
    6767
    6868    public String encodeJsonId(String id) {
    69         if (id == null) return null;
     69        if (id == null)
     70            return null;
    7071        try {
    7172            return Base64.encodeBase64URLSafeString(id.getBytes("UTF-8"));
     
    7677
    7778    public String decodeJsonId(String id) {
    78         if (id == null) return null;
     79        if (id == null)
     80            return null;
    7981        try {
    8082            return new String(Base64.decodeBase64(id), "UTF-8");
     
    203205             * user
    204206             */
    205             if (makeUserObject) {
    206                 // create user object
    207                 JSONObject userObject = new JSONObject();
    208                 Actor creator = annot.getCreator();
    209                 // save creator as uri
    210                 userObject.put("uri", creator.getUri());
    211                 // make short user id
    212                 String userId = creator.getIdString();
    213                 // set as id
    214                 userObject.put("id", userId);
    215                 // get full name
    216                 String userName = creator.getName();
    217                 if (userName == null) {
    218                     BaseRestlet restServer = (BaseRestlet) getApplication();
    219                     userName = restServer.getFullNameFromLdap(userId);
    220                 }
    221                 userObject.put("name", userName);
    222                 // save user object
    223                 jo.put("user", userObject);
    224             } else {
    225                 // save user as string
    226                 jo.put("user", annot.getCreatorUri());
     207            Actor creator = annot.getCreator();
     208            if (creator != null) {
     209                if (makeUserObject) {
     210                    // create user object
     211                    JSONObject userObject = new JSONObject();
     212                    // save creator as uri
     213                    userObject.put("uri", creator.getUri());
     214                    // make short user id
     215                    String userId = creator.getIdString();
     216                    // set as id
     217                    userObject.put("id", userId);
     218                    // get full name
     219                    String userName = creator.getName();
     220                    if (userName == null) {
     221                        BaseRestlet restServer = (BaseRestlet) getApplication();
     222                        userName = restServer.getFullNameFromLdap(userId);
     223                    }
     224                    userObject.put("name", userName);
     225                    // save user object
     226                    jo.put("user", userObject);
     227                } else {
     228                    // save user as string
     229                    jo.put("user", annot.getCreatorUri());
     230                }
    227231            }
    228232
     
    601605            throw new JSONException("Annotation has no valid target fragment!");
    602606        }
    603        
     607
    604608        /*
    605609         * permissions
Note: See TracChangeset for help on using the changeset viewer.