3 I Y I I  I      I I      # #  #     2      I  Y B B  I' I   "   U W    \ \  b b b g W I # I  # I w u  y y  b     B  I U U     ! " #$%& ' () I*+ , -./0123 u45 678 9:; <= > I?@A BC DEF GH IJ BKLM BNOPQRS TU IVIdPair InnerClasses subjectLabelLjava/lang/String;policy+Lorg/dataone/service/types/v1/AccessPolicy; INDEXING_TIMEI ConstantValue' createdIDsLjava/util/Map; SignatureWLjava/util/Map;>;()VCodeLineNumberTableLocalVariableTablethisMLorg/dataone/integration/it/testImplementations/SidCommonTestImplementations;getNodeIterator()Ljava/util/Iterator;;()Ljava/util/Iterator;getCasesToTest()[I getSetupClassO()Lorg/dataone/integration/it/testImplementations/SidCommonTestImplementations;getTestDescription()Ljava/lang/String;cleanUpeLjava/lang/Exception;id)Lorg/dataone/service/types/v1/Identifier;idStrnode#Lorg/dataone/service/types/v1/Node; callAdapter4Lorg/dataone/integration/adapters/CommonCallAdapter; idsForNodeEntryLjava/util/Map$Entry;LocalVariableTypeTable]Ljava/util/Map$Entry;>; StackMapTableWcreateIdentifier`(Ljava/lang/String;Lorg/dataone/service/types/v1/Node;)Lorg/dataone/service/types/v1/Identifier;prefixmarkForCleanUpO(Lorg/dataone/service/types/v1/Node;Lorg/dataone/service/types/v1/Identifier;)VpidLjava/util/Set;#Ljava/util/Set;createTestObject(Lorg/dataone/integration/adapters/CommonCallAdapter;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v1/Identifier;be.Lorg/dataone/service/exceptions/BaseException;sid obsoletesId obsoletedByIdsidVal obsoletesVal obsoletedVal testObjPid rightsHolder&Lorg/dataone/service/types/v1/Subject;X ExceptionsYZ[\]updateTestObject(Lorg/dataone/integration/adapters/CommonCallAdapter;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v1/Identifier;oldPidnewPid^_`abc obsoletedBysubject mnCallAdapter0Lorg/dataone/integration/adapters/MNCallAdapter; contentBytes[Bd1o$Lorg/dataone/client/v1/itk/D1Object;sysmeta-Lorg/dataone/service/types/v2/SystemMetadata;objectInputStreamLjava/io/InputStream; updatedPidd(etestGetSystemMetadata setupMethodLjava/lang/reflect/Method;idPairTLorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair;sysMeta fetchedIDsetupMethodNamecaseNumnodeIterLjava/util/Iterator;i casesToTest[I9Ljava/util/Iterator;DRuntimeVisibleAnnotations-Lorg/dataone/integration/webTest/WebTestName;valueDgetSystemMetadata: tests that getSystemMetadata works if given a SID4Lorg/dataone/integration/webTest/WebTestDescription;mthis test checks if calling getSystemMetadata with a SID yields metadata that points to the expected head PIDLorg/junit/Test;testGetsidISpidISf*get: tests that get() works if given a SIDothis test checks that calling get() with a SID, and calling get() with the head PID yield the exact same object testDescribesidObjectDescription/Lorg/dataone/service/types/v1/DescribeResponse;pidObjectDescription sidChecksum'Lorg/dataone/service/types/v1/Checksum; pidChecksum2describe: tests that describe works if given a SIDothis test checks that calling describe with a SID, and calling describe with the head PID yield the same object testCreate createdPidfetchedSysmetaEcreate: tests that create works if given a SID in the system metadatathis test calls create with a PID while providing aSID in the system metadata, then fetches the system metadata using that SID, and makes sure the PID on the metadata is the expected one we called create with testDelete)Lorg/dataone/service/exceptions/NotFound;e1deletedObjectIDnotFoundZg.delete: tests that delete works if given a SIDthis test creates a PID chain, calls delete with the SID of the chain , then calls get() on the head PID of the created chain, and makes sure it's not foundtestListObjects pidObjList)Lorg/dataone/service/types/v1/ObjectList; sidObjList4listObjects: tests that archive works if given a SIDthis test sets up different PID chain scenarios, then calls listObjects with the head PID and with the SID, then makes sure the former returns on result and the latter returns the expected number of results based on the chain we created getPidsPerSidtestIsAuthorizedsidReadpidRead sidReadExc pidReadExcsidWritepidWrite sidWriteExc pidWriteExc sidChange pidChange sidChangeExc pidChangeExc:isAuthorized: tests that isAuthorized works if given a SIDthis test checks that calling isAuthorized for different permissions with the SID or head PID of a chain will return the same permissionstestViewpublicCallAdaptersidViewpidView*view: tests that view works if given a SIDNthis test checks that calling view() with a pid and sid yields the same result access$000"()Lorg/apache/commons/logging/Log; SourceFile!SidCommonTestImplementations.java hi jk java/util/HashMap ATests v2 API methods common to MNs/CNs that accept SID parametersl mn oW pq rsjava/util/Map$Entry ts!org/dataone/service/types/v1/Node2org/dataone/integration/adapters/CommonCallAdapter uvv2 w xs java/util/Setjava/lang/String'org/dataone/service/types/v1/Identifier yz {|+org/dataone/service/exceptions/InvalidToken-org/dataone/service/exceptions/ServiceFailure,org/dataone/service/exceptions/NotAuthorized'org/dataone/service/exceptions/NotFound-org/dataone/service/exceptions/NotImplemented-org/dataone/service/exceptions/InvalidRequest0org/dataone/client/exception/ClientSideExceptionjava/lang/StringBuilderUnable to delete Identifier " }~ " on node " " d  java/lang/InterruptedException  java/util/HashSet   x nullCREATING test object... pid:  with a sid:  obsoletes:  obsoletedBy: testRightsHolder X ,org/dataone/service/exceptions/BaseExceptionUnable to create test object.    Korg/dataone/integration/it/testImplementations/SidCommonTestImplementations UPDATING test object... pid:  with pid:  Not for CN use! z  java/lang/Exception .org/dataone/integration/adapters/MNCallAdapter3org/dataone/integration/ContextAwareTestCaseDataone"eml://ecoinformatics.org/eml-2.0.1 "org/dataone/client/v1/itk/D1Object bogusAuthoritativeNode   +org/dataone/service/types/v2/SystemMetadata    java/io/ByteArrayInputStream  'Testing getSystemMetadata() method ... !Testing getSystemMetadata(), Case } setup  }Case java/lang/Class java/lang/Objectg Rorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair    getSystemMetaData() Case C : identifier in sysmeta fetched by the sid should be the head pid   Case:  :  fTesting get() method ... Testing get(), Case  get() Case   Testing describe() method ... Testing describe(), Case  describe() Case 7 checksums of retrieved descriptions should be the sameTesting create() method ... P1 S1  &Testing create(), created new object: 7create() metadata for sid should match what we created Testing delete() method ... Testing delete(), CasetestDelete(), Case , expected NotFound but got: >, object for the head pid should have been deleted by its sid. !Testing listObjects() method ... Testing listObjects(), Case listObjects() Case , filter down to 1 pid   s"Testing isAuthorized() method ... Testing isAuthorized(), Case  isAuthorized() Case , read permissions should match  , read exceptions should match  , write permissions should match, write exceptions should match !, change permissions should match , change exceptions should matchTesting view() method ... Testing view(), Casedefault  view() Case java/util/Iterator$org/dataone/service/types/v1/Subject2org/dataone/service/exceptions/IdentifierNotUnique.org/dataone/service/exceptions/UnsupportedType4org/dataone/service/exceptions/InsufficientResources4org/dataone/service/exceptions/InvalidSystemMetadata$java/io/UnsupportedEncodingExceptionjava/io/IOException&java/security/NoSuchAlgorithmException java/lang/InstantiationException java/lang/IllegalAccessException+java/lang/reflect/InvocationTargetExceptionjava/lang/NoSuchMethodExceptionorg/apache/commons/logging/Logjava/io/InputStreamjava/lang/Throwablejava/lang/reflect/Methodlog Lorg/apache/commons/logging/Log;buildPublicReadAccessPolicy-()Lorg/dataone/service/types/v1/AccessPolicy; java/util/MapentrySet()Ljava/util/Set;iteratorhasNext()Znext()Ljava/lang/Object;getKey getSessionA(Ljava/lang/String;)Lorg/dataone/client/rest/MultipartRestClient;e(Lorg/dataone/client/rest/MultipartRestClient;Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)VgetValuesetValue(Ljava/lang/String;)Vdeletez(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v1/Identifier;append-(Ljava/lang/String;)Ljava/lang/StringBuilder; getBaseURLtoStringerror*(Ljava/lang/Object;Ljava/lang/Throwable;)Vjava/lang/Threadsleep(J)V(org/dataone/integration/ExampleUtilitiesgenerateIdentifier containsKey(Ljava/lang/Object;)Zput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;get&(Ljava/lang/Object;)Ljava/lang/Object;addinfo(Ljava/lang/Object;)V getSubject:(Ljava/lang/String;)Lorg/dataone/service/types/v1/Subject;9(Lorg/dataone/client/D1Node;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/AccessPolicy;Ljava/lang/String;Ljava/lang/String;)Lorg/dataone/service/types/v1/Identifier; getMessagegetDescriptiongetNode%()Lorg/dataone/service/types/v1/Node; getNodeType)()Lorg/dataone/service/types/v1/NodeType;%org/dataone/service/types/v1/NodeTypeCN'Lorg/dataone/service/types/v1/NodeType;)org/dataone/service/types/v1/AccessPolicygetAllow,(I)Lorg/dataone/service/types/v1/AccessRule;'org/dataone/service/types/v1/AccessRule)(I)Lorg/dataone/service/types/v1/Subject;printStackTracegetExampleObjectOfType(Ljava/lang/String;)[B)org/dataone/client/v1/types/D1TypeBuilderbuildFormatIdentifierI(Ljava/lang/String;)Lorg/dataone/service/types/v1/ObjectFormatIdentifier;buildNodeReference@(Ljava/lang/String;)Lorg/dataone/service/types/v1/NodeReference;(Lorg/dataone/service/types/v1/Identifier;[BLorg/dataone/service/types/v1/ObjectFormatIdentifier;Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/NodeReference;)VgetSystemMetadata/()Lorg/dataone/service/types/v1/SystemMetadata;(org/dataone/service/types/v2/TypeFactoryconvertTypeFromType7(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object; setObsoletes,(Lorg/dataone/service/types/v1/Identifier;)VsetObsoletedBy setSeriesId([B)Vupdate(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Ljava/io/InputStream;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v2/SystemMetadata;)Lorg/dataone/service/types/v1/Identifier;(I)Ljava/lang/StringBuilder;getType-(Ljava/lang/Object;)Ljava/lang/StringBuilder;getClass()Ljava/lang/Class;getDeclaredMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;invoke9(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;headPid~(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v2/SystemMetadata; getIdentifier+()Lorg/dataone/service/types/v1/Identifier;equalsorg/junit/Assert assertTrue(Ljava/lang/String;Z)VgetNodeBaseServiceUrl handleFail'(Ljava/lang/String;Ljava/lang/String;)VgetCause()Ljava/lang/Throwable;f(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Ljava/io/InputStream;org/apache/commons/io/IOUtils contentEquals-(Ljava/io/InputStream;Ljava/io/InputStream;)Z closeQuietly(Ljava/io/InputStream;)Vdescribe(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v1/DescribeResponse;-org/dataone/service/types/v1/DescribeResponsegetDataONE_Checksum)()Lorg/dataone/service/types/v1/Checksum;%org/dataone/service/types/v1/Checksum buildSubjectcreate(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Ljava/io/InputStream;Lorg/dataone/service/types/v1/SystemMetadata;)Lorg/dataone/service/types/v1/Identifier; getSimpleNamegetLatestRequestUrl listObjects4(Lorg/dataone/service/types/v1/Session;Ljava/util/Date;Ljava/util/Date;Lorg/dataone/service/types/v1/ObjectFormatIdentifier;Lorg/dataone/service/types/v1/NodeReference;Lorg/dataone/service/types/v1/Identifier;Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/dataone/service/types/v1/ObjectList;'org/dataone/service/types/v1/ObjectListgetCount()I assertEquals(Ljava/lang/String;JJ)V'org/dataone/service/types/v1/PermissionREAD)Lorg/dataone/service/types/v1/Permission; isAuthorized{(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;Lorg/dataone/service/types/v1/Permission;)Zjava/lang/BooleanvalueOf(Z)Ljava/lang/Boolean;9(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)VWRITECHANGE_PERMISSIONviewx(Lorg/dataone/service/types/v1/Session;Ljava/lang/String;Lorg/dataone/service/types/v1/Identifier;)Ljava/io/InputStream; cnSubmitter!IYI***Y@C P -p  *  L+ +  M,NY-:, : _ :Y:W4:#Y$%&&'&-(&)&*+[t}t}t}t}t} t}!t}">z"|,}>~dmt}H/mDdM,>v" "V>10,,.NYN-#Y$+&0&*- / **,,,I9*+1*+2Y34W*+5N-,67W -8*999-  - ! -8-6:86:86:#Y$9&,6&:&&;&&<&&*=: >W>?: *+,-* @A: 6: #Y$C& D&E& F&* + *+G,HJ.:  }B/J 1mpv}z 1      1 ps }f L C D Di 2Q  !"] *+,-L4    $ !" !"#Y$M&,6&N&-6&:&86&*=+OP "YQR>?:*ST: :VWY+GX:Z[:\Y-Z]^_`:  abcb:  ,d e f: : gYh: , - i: *+G-HJ.:  \jmU/n3<AKU\jmot    o#\$x%&q'(Y)* J+, 3-. 0/ 10101 23456$ !" !"7j=*kL=+y+.>#Y$l&m*=*n: D :Y:#Y$o&pqr&m*:*stuYSYSv:*swYSYSxy:  z:  {: J. |:  }: #Y$~&m&*  ~:*#Y$&m&F&*K:V*#Y$&m&& &* B<U~+ -./062<3F4R5e689:;=?@ACAK E FG9K<H>ICJL.Nc89G:; @ 9 )<, "=  .>FR2e>l?<K@A|BCD <K@E F*Fr6 F1 F1FGHIsJKIsLMN-=*kL=++.>#Y$&m*=*n: r :Y:#Y$o&pqr&m*::: *stuYSYSv:  *swYSYSxy:  z:  {:  : : #Y$&m*  :  *#Y$&m& F&* g:  V*#Y$&m& &   &* : YBNUAN'Z \]^_6a<bFcRdeefgijklnoqz {|stuAzF{K|NvPwUxz{|z{}][89 ?:; 8 1 . PF R`eM+>(O.%P. ?<y@ABCD <y@E F* F66|6 F661 F661 F66QFGHIsRKIsSMT=*kL=++.>#Y$&m*=*n: U :Y:#Y$o&pqr&m*:*stuYSYSv:*swYSYSxy:  z:  {:  :  :  : :#Y$&m&*~:*#Y$&m&F&*K:V*#Y$&m&& &*vBMUz 6<FRe!JMOTt89X:; Q J @UV 6WV /XY(ZY.OFRCe0>}?<\@ABCD <\@E F*Fr6 F1 F1FGHIs[KIs\M] /=*nL+ + MY,N:*,:*,:Z[:\YZ]^_`:abcb:  fgYh:- : #Y$& q*=*-G H-|:  }S:*-F<:V*-#Y$& &*6B6U! "36?HOY_dl{+.?HO'(ll)*{]+, >^ _, 7" 36-./ @A  @Ez6V'6161GHIs`KIsaMbAϲ=*kL=++.>#Y$&m*=*n:  :Y:#Y$o&pqr&m*:*stuYSYSv:*swYSYSxy:  z:  {: J. : 6  WA:6 9:#Y$&m&t&&&*#Y$&m&* ~:*#Y$&m&F&*K:V*#Y$&m&& &*wFUGJBG}U' 6<FRe    '*GJLQz}c4d89:;  z je gfg L.FRse`>>?<@ABCD <@E F*FhijG5Fr6 F1 F1FGHIskKIslMm IJ=*kL=++.>#Y$&m*=*n: z :Y:#Y$o&pqr&m*:*stuYSYSv:*swYSYSxy:  z:  {: J. :  : #Y$&m&*  #Y$&m**d. ~:*#Y$&m&F&*K:V*#Y$&m&& &*Q<?B<rUz, ./0163<4F5R6e79:;<>@ACE<M?GAHFIoMrJtKyLN/P89}:; v o Xno Gpo A.tFRheU3>?<@ABCD <@E F*Fr6 F1 F1FGHIsqKIsrMstU=*kL=++.>#Y$&m*=*n: v :Y:#Y$o&pqr&m*:*stuYSYSv:*swYSYSxy:  z:  {: 6 6 ::66::66:: 6 :t: 6 :t:#Y$&m&*  #Y$&m&* 6:t: 6:t:#Y$&m&*#Y$&m&* 6:t: 6:t:#Y$&m&*#Y$&m&*K:V*#Y$&m&& &*UU #UsUUU UknU?f hijk6m<nFoRpeqstuvxyz{|}  #%/IQTs 'AILknpui8 %     89:;   ug vg wxygzg{|}g|~gxtpFRdeQ/>?<}@ABCD <}@EF*Fhi O S O S O FF6 F1 F1FGHIsKIsM=*kL=+q+.>#Y$&m*=*n: < :Y:Y:#Y$o&pqr&m*:: : *stuYSYSv:  *swYSYSxy:  z:  {: : : #Y$ö&m*    Y:  V*#Y$ &   &*  :  &Um&`mmom" 6<FRev#&(-`ejmt|_89 C:; < 5(8 R*ev>. . d?<C@AtBwCD <C@E F* F66( F661 F661 F66QFGHIsKIsM@ijByI