3y k  j j      j j j j     j    . j  j      C C .   j j '  j   ! j" #$ %&' j()*+,- j./0 j123458(Lorg/dataone/integration/ContextAwareTestCaseDataone;)VCodeLineNumberTableLocalVariableTablethisaLorg/dataone/integration/it/testImplementations/MNSystemMetadataChangedMethodTestImplementations;catc5Lorg/dataone/integration/ContextAwareTestCaseDataone;testSystemMetadataChanged)(Ljava/util/Iterator;Ljava/lang/String;)V nodeIteratorLjava/util/Iterator;versionLjava/lang/String;LocalVariableTypeTable9Ljava/util/Iterator; StackMapTable SignatureN(Ljava/util/Iterator;Ljava/lang/String;)VRuntimeVisibleAnnotations-Lorg/dataone/integration/webTest/WebTestName;value>systemMetadataChanged - tests that systemMetadataChanged works4Lorg/dataone/integration/webTest/WebTestDescription;kthis test poses as CNs from 3 different environments, all making a call to the MN. The MN is supposed to reply before scheduling it's own call to the CN. MNs should return 'true' if the object is on their node. The test checks that only one CN returns success ('true'), but allows for one CN to throw an InvalidRequest exception if the object is not on that node.8(Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)Ve/Lorg/dataone/service/exceptions/InvalidRequest;.Lorg/dataone/service/exceptions/NotAuthorized;Ljava/lang/Exception; cNodeSession0Lorg/dataone/integration/adapters/MNCallAdapter;iI afterCreateLjava/util/Date;successinvReqnotAuthotherobjectIdentifierpid)Lorg/dataone/service/types/v1/Identifier;smd-Lorg/dataone/service/types/v2/SystemMetadata;.Lorg/dataone/service/exceptions/BaseException;node#Lorg/dataone/service/types/v1/Node; certLabels[Ljava/lang/String; cNodeSessions1[Lorg/dataone/integration/adapters/MNCallAdapter;mn currentUrl46 %testSystemMetadataChanged_EarlierDateGsystemMetadataChanged - tests with a date before the last modified datethis test tries calling systemMetadataChanged with a date that is earlier than the existing last-modified date on the system metadata, making sure no exception is thrown as a resultmodDate.testSystemMetadataChanged_authenticatedITKuser1systemMetadataChanged - tests with non-CN subjectxthis test tries calling systemMetadataChanged with a non-CN subject, making sure it results in a NotAuthorized exception dataPackage[Ljava/lang/Object;$testSystemMetadataChanged_withCreateOsystemMetadataChanged - tests systemMetadataChanged together with create methodthis test first calls create to produce a new object, then calls systemMetadataChanged with the new object's identifier, making sure no exception is throwncca'testSystemMetadataChanged_NotAuthPuplic9systemMetadataChanged - NotAuthorized without certificatevthis test systemMetadataChanged without a certificate, making sure a NotAuthorized or InvalidToken exception is thrown-testSystemMetadataChanged_NotAuthRightsHolderGsystemMetadataChanged - NotAuthorized with the rightsHolder certificaterthis test systemMetadataChanged with the rightsHolder certificate, making sure a NotAuthorized exception is thrown$testSystemMetadataChanged_InvalidPid/systemMetadataChanged - NotFound with bogus pidbthis test systemMetadataChanged with a bogus pid, making sure a InvalidRequest exception is thrown SourceFile5MNSystemMetadataChangedMethodTestImplementations.java lm7 89 :;!org/dataone/service/types/v1/Node ujava/lang/String cnDevUNM1 cnDevUNM2 cnSandboxORC1 cnStageUNM1.org/dataone/integration/adapters/MNCallAdapter <= l>testRightsHolder ?@java/lang/StringBuilder lA&testSystemMetadataChanged() vs. node: BC D@ EF TierTesting: GH :Public_READ I@ stJ KLM NO PQjava/util/Date RS6 TU VW XYsuccess with cert : Z [\-org/dataone/service/exceptions/InvalidRequestInvalidRequest with cert : ,org/dataone/service/exceptions/NotAuthorizedNotAuthorized with cert : java/lang/ExceptionException with cert : ]@unexpected exception: systemMetadataChanged should only throw InvalidRequestor NotAuthorized exceptions if the service is not failing. Got: ^ _` Ba: b@ cdbthe test should return at least one success, InvalidRequest, or InvalidRequest each round success= Be , invReq= , notAuth=, other= fg success = InvalidRequest = NotAuthorized = other = Wthe test should only return success or InvalidRequest for one CN (environment) success=ssystemMetadataChanged() will likely fail because the object is probably new and not synced, and not known to the CN,org/dataone/service/exceptions/BaseExceptionh i@ j@ k@ lA m@ nz oU lp  testPerson2testSystemMetadataChanged_authITKuser() vs. node:  mNodeTier3q rs'org/dataone/service/types/v1/Identifierjava/io/InputStream+org/dataone/service/types/v1/SystemMetadata tu4Expect an ITK client to receive NotAuthorized, got: v@mNodeTier3TestDeletew xp8This call to create should not throw an exception, got: public4testSystemMetadataChanged_NotAuthPuplic() vs. node: bogusPid+org/dataone/service/exceptions/InvalidTokenThis call to systemMetadataChanged should throw a NotAuthorized or InvalidToken exception if called without a certificate. Got: :testSystemMetadataChanged_NotAuthRightsHolder() vs. node: |This call to systemMetadataChanged should throw a NotAuthorized exception if called with the rightsHolder certificate. Got: 1testSystemMetadataChanged_InvalidPid() vs. node: lThis call to systemMetadataChanged should throw a InvalidRequest exception if called with a bogus pid. Got: _org/dataone/integration/it/testImplementations/MNSystemMetadataChangedMethodTestImplementations.org/dataone/integration/it/ContextAwareAdapter+org/dataone/service/types/v2/SystemMetadatajava/util/IteratorhasNext()Znext()Ljava/lang/Object; getSessionA(Ljava/lang/String;)Lorg/dataone/client/rest/MultipartRestClient;e(Lorg/dataone/client/rest/MultipartRestClient;Lorg/dataone/service/types/v1/Node;Ljava/lang/String;)VgetNodeBaseServiceUrl()Ljava/lang/String;()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringprintTestHeader(Ljava/lang/String;)VcreateNodeAbbreviation&(Ljava/lang/String;)Ljava/lang/String;getTestObjectSeriesSuffix)org/dataone/client/v1/types/D1TypeBuilderbuildIdentifier=(Ljava/lang/String;)Lorg/dataone/service/types/v1/Identifier;3org/dataone/integration/ContextAwareTestCaseDataoneprocurePublicReadableTestObject(Lorg/dataone/integration/adapters/CommonCallAdapter;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v1/Identifier;getSystemMetadata~(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;)Lorg/dataone/service/types/v2/SystemMetadata;getTime()JgetDateUploaded()Ljava/util/Date;systemMetadataChangedc(Lorg/dataone/service/types/v1/Session;Lorg/dataone/service/types/v1/Identifier;JLjava/util/Date;)Zlog Lorg/apache/commons/logging/Log;org/apache/commons/logging/Loginfo(Ljava/lang/Object;)VgetLatestRequestUrljava/lang/ObjectgetClass()Ljava/lang/Class;-(Ljava/lang/Object;)Ljava/lang/StringBuilder; getMessage handleFail'(Ljava/lang/String;Ljava/lang/String;)V(I)Ljava/lang/StringBuilder; checkTrue((Ljava/lang/String;Ljava/lang/String;Z)Vjava/lang/Class getSimpleNamegetDetail_codegetDescriptionprintStackTracegetName cnSubmittergetDateSysMetadataModified(J)V(org/dataone/integration/ExampleUtilitiesgenerateTestSciDataPackage((Ljava/lang/String;Z)[Ljava/lang/Object;create(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; getBaseURLjava/lang/Threadsleep!jklmn>*+o pqrstuvn}+*+,o2 34p qrwxyz{ w|}~ssunuYSYSY SY SN Y Y*-2 +, SY Y*-2 +, SY Y*-2 +, SY Y*-2 +, S: Y* +, ::*YY**:*:: Y  ! e"Y: 6 6 6 66)2:$ &W'Y(-2) :'Y+-2) y:'Y--2) S:'Y/-2)*0Y123456*0Y7 89 8: 8;8  ` `<ղ'Y= 8)'Y> 8)'Y? 8)'Y@8)*0YA 89 8: 8;8  `<*0B6o:*0Y2D4E4F62:G*Y2H456NQ*Nw,N.CE.o189k?|@ADGIJMOPQ R STV-WKXNfQYSZq[tfw\y]^f_`abh8S>oZpvqru{| BEGLtpS!y!N.      Az1'  8G-uqruuyz\k |z}@eeOF  B|.vn}+*+,Io p qrwxyz{ w|}~ssn  Y**J +, N-:*YY*-*:*-:-K:-$Y LeN&Wn:*-0Y2D4E4F62:G*Y2H4560C0.o>0Xgspf X6zg's7-qryzz} {.vn}+*+,Oo p qrwxyz{ w|}~ssn Y*P +, N-:*YQRS:-2T2U2VW:Y:-$&Wx:s:*-0YX2D4E4F62:G*Y2H456.hk,.hpC.h.oF.6R[hkmprpf 62R[ r<-qryzz}&kD@.vn}+*+,Yo p qrwxyz{ w|}~ssn+ZN Y**J +, :N*Y-[S:2T2U2VW:"\Y:$&Ws:*0Y]2D4E4F61:G*-Y2H4565wzC5w.oF5=Z`iwz|pf =:Zi|=,qryzz}"zA-vn}+*+,^o p qrwxyz{ w|}~ssn+ZN Y*_ +, :N*Y`-a$Y&W|:w:*0Yc2D4E4F65:*0Yc2D4563ILb3IL,3IQC3I.o:  3 ILNQSpHS=0qryzz}&LDA1vn}+*+,do" #$p qrwxyz{ w|}~ssn+ZN Y* +, :N*Ye-a$Y&W|:w:*0Yf2D4E4F65:*0Yf2D4563IL,3IQC3I.o:()*+3.I<L0N<Q3S4<89=pHS=0qryzz}&LDA1vn}+*+,goC DEp qrwxyz{ w|}~ssn+ZN Y**J +, :N*Yh-a$Y&W|:w:*0Yi2D4E4F65:*0Yi2D4565KN*5KSC5K.o:IJKL5OK]NQP]STUU]YZ^pHU=0qryzz}&NDA1