Project

General

Profile

« Previous | Next » 

Revision 6502

correctly implement MN.describe
https://redmine.dataone.org/issues/1799

View differences:

src/edu/ucsb/nceas/metacat/restservice/MNResourceHandler.java
612 612
        id.setValue(pid);
613 613

  
614 614
        DescribeResponse dr = MNodeService.getInstance().describe(session, id);
615
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SZ");
616
        response.addHeader("pid", pid);
617
        response.addHeader("checksum", dr.getDataONE_Checksum().getValue());
618
        response.addHeader("checksum_algorithm", dr.getDataONE_Checksum().getAlgorithm());
619
        response.addHeader("content_length", dr.getContent_Length() + "");
620
        response.addHeader("last_modified", dateFormat.format(dr.getLast_Modified()));
621
        response.addHeader("format", dr.getDataONE_ObjectFormatIdentifier().getValue());
622
       
615
        //response.addHeader("pid", pid);
616
        response.addHeader("DataONE-Checksum", dr.getDataONE_Checksum().getValue());
617
        response.addHeader("Content-Length", dr.getContent_Length() + "");
618
        response.addHeader("Last-Modified", DateTimeMarshaller.serializeDateToUTC(dr.getLast_Modified()));
619
        response.addHeader("DataONE-fmtid", dr.getDataONE_ObjectFormatIdentifier().getValue());
620
        
623 621
    }
624 622
    
625 623
    /**
src/edu/ucsb/nceas/metacat/dataone/MNodeService.java
448 448
    public DescribeResponse describe(Session session, Identifier pid) throws InvalidToken, ServiceFailure, NotAuthorized, NotFound, NotImplemented,
449 449
            InvalidRequest {
450 450

  
451
        if (session == null) {
452
            throw new InvalidToken("1370", "The session object is null");
453
        }
454

  
455
        if (pid == null || pid.getValue().trim().equals("")) {
456
            throw new InvalidRequest("1362", "The object identifier is null. " + "A valid identifier is required.");
457
        }
458

  
451
    	// get system metadata and construct the describe response
459 452
        SystemMetadata sysmeta = getSystemMetadata(session, pid);
460 453
        DescribeResponse describeResponse = new DescribeResponse(sysmeta.getFmtid(), sysmeta.getSize(), sysmeta.getDateSysMetadataModified(),
461 454
                sysmeta.getChecksum());

Also available in: Unified diff