2        '          <    # # # #     / T 2          #     F H K      T  T                 p  p p     p p !"#$%&'()*+ ,-./ 01 2 34567 8 9:; <=> ?@A BC DE F 8 G HI HJ HK H8L M NOP HQ RS KTUV #WXYZ [\ ] ^_ `ab Rcd ef g hi jkl  mn op qrs qtuvwx y  z{ | }~  HDatabaseAdaptor InnerClassesLOG#Lorg/eclipse/jetty/util/log/Logger; _sessionIdsLjava/util/HashSet; Signature'Ljava/util/HashSet;_server!Lorg/eclipse/jetty/server/Server;_driverLjava/sql/Driver;_driverClassNameLjava/lang/String;_connectionUrl _datasourceLjavax/sql/DataSource; _jndiName_sessionIdTable _sessionTable_sessionTableRowId_timerLjava/util/Timer;_taskLjava/util/TimerTask;_lastScavengeTimeJ_scavengeIntervalMs _blobType _longType_createSessionIdTable_createSessionTable_selectBoundedExpiredSessions_deleteOldExpiredSessions _insertId _deleteId_queryId_insertSession_deleteSession_updateSession_updateSessionNode_updateSessionAccessTime _dbAdaptorGLorg/eclipse/jetty/server/session/JDBCSessionIdManager$DatabaseAdaptor;_selectExpiredSessions$(Lorg/eclipse/jetty/server/Server;)VCodeLineNumberTableLocalVariableTablethis7Lorg/eclipse/jetty/server/session/JDBCSessionIdManager;server6(Lorg/eclipse/jetty/server/Server;Ljava/util/Random;)VrandomLjava/util/Random; setDriverInfo'(Ljava/lang/String;Ljava/lang/String;)VdriverClassName connectionUrl&(Ljava/sql/Driver;Ljava/lang/String;)V driverClass setDatasource(Ljavax/sql/DataSource;)Vds getDataSource()Ljavax/sql/DataSource;getDriverClassName()Ljava/lang/String;getConnectionUrlsetDatasourceName(Ljava/lang/String;)VjndigetDatasourceName setBlobTypename getBlobType getLongType setLongTypelongTypesetScavengeInterval(J)Vsec old_periodperiod tenPercent StackMapTablegetScavengeInterval()J addSession#(Ljavax/servlet/http/HttpSession;)VeLjava/lang/Exception;idsession Ljavax/servlet/http/HttpSession;u removeSession getClusterId&(Ljava/lang/String;)Ljava/lang/String;nodeIddotIu getNodeIdM(Ljava/lang/String;Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String; clusterIdrequest'Ljavax/servlet/http/HttpServletRequest;idInUse(Ljava/lang/String;)ZinUseZ invalidateAllmanager)Lorg/eclipse/jetty/server/SessionManager;sessionHandler1Lorg/eclipse/jetty/server/session/SessionHandler;icontexts#[Lorg/eclipse/jetty/server/Handler;`doStart()V ExceptionsdoStop getConnection()Ljava/sql/Connection; prepareTablesblobTypeidxName statementLjava/sql/Statement;metaDataLjava/sql/DatabaseMetaData; tableNameresultLjava/sql/ResultSet;index1index2 index1Exists index2Exists connectionLjava/sql/Connection;insertLjava/sql/PreparedStatement;querydeleteexistsscavenge sessionIdrows lowerBound upperBoundLjava/sql/SQLException;expiredSessionIdsLjava/util/List;LocalVariableTypeTable$Ljava/util/List;ZcleanExpiredSessionsnowxsessionsTableStatementsessionIdsTableStatementcreateCleanExpiredSessionsSql<(Ljava/lang/String;Ljava/util/Collection;)Ljava/lang/String;sqlLjava/util/Collection;buffLjava/lang/StringBuffer;itorLjava/util/Iterator;*Ljava/util/Collection;(Ljava/util/Iterator;lP(Ljava/lang/String;Ljava/util/Collection;)Ljava/lang/String;initializeDatabaseicLjavax/naming/InitialContext; access$000:(Lorg/eclipse/jetty/server/session/JDBCSessionIdManager;)Vx0 SourceFileJDBCSessionIdManager.java c cjava/util/HashSet JettySessionIds  JettySessions rowId   =  java/lang/StringBuilderScavenging every   ms 'java/lang/Object   7org/eclipse/jetty/server/session/JDBCSessionIdManager$1  ;org/eclipse/jetty/server/session/JDBCSessionManager$SessionSession J' |* java/lang/ExceptionProblem storing session id=  I*Removing session id=  *Problem removing session id=     JK  VProblem checking inUse for id=/org/eclipse/jetty/server/handler/ContextHandler /org/eclipse/jetty/server/session/SessionHandler  3org/eclipse/jetty/server/session/JDBCSessionManager * c hc c bcScavenging interval = <= secjava/util/TimerJDBCSessionScavenger  34 c c ec fg f create table # (id varchar(120), primary key(id)) select * from * where expiryTime >= ? and expiryTime <= ? ( where expiryTime >0 and expiryTime <= ?  delete from  insert into  (id) values (?)  where id = ?    Eorg/eclipse/jetty/server/session/JDBCSessionIdManager$DatabaseAdaptor    ' K     /' 0' (' varchar(120), sessionId varchar(120), T contextPath varchar(60), virtualHost varchar(60), lastNode varchar(60), accessTime ,  lastAccessTime  , createTime  , cookieTime  lastSavedTime  , expiryTime , map , primary key()) idx__expiry_session  INDEX_NAME K V create index  on  (expiryTime) (sessionId, contextPath) c , sessionId, contextPath, virtualHost, lastNode, accessTime, lastAccessTime, createTime, cookieTime, lastSavedTime, expiryTime, map) , values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)  where  = ?  update h set lastNode = ?, accessTime = ?, lastAccessTime = ?, lastSavedTime = ?, expiryTime = ?, map = ? where   set lastNode = ? where  _ set lastNode = ?, accessTime = ?, lastAccessTime = ?, lastSavedTime = ?, expiryTime = ? where     java/util/ArrayListScavenge sweep started at ( Searching for sessions expired between  and  Found expired sessionId= -Deleting old expired sessions expired before Deleted % rows of old sessions expired before Scavenge sweep ended at java/sql/SQLException "Problem selecting expired sessions  (Searching for sessions expired before {} Found expired sessionId={}  where sessionId in  where id in c &Rolling back clean of expired sessions c#Rollback of expired sessions failedjava/lang/StringBuffer (  ' java/lang/String,)"Cleaning expired sessions with: {}javax/naming/InitialContext javax/sql/DataSource  java/lang/IllegalStateException#No database configured for sessions *5org/eclipse/jetty/server/session/JDBCSessionIdManager9org/eclipse/jetty/server/session/AbstractSessionIdManagerjava/lang/Throwablejavax/servlet/http/HttpSessionjava/sql/Connectionjava/sql/DatabaseMetaDatajava/sql/ResultSetjava/sql/Statementjava/sql/PreparedStatementjava/util/Listjava/util/Iterator(Ljava/util/Random;)Vjava/lang/SystemcurrentTimeMillis!org/eclipse/jetty/util/log/LoggerisDebugEnabled()Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;toStringdebug((Ljava/lang/String;[Ljava/lang/Object;)Vjava/util/TimerTaskcancelschedule(Ljava/util/TimerTask;JJ)Vadd(Ljava/lang/Object;)Zwarn*(Ljava/lang/String;Ljava/lang/Throwable;)Vremove lastIndexOf(I)I substring(II)Ljava/lang/String; _workerName(C)Ljava/lang/StringBuilder;containsorg/eclipse/jetty/server/ServergetChildHandlersByClass6(Ljava/lang/Class;)[Lorg/eclipse/jetty/server/Handler;getChildHandlerByClass5(Ljava/lang/Class;)Lorg/eclipse/jetty/server/Handler;getSessionManager+()Lorg/eclipse/jetty/server/SessionManager;invalidateSession(Ljava/lang/String;Z)Vclearjava/sql/DriverManager)(Ljava/lang/String;)Ljava/sql/Connection; setAutoCommit(Z)V getMetaData()Ljava/sql/DatabaseMetaData;U(Lorg/eclipse/jetty/server/session/JDBCSessionIdManager;Ljava/sql/DatabaseMetaData;)VgetRowIdColumnNameconvertIdentifier getTables_(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;nextcreateStatement()Ljava/sql/Statement; executeUpdate(Ljava/lang/String;)I getIndexInfoN(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/sql/ResultSet; getStringequalsIgnoreCaseclose(Ljava/lang/Throwable;)VprepareStatement0(Ljava/lang/String;)Ljava/sql/PreparedStatement; setString(ILjava/lang/String;)V executeQuery()Ljava/sql/ResultSet;()IsetLong(IJ)Vexpire(Ljava/util/List;)V(I)Ljava/lang/StringBuilder; isRunningignoresetTransactionIsolation(I)Vjava/lang/LongvalueOf(J)Ljava/lang/Long;isEmptycommit removeAll(Ljava/util/Collection;)Zrollback,(Ljava/lang/String;)Ljava/lang/StringBuffer;java/util/Collectioniterator()Ljava/util/Iterator;hasNext()Ljava/lang/Object;lookup&(Ljava/lang/String;)Ljava/lang/Object;registerDriver(Ljava/sql/Driver;)Vjava/lang/ClassforName%(Ljava/lang/String;)Ljava/lang/Class;!     $~.**Y** * * *+"BIJK!P(-../*,*Y** * * *+"BIJK"P). ///Q *+*,     Q *+*,      !">*+ #$%/* &'/*  ('/*% )*>*+ *++,'/*/ -*>*+ 45./'/*9 0'/*@ 1*>*+ EF234  @*Bi7**m7q *Ya!"*!#Y$%&*'(&)*+*,R! *-D*Y: *- *-.W*/Y*0-*,*-**1 ç :   JJK MNPT&U2V=XHYoZ\^_`hik4567&89 21:d;<=3 *mo  >?Q+*YM+23N*-4*-5W":!#Y$7&-&)8,ç :,"%6 FIIMI. uvx z}~"%'DP*'@A0BQQCD9#EF:GHD;I?Z+*+239CD9I*q+*YM²!""!#Y$:&+&)*+*+;W*+< N!#Y$=&+&)-8,ç :,6DG6 fiimi2  6?DGHdp H@AqqB90:PHD;JKh+.>= +?+  LMN9 @OPQs$*@#Y$+&.A*@&)+" $$R$ST9"UVZ+*+BM>*Y:*,C>ç :*,D:!#Y$E&,&)8"%%*%38966  -139;X4;@AZZB NRLWX9"EGG:;EHY*!l*+9*YM*FGN6-D-=-2FHIH: J:K K+L,ç :, addhd2  %7<CPY_k>CZ[7"\]E^NH_`llB9:a>D;bcY*M*N*O*P!"*!#Y$Q&*R'S&)*+*TYUV,**RW&      BPX Y9Bd6ec<*YL*- *-.W*, *,X*,+çM+,*Y*Z(++.+*  ! &!0"7#;$ <9: I;d6fgT* *[*\/02 9dhc7*#Y$]&*&^&)_*#Y$`&* &a&)b*#Y$`&* &c&)d*#Y$e&* &c&)f*#Y$g&*&h&)i*#Y$e&*&j&)k*#Y$`&*&j&)lL*mL+n+oM*pY*,qr**rs *r*tN,-u:v+w*_xW*r* tN,-u:v*ry:*rz:*#Y$]&* &{&* &|&}&&~&&&&&&&~&&&&&&&&* &&)+w*xW#Y$&* &&):#Y$&* &&):,-:66v.:  6 6+w: 0 #Y$&&&* &&)xW0 #Y$&&&* &&)xW < 2: ! #:   : !  *#Y$g&* &{&* &&&)*#Y$e&* &&* &&)*#Y$&* &&* &&)*#Y$&* &&* &&)*#Y$&* &&* &&)++: + +  6%,/6 '')':@A>B]C|EFGIMNOPQTUV(Y8]D^P_Zbccldhl%mBoOpRqUr_tjutvzwxyz| %,>n'-6cil2jj  @A 1 @A kl ,mnopq%rBsRtXUuX7\vw98ExyGzL ExyGzGG$G  9{1NHN; ExyGzGG{;H Ex; Ex;Exd|*GMN:*mM,n,*l:+:v,*iN-+-W:!--:!,O,F::!--:!, ,Zad6tz}6U66v (1;FNUZaptzf 1$pqf @A @A @A @ABvwk}~}9C UxNH LH L;EGx;H LH d*{yMN*mM,n,*kN-+-W--:!,4,+:--:!, ,.476*PV\_6PRPJ #*.4CGPV\kox>9 @Aa @AyyBwvwuk}9<7EGxH L;EGx;H dV MN*mM,n,*lN-+-:v6--:!, ,:--:!, ,8>A64Z`fi6Z\ZJ # + 48>MQZ`fuyHC @A+/pqk @ABvw~k}9RAEGxzH EGx;EGx;H dcf<LMYN!"$!#Y$&')*+* *mL+n+*bM**e7*7!"-!#Y$&'&')*+,,,:vE: - W!"#!#Y$& &)*+*FG: 6  F  >  2FHIH:   J:   K  K- **ie7 !"#!#Y$&')*++*fM,,6 !"-!#Y$& &')*+,9,0: ! !: ,,:! *!"%!#Y$&*')*+++:!:*!8 !*!"%!#Y$&*')*++m+d:!U:*!"%!#Y$&*')*+++:! 6 6   _eh 'w6 'w#),G&'( +,8-A/F0M2X3c4i5t689:;=>?@CD G3H8J?KLMUD[SjTqVYZ[\`bc `bc'r.s[t_xe}hzj|t}wiyklnrstx}z|}rst#x)},z.|8};4 ?Z[ 3"\] H^N 5N  @A  @Aciopq_` j @y @A @. @<:vw8k} 0  098xezHaA@PLHN; Exza;H Ex3LNHH 3LN;5Ex;L Exc LMN:Y:*mL++n+*dM7!"!*YS+,,:v9:  W!"!*Y S+N:c+wN-*#Y$e&* &&)¹xW+w:*#Y$e&*&ö&)¹xW+*Y: *W ç :   :!--:!,,:!+ +:!:+&!8+:!8:!--:!,,:!+ +}:!n: : ! --: ! ,,: ! + +: !  $14494AHK6[ad6tz}6<6666 6%(<77>EH6X^a6qwz6797BP %05V_gq|$.<AHW[aptz %(*47>ETX^mqw|( 5gpqM @Af @A @A @ A'@A @A @A @A* @J @A c @A | @A  @ vwk}l l 9%VEx{{z<n Ex{{z:;NH LH LH BNHEx{{HH NH LH LH BN; Ex{{;H LH LH B Ex{{5YN-+W-̶W,:=-#Y$϶&Ѷ&϶&)W-ҶW-ӶW!"!*Y-S+-հ. 'MWah4mm9C#d6ce**YL*+*ٵ>** *ڧ&***W Yݷ޿2 &)7AO Z d e9  d6/*> c߳!@p/2K