3                   # #  #     2         B B  '    "   T V    Z Z  ` ` ` e V  #   #  u s  w w  `    B   T T    !"# $ %&'( ) *+ ,- . /0123456 s789: ;<= >? @ ABC DE FGH IJ KL DMNO DPQRSTU VW XYZIdPair 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[YcreateIdentifier`(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]^_`aupdateTestObject(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;oldPidnewPidbcdefg obsoletedBysubject mnCallAdapter0Lorg/dataone/integration/adapters/MNCallAdapter; contentBytes[Bd1o$Lorg/dataone/client/v1/itk/D1Object;sysmeta-Lorg/dataone/service/types/v2/SystemMetadata;objectInputStreamLjava/io/InputStream; updatedPidh+itestGetSystemMetadata setupMethodLjava/lang/reflect/Method;idPairTLorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair;sysMeta fetchedIDsetupMethodNamecaseNumnodeIteri casesToTest[I9Ljava/util/Iterator;FRuntimeVisibleAnnotations-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;testGetsidISpidISj*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;e1deletedObjectIDnotFoundZk .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 lm no java/util/HashMap ATests v2 API methods common to MNs/CNs that accept SID parametersp qr s[ tu vwjava/util/Map$Entry xw!org/dataone/service/types/v1/Node2org/dataone/integration/adapters/CommonCallAdapter yzv2 { |w 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 " " h  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/Objectk Rorg/dataone/integration/it/testImplementations/SidCommonTestImplementations$IdPair    getSystemMetaData() Case  : identifier in 2sysmeta fetched by the sid should be the head pid   Case:  :  jTesting 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   v"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; getSimpleName 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***YGJ W -w  *  L+ +  M,NY-:, : _ :Y:W4:#Y$%&&'&-(&)&*+[t}t}t}t}t} t}!t}"6 ",>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\ jm o t #$&o &\'y()r*+Z,- J./ 301 02 13434 56789$ !" !"#$%: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 CTv2 456769<:F;R<e=?@ABDFGH RLMN@RCOEPJQS5Uh;<L=> E > .?/ '@ . EFR9e&AsB<RCDEF <RCG H*Hr6 HI4 HI4HJKLsMNLsOPQ/=*iL=++.>#Y$&k*=*l: t :Y:#Y$m&nop&k*::: *qrsYSYSt:  *quYSYSvw:  x:  y:  : : #Y$&k*  :  *#Y$&k& F&* g:  U*#Y$&k& &   &* : WBPTCP'a cdef6h<iFjRkelmnpqrsuvx z{|CHMP}R~Wd[;< ?=> 8 1 . RF RbeO-A*R1'S1 B<{CDEF <{CG H* H99|6 H99I4 H99I4 H99THJKLsUNLsVPW=*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 @XY 6ZY /[\(]\. QFREe2AB<^CDEF <^CG H*Hr6 HI4 HI4HJKLs^NLs_P` 0=*lL+ + MY,N:*,:*,:XY:ZYX[\]^:_`a`:  deYf:- : #Y$& o*=*-G H-z:  {S:*-F<:U*-#Y$& &*6B6Tr "36?HOl|,/?H O*+lm,-|]./ >a b/  7" 36010!C !CGz9V'9I49I4JKLscNLsdPe<ֲ=*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  1N#QSX# !"$&f9g;<=>   oh lij S. FRzegEAB<CDEF <CG H*HklmG:Hr6 HI4 HI4HJKLsnNLsoPp Ʋ=*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>tTz3 56786:<;F<R=e>@ABCEGHJL>TANCOHPqTtQvR{SU6W;<}=> v o Xqr Gsr C. vFRjeW5AB<CDEF <CG H*Hr6 HI4 HI4HJKLstNLsuPvw?²=*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 TmpT9m opqr6t<uFvRwexz{|}  "%'1Vu )Nmprwp8 '     ;<=>   xj yj z{|j}j~j|jxtrFRfeS1AB<CDEF <CGH*Hkl O S O S O FH6 HI4 HI4HJKLsNLsP=*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,evA1 1 fB<ECvDyEF <ECG H* H99( H99I4 H99I4 H99THJKLsNLsPGóIw