3                   # #  #     2         B B  '    "   T V    Z Z  ` ` ` e V  #   #  u s   w w  `   B   T T    !  "#$ % &'() * +, -. / 01234567 s89 :;< =>? @A B CDE FG HIJ KL MN FOPQ FRSTUVW XY Z[\IdPair 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;idStri$Ljava/util/Iterator;node#Lorg/dataone/service/types/v1/Node; callAdapter4Lorg/dataone/integration/adapters/CommonCallAdapter; idsForNodeEntryLjava/util/Map$Entry;LocalVariableTypeTable]Ljava/util/Map$Entry;>; StackMapTable][createIdentifier`(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;^ Exceptions_`abcupdateTestObject(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;oldPidnewPiddefghi obsoletedBysubject mnCallAdapter0Lorg/dataone/integration/adapters/MNCallAdapter; contentBytes[Bd1o$Lorg/dataone/client/v1/itk/D1Object;sysmeta-Lorg/dataone/service/types/v2/SystemMetadata;objectInputStreamLjava/io/InputStream; updatedPidj,ktestGetSystemMetadata setupMethodLjava/lang/reflect/Method;idPairTLorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair;sysMeta fetchedIDsetupMethodNamecaseNumnodeIteri casesToTest[I9Ljava/util/Iterator;GRuntimeVisibleAnnotations-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;testGetsidISpidISl*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;e1deletedObjectIDnotFoundZm .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 no pq java/util/HashMap ATests v2 API methods common to MNs/CNs that accept SID parametersr st u] vw xyjava/util/Map$Entry zy!org/dataone/service/types/v1/Node2org/dataone/integration/adapters/CommonCallAdapter {|v2 } ~y java/util/Setjava/lang/String'org/dataone/service/types/v1/Identifier  +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 " " j  java/lang/InterruptedException  java/util/HashSet   ~ nullCREATING test object... pid:  with a sid:  obsoletes:  obsoletedBy: testRightsHolder ^ ,org/dataone/service/exceptions/BaseExceptionUnable to create test object.      UPDATING test object... pid:  with pid:  Not for CN use!   java/lang/Exception .org/dataone/integration/adapters/MNCallAdapter"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/Objectm Rorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair    getSystemMetaData() Case  : identifier in 2sysmeta fetched by the sid should be the head pid   Case:  :  lTesting 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   w"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 Korg/dataone/integration/it/testImplementations/SidCommonTestImplementations3org/dataone/integration/ContextAwareTestCaseDataonejava/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!M***Y@C P -p  *  L+ +  M,NY-:, : _ :Y:W4:#Y$%&&'&-(&)&*+[t}t}t}t}t} t}!t}"6 z"|,}>~dmt}\ /mDdMNf,>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,HI.:  }B/B 1mpv}z 1     1ps }f L C D Di 2Q  !"] *+,-K4      $ !"!"#$%& #Y$L&,6&M&-6&:&86&*=+NO "YPQ>?:*RS: :UVY+GW:XY:ZY-X[\]^:  _`a`:  ,b c d: : eYf: , - g: *+G-HI.:  \jmT/^AKU\jmot  o  '\(y)*r+,Z-. J/0 312 03 14545 6789:$ !"!"#$%&;h=*iL=++.>#Y$j&k*=*l: K :Y:#Y$m&nop&k*:*qrsYSYSt:*quYSYSvw:  x:  y: I. z:  {: #Y$|&k}&~&*  ~:*#Y$&k&F&*K:U*#Y$&k&& &* B CTv+ -./062<3F4R5e689:;=?@A KEFG@KCHEIJJL.Nh<=L>? E > .@0 'A . EFR9e&BsC<RDEFG <RDH I*Ir6 IJ5 IJ5IKLMsNOMsPQR/=*iL=++.>#Y$&k*=*l: t :Y:#Y$m&nop&k*::: *qrsYSYSt:  *quYSYSvw:  x:  y:  : : #Y$&k*  :  *#Y$&k& F&* g:  U*#Y$&k& &   &* : WBPTCP'Z \]^_6a<bFcRdeefgijklnoqz {|stuCzH{M|PvRwWxz{|z{}][<= ?>? 8 1 . RF RbeO-B*S2'T2 C<{DEFG <{DH I* I::|6 I::J5 I::J5 I::UIKLMsVOMsWQX=*iL=++.>#Y$&k*=*l: W :Y:#Y$m&nop&k*:*qrsYSYSt:*quYSYSvw:  x:  y:  :  :  : :#Y$&k&*~:*#Y$&k&F&*K:U*#Y$&k&& &*tBOTz 6<FRe#LOQVt<=X>? Q J @YZ 6[Z /\](^]. QFREe2BC<^DEFG <^DH I*Ir6 IJ5 IJ5IKLMs_OMs`Qa 0=*lL+ + MY,N:*,:*,:XY:ZYX[\]^:_`a`:  deYf:- : #Y$& o*=*-G H-z:  {S:*-F<:U*-#Y$& &*6B6Tr "36?HOl|,/?H O+,lm-.|]/0 >b c0  7" 36120!D !DHz:V':J5:J5KLMsdOMseQf<ֲ=*iL=++.>#Y$&k*=*l:  :Y:#Y$m&nop&k*:*qrsYSYSt:*quYSYSvw:  x:  y: I. : 6  WF:6 >:#Y$&k&&r&&&*#Y$&k&* ~:*#Y$&k&F&*K:U*#Y$&k&& &*p?TNQBNT$ 6<FRe   1NQSXg9h<=>?   oi ljk S. FRzegEBC<DEFG <DH I*IlmnG:Ir6 IJ5 IJ5IKLMsoOMspQq Ʋ=*iL=++.>#Y$&k*=*l: | :Y:#Y$m&nop&k*:*qrsYSYSt:*quYSYSvw:  x:  y: I. :  : #Y$&k&*  #Y$&k**d. ~:*#Y$&k&F&*K:U*#Y$&k&& &*O>AB>tTz, ./0163<4F5R6e79:;<>@ACE>MAGCHHIqMtJvK{LN/P<=}>? v o Xrs Gts C. vFRjeW5BC<DEFG <DH I*Ir6 IJ5 IJ5IKLMsuOMsvQwx?²=*iL=++.>#Y$&k*=*l: x :Y:#Y$m&nop&k*:*qrsYSYSt:*quYSYSvw:  x:  y: 6 6 ::66::66:: 6 :r: 6 :r:#Y$&k&*  #Y$&k&* 6:r: 6:r:#Y$&k&*#Y$&k&* 6:r: 6:r:#Y$&k&*#Y$&k&*K:U*#Y$&k&& &*S T"%TuTTT TmpT9f hijk6m<nFoRpeqstuvxyz{|}  "%'1Vu )Nmprwi8 '     <=>?   yk zk {|}k~kk|kxtrFRfeS1BC<DEFG <DHI*Ilm O S O S O FI6 IJ5 IJ5IKLMsOMsQ=*iL=+s+.>#Y$&k*=*l: > :Y:Y:#Y$m&nop&k*:: : *qrsYSYSt:  *quYSYSvw:  x:  y: : : #Y$ö&k*    Y:  U*#Y$ &   &*  :  (To(booqo" 6<FRev %(*/bglov~_<= C>? < 5*8 R,evB2 2 fC<EDvEyFG <EDH I* I::( I::J5 I::J5 I::UIKLMsOMsQ@ijBw