3\ H ;I ;JK H ;L MN MO PQ PR ST SU VW VX ;Y Z[ \]^ ;_` Ha b c d efg Hh H i jk !H !i lm ln opq 'r stu *cvwx yz e{ ;| ;} ;~ ; ; ; ; e ; =c > ; H   E E HH >   M H H e ; H E e P M              = qc   *& d   ; ; H Hp ;  s eguidLjava/lang/String;hasSubTreeAccessControlZ subTreeListLjava/util/Vector;TOPLEVELSTARTNODEIDJ ConstantValue logMetacatLorg/apache/log4j/Logger;(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis-Ledu/ucsb/nceas/metacat/PermissionController;myDociddocIdrevI Exceptions()Z hasPermission'(Ljava/lang/String;Ljava/lang/String;)Z sessionId myPermission sessionData)Ledu/ucsb/nceas/metacat/util/SessionData; StackMapTable:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ze4Ledu/ucsb/nceas/metacat/shared/MetacatUtilException; userSession&Lorg/dataone/service/types/v1/Session;subject&Lorg/dataone/service/types/v1/Subject;pid)Lorg/dataone/service/types/v1/Identifier;sysMeta-Lorg/dataone/service/types/v2/SystemMetadata;Ljava/lang/Exception;usergroups[Ljava/lang/String; userPackage permissionisOwner^t([Ljava/lang/String;I)Z principalsstartIdhasPermissionForInlineDataL(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z controllerLjava/sql/SQLException; inlineDataIdhasPermissionForSubTreeNode;(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;J)Ztree Ledu/ucsb/nceas/metacat/SubTree;startstopnodeIdflagunaccessableSubTreeLjava/util/Hashtable;enLjava/util/Enumeration;hasUnaccessableSubTreeN(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable;eeiresultUnaccessableSubTreemergeEquivalentSubtree,(Ljava/util/Hashtable;)Ljava/util/Hashtable;subTree subTreeIdsubTreeStartId subTreeEndIdtreeIdendIdenuunAccessSubTreenewSubTreeHash needDeleteisAccessDocument1Ledu/ucsb/nceas/metacat/McdbDocNotFoundException;rsLjava/sql/ResultSet;hasRowdoctypepnfe4Ledu/ucsb/nceas/utilities/PropertyNotFoundException;pStmtLjava/sql/PreparedStatement;conn.Ledu/ucsb/nceas/metacat/database/DBConnection; serialNumbercontainDocumentOwner([Ljava/lang/String;)Z lengthOfArray isAllowFirst([Ljava/lang/String;J)ZpermissionOrdersqltopLever hasAllowRule([Ljava/lang/String;IJ)ZpermissionValueInTablesqlEallowpermissionValuehasExplicitDenyRuletopLevelcreateUsersPackage:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;lengthOfPackage usersPackagegetUnReadableInlineDataIdListN(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Hashtable;docidinlineDataListLocalVariableTypeTable;Ljava/util/Hashtable; Signaturet(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Hashtable;getUnWritableInlineDataIdListO(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/util/Hashtable;docidWithoutRev withRevisionu(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/util/Hashtable;getUnAccessableInlineDataIdList`(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable; allIdListfileIdunAccessibleIdList+Ljava/util/Enumeration;(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable;getAllInlineDataIdList)(Ljava/lang/String;)Ljava/util/Hashtable;()V SourceFilePermissionController.java E java/util/Vector             2edu/ucsb/nceas/metacat/shared/MetacatUtilException java/lang/StringBuilder"Error checking for administrator:       $org/dataone/service/types/v1/Session$org/dataone/service/types/v1/Subject  'org/dataone/service/types/v1/Identifier   +org/dataone/service/types/v2/SystemMetadata  java/lang/Exception(Error checking for DataONE permissions: Checking permission on  for user:  and groups:    !" *+    (# "#SPermissionController.hasPermission - There is a exception in hasPermission method: "+edu/ucsb/nceas/metacat/PermissionController java/sql/SQLException$edu/ucsb/nceas/metacat/McdbException #$ % &'edu/ucsb/nceas/metacat/SubTree () *)java/util/Hashtable + ,- ./java/lang/Long 0 1 23`PermissionController.hasUnaccessableSubTree - error in PermissionControl.hasUnaccessableSubTree 4" 5 6;PermissionController.mergeEquivalentSubtree - the subtree: ( need to be get rid of from unaccessable( subtree list becuase it is a subtree of another subtree in the list 7" 8/edu/ucsb/nceas/metacat/McdbDocNotFoundException 9PermissionControl.isAccessDoc: ;< =-5select doctype from xml_documents where docid like ? >? @A B CD E FG HExml.accessdoctypeI JK LM N OP>PermissionControl.isAccessDocument Error checking on document . 2edu/ucsb/nceas/utilities/PropertyNotFoundException!PermissionControl.containDocOnwerSELECT 'x' FROM xml_documents WHERE docid = ? AND lower(user_owner) = ? UNION ALL SELECT 'x' FROM xml_revisions WHERE docid = ? AND lower(user_owner) = ? EPermissionController.containDocumentOwner - the principle stack is : :PermissionController.containDocumentOwner - find the owner?PermissionControl.hasPermission - Error checking ownership for  on document #fSELECT perm_order FROM xml_access WHERE lower(principal_name) = ? AND guid = ? AND startnodeid is NULLbSELECT perm_order FROM xml_access WHERE lower(principal_name) = ? AND guid = ? AND startnodeid = ?AccessControlList.isAllowFirst QR allowFirst STKPermissionController.isAllowFirst - There is no permission record for user  at document xSELECT permission FROM xml_access WHERE guid = ? AND lower(principal_name) = ? AND perm_type = ? AND startnodeid is NULLtSELECT permission FROM xml_access WHERE guid = ? AND lower(principal_name) = ? AND perm_type = ? AND startnodeid = ?AccessControlList.hasAllowRule#Checking permission for principal: SQL: UV!PermissionControl.hasExplicitDenydenypublicjava/lang/String WRPermissionController.createUsersPackage - after transfer to lower case(not null): NPermissionController.createUsersPackage - after transfer to lower case(null): READ ;<WRITE BC X$ FPermissionController.getUnAccessableInlineDataIdList - Put subtree id  and inline data file name  into un hashWSELECT subtreeid, guid FROM xml_access WHERE accessfileid = ? AND subtreeid IS NOT NULLPermissionControl.getDataSetId Y Z[java/lang/Object'edu/ucsb/nceas/metacat/util/SessionDatajava/util/Enumerationjava/sql/PreparedStatement,edu/ucsb/nceas/metacat/database/DBConnectionjava/sql/ResultSetjava/lang/Throwable(edu/ucsb/nceas/metacat/util/DocumentUtil getSmartDocId&(Ljava/lang/String;)Ljava/lang/String;getRevisionFromAccessionNumber(Ljava/lang/String;)I(edu/ucsb/nceas/metacat/IdentifierManager getInstance,()Ledu/ucsb/nceas/metacat/IdentifierManager;getGUID'(Ljava/lang/String;I)Ljava/lang/String;-edu/ucsb/nceas/metacat/service/SessionService1()Ledu/ucsb/nceas/metacat/service/SessionService;getRegisteredSession=(Ljava/lang/String;)Ledu/ucsb/nceas/metacat/util/SessionData; getUserName()Ljava/lang/String; getGroupNames()[Ljava/lang/String;6edu/ucsb/nceas/metacat/accesscontrol/AccessControlListintValue$edu/ucsb/nceas/metacat/util/AuthUtilisAdministrator((Ljava/lang/String;[Ljava/lang/String;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessagetoStringorg/apache/log4j/Loggerwarn*(Ljava/lang/Object;Ljava/lang/Throwable;)VsetValue setSubject)(Lorg/dataone/service/types/v1/Subject;)V9edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService=()Ledu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService;getSystemMetadataMap()Lcom/hazelcast/core/IMap;com/hazelcast/core/IMapget&(Ljava/lang/Object;)Ljava/lang/Object;getRightsHolder(()Lorg/dataone/service/types/v1/Subject;equals(Ljava/lang/Object;)Zjava/util/Arrays'([Ljava/lang/Object;)Ljava/lang/String;debug(Ljava/lang/Object;)Velements()Ljava/util/Enumeration;hasMoreElements nextElement()Ljava/lang/Object;getStartNodeId()J getEndNodeId(Ljava/lang/Exception;)Vsize()I elementAt(I)Ljava/lang/Object;(J)V containsKeyput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;errorisEmpty getSubTreeIdinfo getLocalIdgetDocIdFromString0edu/ucsb/nceas/metacat/database/DBConnectionPoolgetDBConnectionB(Ljava/lang/String;)Ledu/ucsb/nceas/metacat/database/DBConnection;getCheckOutSerialNumberprepareStatement0(Ljava/lang/String;)Ljava/sql/PreparedStatement; setString(ILjava/lang/String;)Vexecute getResultSet()Ljava/sql/ResultSet;next getString(I)Ljava/lang/String;close1edu/ucsb/nceas/metacat/properties/PropertyService getProperty'edu/ucsb/nceas/metacat/util/MetacatUtil getOptionList&(Ljava/lang/String;)Ljava/util/Vector;containsreturnDBConnection2(Ledu/ucsb/nceas/metacat/database/DBConnection;I)VsetLong(IJ)VequalsIgnoreCase(Ljava/lang/String;)ZgetInt(I)I toLowerCasekeystrim getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!; 4****YM>+M+>* , * QA CETUX"Y'\3^*44>/*e N + N-*- -,ij klo*= )6:-6+,,+,$:Y6Y:Y:  + !Y":  *#$% &':  ( )6':Y+,6Y-*.+/,01*+,2:*3*46 *46$(L*~}~ #%(*ILU^dkt}&*UF^= t' "))))&# L3  B T#R =,^ B*+5*+!6*+!7*+!8*+!8:Y9,: =* =*!,=*-.=*/:=*;<=*> !+-/9;=?\4?^^^\   A=?*+,2:*5;Y*<:+,-:>Y?@0=/0=" '0 2!R 2 ?????7 \>!S6*+,-A:B:C6DE:  F7  G7   62 -/ 124)50678G:J;M=P>p )$ 0 7 SSSSSP G@9> JHYI::-6+,,*+,2:*5:>YJ6*K*LE:F7 * 6j* 7(MY NO~MY NPWj* 8ZMY NOIMY NPW5* 8%MY NOMY NPW,: YQ ,R>Y J *S:*59=i *~J K LOQ"U*Y3[6a9^;`EdTfbgiltotvy /9d?Gz ; ' bi HJJJJ A >8,B ]$!B(>3ջHYIM>+ +T,+B:CDE:U:F7G7 +B:  Ce DE:  U:  F7 G79 1>YVWXYZ,MYNPW>M,j '3:AHNXdkrydS kL rEy>3:AH N  H0 he 1L *[LM+]LMN6^_N-`6-abM,+c,dW,e:f6: g:,h3ijkl#6,h-m: -m ,h-m: -m v:=YYn+o?p:=YYn+orp: ,h-m: -m    \=q!!#!) %+2:AIRUZdj  !/p IV  RM UJ (( 1/P,  N Bii  =aM *[M,]MN+>::6s_:`6tb:6,c+2c,c+2cYu+2ZdWe:  f65hvZ6 hm: m  `hm: m a:h=YYw+2x,o?p: hm:m  \$==$==?FPPRP?=-02 37469;<!=$B+C2D;LDPMQYRbSnTWXYZ\]^ptutLptutvce g=n?pFtMuPt_wz @  = >:aa_FC!@$=%   P B{ =<k+6::6: 6 6 y: z: {_:`6 b:6  + 2c*c  |dWe:  f6k g:  }~-h6hm:mh6hm:m Ihm:m*:  :hm:m*YY+2*   '==='   ")3353" 2  #'.5>HT`env   ")03B^ v  s A  kkkgd a ^[ X! # ,M   P BD  =*"#D+66:6 : 6 6 :! 6 : 6 :_:  `6  b:*cc !|6Y+21Y1+2cdWe:f6   ~ 6߄|h  m:  m/:::h  m:  m0=0*0!(2242!.  "),0 7>GS]bku!"$%&')-0AEFEG579;?!A(E/F2EAH$ *  n%DDDD@=& : 7' 4 1 .! + ):\#P BDD =*(#&+6:6: 6 : 6 ! 6 : 6 : _:  `6   b:*cc !|6n+2cdWe:fA6  ~h6h  m:  mh  m:  m*::h  m:  m -==- .Y[\ ^ _`adfg&p)q-|4};DPZ_hr~ $4$ N  kr&&&&" '    ) & :#8  P BD  =*+IN,+~,`6N+(-+SY-2Z)-+S-+SY-2Z-S6,d2-,d2Sw,`6N-S6,d2-,d2S=+~&6N+ -+S-+S-S6N-S-"&DHOjoy   f r#,#4, , - ,-D%  ./i *+,N-  !* 0   12  13>45 67u *+,: 3 64 8   9 12  13*4: ;< HYI:+*::>Y?@:C{D::;Y*<:  +,-IY-ZPW=FC D EJMKL(N/O9QERQU[VhY]abz = EiQ]>[S 0 ?(=/2 ?3/@H~>4A BCY һHYILMN::6_:`6,bN-*c-dW-e:fGg:g:+ +PW-hm: m $: -hm: m  +vmn s tuvz{$|+~3:BLV`\ V7`-01     g BJO B  =DE" ;JFG