4                     %                           Q Q Q Q Q Q Q   Q   b      n   w                     !  "# $% &'()* s+,- s./012 3456789 : ; <  => ? @ A B C D E F G  H I  J JK LMN InnerClassesCREATE_INDEXT_TYPELjava/lang/String; ConstantValueDELETE_INDEX_TYPESYSMETA_CHANGE_TYPEHIGHEST_PRIORITYI HIGH_PRIORITYMEDIUM_PRIORITY LOW_PRIORITY HEADER_IDO HEADER_PATHPHEADER_INDEX_TYPEQ EXCHANGE_NAMEINDEX_QUEUE_NAMEINDEX_ROUTING_KEYspringConfigFileURLENV_NAME_OF_PROPERTIES_FILEloggerLorg/apache/log4j/Logger;defaultExternalPropertiesFilepropertyFilePathmultipleThreadZnThreads rabbitMQhost rabbitMQportrabbitMQusernamerabbitMQpasswordrabbitMQMaxPriorityrabbitMQconnection Lcom/rabbitmq/client/Connection;rabbitMQchannelLcom/rabbitmq/client/Channel;context0Lorg/springframework/context/ApplicationContext; solrIndex"Lorg/dataone/cn/indexer/SolrIndex;specifiedThreadNumberStrspecifiedThreadNumberexecutor&Ljava/util/concurrent/ExecutorService;main([Ljava/lang/String;)VCodeLineNumberTableLocalVariableTableargs[Ljava/lang/String; propertyFileworker$Lorg/dataone/cn/indexer/IndexWorker; ExceptionsRloadExternalPropertiesFile(Ljava/lang/String;)V defaultFileLjava/io/File;e9Lorg/apache/commons/configuration/ConfigurationException; StackMapTableloadAdditionalPropertyFile()Vthis(Ljava/lang/Boolean;)V initializeLjava/lang/Boolean;SinitIndexQueuefactory'Lcom/rabbitmq/client/ConnectionFactory;durable exclusive autoDeleteargusLjava/util/Map;LocalVariableTypeTable5Ljava/util/Map;initIndexParsersNTinitExecutorService!Ljava/lang/NumberFormatException;availableProcessorsstartconsumerLcom/rabbitmq/client/Consumer;autoAck indexOjbect8(Lorg/dataone/indexer/queue/IndexQueueMessageParser;JZ)VLjava/lang/Exception; sysmetaOnlythreadIdJend-Lorg/dataone/service/exceptions/InvalidToken;.Lorg/dataone/service/exceptions/NotAuthorized;/Lorg/dataone/service/exceptions/NotImplemented;/Lorg/dataone/service/exceptions/ServiceFailure;)Lorg/dataone/service/exceptions/NotFound;*Ljavax/xml/xpath/XPathExpressionException;0Lorg/dataone/service/exceptions/UnsupportedType;Lorg/xml/sax/SAXException;0Ljavax/xml/parsers/ParserConfigurationException;2Lorg/apache/solr/client/solrj/SolrServerException;-Lorg/dataone/exceptions/MarshallingException;+Lorg/apache/commons/codec/EncoderException; Ljava/lang/InterruptedException;Ljava/io/IOException;/Lorg/dataone/service/exceptions/InvalidRequest;"Ljava/lang/InstantiationException;"Ljava/lang/IllegalAccessException;parser3Lorg/dataone/indexer/queue/IndexQueueMessageParser; deliveryTagpid)Lorg/dataone/service/types/v1/Identifier; indexTypepriority finalFilePathUVW8:;<>?@ABCDEFG/HIstop access$000()Lorg/apache/log4j/Logger; access$100\(Lorg/dataone/cn/indexer/IndexWorker;Lorg/dataone/indexer/queue/IndexQueueMessageParser;JZ)Vx0x1x2x3 access$200L(Lorg/dataone/cn/indexer/IndexWorker;)Ljava/util/concurrent/ExecutorService; access$300C(Lorg/dataone/cn/indexer/IndexWorker;)Lcom/rabbitmq/client/Channel; SourceFileIndexWorker.java  ;< +IndexWorker.main - Starting index worker...X YZ "org/dataone/cn/indexer/IndexWorker  7W [\ ]^ java/lang/StringBuilderVIndexWorker.loadExternalPropertiesFile - the configuration path specified by users is _` a\ java/io/File  bc dcTIndexWorker.loadExternalPropertiesFile - the configuration path users specified is 6. The file exists and is readable. So it will be used.I. But the file does NOT exist or is NOT readable. So it will NOT be used.DATAONE_INDEXER_CONFIGe fgYIndexWorker.loadExternalPropertiesFile - the configuration path from the env variable is IndexWorker.loadExternalPropertiesFile - the configuration path can be read from the env variable DATAONE_INDEXER_CONFIG and its value is &. The file exists and it will be used. IndexWorker.loadExternalPropertiesFile - the configure path can't be read either by users specified or from the env variable DATAONE_INDEXER_CONFIG. However, the default external file  exists and it will be used.h iMIndexWorker.loadExternalPropertiesFile - loaded the properties from the file 7org/apache/commons/configuration/ConfigurationExceptionQIndexWorker.loadExternalPropertiesFile - can't load any properties from the file  since j\5. It will use the default properties in the jar file. kZIndexWorker.loadExternalPropertiesFile - can't load an external properties file from the env variable DATAONE_INDEXER_CONFIG or from the default path G. Dataone-indexer will use the properties file embedded in the jar fileMIndexWorker.loadAdditionalPropertyFile - loaded the properties from the file QIndexWorker.loadAdditionalPropertyFile - can't load any properties from the file .pIndexWorker.loadAdditionalPropertyFile - can't load an additional property file since its path is null or blank.S lm !     nc 3 & 0o pqr ps tuindex.rabbitmq.hostname localhostv wxindex.rabbitmq.hostport yzindex.rabbitmq.usernameguestindex.rabbitmq.passwordindex.rabbitmq.max.priority y{%com/rabbitmq/client/ConnectionFactory | }~    ~3IndexWorker.initIndexQueue - Set RabbitMQ host to: Z3IndexWorker.initIndexQueue - Set RabbitMQ port to: _   dataone-indexdirect java/util/HashMapx-max-priority l ;IndexWorker.initIndexQueue - Set RabbitMQ max priority to: index  MIndexWorker.initIndexQueue - the allowed unacknowledged message(s) number is ~SIndexWorker.initIndexQueue - Connected to the RabbitMQ queue with the name of indexBorg/springframework/context/support/ClassPathXmlApplicationContext/index-parser-context.xml  org/dataone/cn/indexer/SolrIndexindex.thread.number0 {java/lang/NumberFormatExceptionFIndexWorker.initExecutorService - IndexWorker cannot parse the string ? specified by property index.thread.number into a number since \9. The default value 0 will be used as the specified value Z  5 aIndexWorker.initExecutorService - the size of index thread pool specified in the propery file is 5. The size computed from the available processors is 6. Final computed thread pool size for index executor:  X. Since its value is 1, we do NOT need the executor service and use a single thread way.$org/dataone/cn/indexer/IndexWorker$1  MIndexWorker.start - Calling basicConsume and waiting for the comming messages U  \  \ java/lang/Exception&IndexWorker.indexOjbect - identifier: V \ , the index type: 8, sending acknowledgement back to rabbitmq failed since *. So rabbitmq may resend the message again  5IndexWorker.consumer.indexOjbect by multiple thread? _, with the thread id _E - Received the index task from the index queue with the identifier: *, the file path (null means not to have): , the priotity: create sysmetadelete -org/dataone/service/exceptions/InvalidRequest0000.DataONE indexer does not know the index type:  in the index task +IndexWorker.indexOjbect with the thread id F - Completed the index task from the index queue with the identifier:  and the time taking is  milliseconds+org/dataone/service/exceptions/InvalidToken?IndexWorker.indexOjbect - cannot index the task for identifier ,org/dataone/service/exceptions/NotAuthorized-org/dataone/service/exceptions/NotImplemented-org/dataone/service/exceptions/ServiceFailure k'org/dataone/service/exceptions/NotFound(javax/xml/xpath/XPathExpressionException.org/dataone/service/exceptions/UnsupportedTypeorg/xml/sax/SAXException.javax/xml/parsers/ParserConfigurationException0org/apache/solr/client/solrj/SolrServerException+org/dataone/exceptions/MarshallingException)org/apache/commons/codec/EncoderExceptionjava/lang/InterruptedExceptionjava/io/IOException java/lang/InstantiationException java/lang/IllegalAccessException 2IndexWorker.stop - stop the index queue conection. '/etc/dataone/dataone-indexer.propertiesjava/lang/Objectidpath index_type%java/util/concurrent/TimeoutExceptionjava/lang/Booleanjava/lang/Throwable1org/dataone/indexer/queue/IndexQueueMessageParser'org/dataone/service/types/v1/Identifierjava/lang/Stringorg/apache/log4j/Loggerinfo(Ljava/lang/Object;)Vtrim()Ljava/lang/String;equals(Ljava/lang/Object;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringexists()ZcanReadjava/lang/Systemgetenv&(Ljava/lang/String;)Ljava/lang/String;"org/dataone/configuration/SettingsaugmentConfiguration getMessageerrorvalueOf(Z)Ljava/lang/Boolean; booleanValue+org/dataone/cn/indexer/object/ObjectManager getInstance/()Lorg/dataone/cn/indexer/object/ObjectManager;6org/dataone/cn/indexer/annotation/OntologyModelService:()Lorg/dataone/cn/indexer/annotation/OntologyModelService;getConfiguration2()Lorg/apache/commons/configuration/Configuration;.org/apache/commons/configuration/Configuration getString8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;getInt(Ljava/lang/String;I)I(Ljava/lang/String;)IsetHostsetPort(I)V setPassword setUsernamesetAutomaticRecoveryEnabled(Z)VsetNetworkRecoveryIntervaldebug(I)Ljava/lang/StringBuilder; newConnection"()Lcom/rabbitmq/client/Connection;com/rabbitmq/client/Connection createChannel()Lcom/rabbitmq/client/Channel;com/rabbitmq/client/ChannelexchangeDeclareExchange DeclareOkT(Ljava/lang/String;Ljava/lang/String;Z)Lcom/rabbitmq/client/AMQP$Exchange$DeclareOk;java/lang/Integer(I)Ljava/lang/Integer; java/util/Mapput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; queueDeclareQueueP(Ljava/lang/String;ZZZLjava/util/Map;)Lcom/rabbitmq/client/AMQP$Queue$DeclareOk; queueBindBindOk_(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/rabbitmq/client/AMQP$Queue$BindOk;basicQos.org/springframework/context/ApplicationContextgetBean&(Ljava/lang/String;)Ljava/lang/Object;parseIntgetLocalizedMessagewarnjava/lang/Runtime getRuntime()Ljava/lang/Runtime;()Ijava/lang/Mathmax(II)Ijava/util/concurrent/ExecutorsnewFixedThreadPool)(I)Ljava/util/concurrent/ExecutorService;D(Lorg/dataone/cn/indexer/IndexWorker;Lcom/rabbitmq/client/Channel;)V basicConsumeE(Ljava/lang/String;ZLcom/rabbitmq/client/Consumer;)Ljava/lang/String;currentTimeMillis()J getIdentifier+()Lorg/dataone/service/types/v1/Identifier; getIndexType getPriority getObjectPathbasicAck(JZ)VgetValuejava/lang/Thread currentThread()Ljava/lang/Thread;getId(Z)Ljava/lang/StringBuilder;(J)Ljava/lang/StringBuilder;update?(Lorg/dataone/service/types/v1/Identifier;Ljava/lang/String;Z)Vremove,(Lorg/dataone/service/types/v1/Identifier;)V'(Ljava/lang/String;Ljava/lang/String;)V*(Ljava/lang/Object;Ljava/lang/Throwable;)Vclose getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!com/rabbitmq/client/AMQP$Exchange+com/rabbitmq/client/AMQP$Exchange$DeclareOkcom/rabbitmq/client/AMQP$Queue(com/rabbitmq/client/AMQP$Queue$DeclareOk%com/rabbitmq/client/AMQP$Queue$BindOkcom/rabbitmq/client/AMQP! _hho    mL+Y M,  jk lmno     **  *YYL+-+&Y'Y  Yq  cYL+-+&Y'Y  BY L+0+)Y! " e  W#Y$SLY&'+()*#Y+ ,% !|}~/:Hk6:NYg 4:UUY4, k#r#>w/  g*]*  Q*#Y-*9LY.*'+(/* 0-0% . -01JX[^f 1*gp- 7 *12    ! g*3*4*5*6*7*8*9* :*;**<*=*>*?*+@*A*B*CDWEW ZQ RTUVW"X(Y-Z2[7\<]A^F_KRVZ^bf g g"#f$%& Np*FGHI6*FJ(K7*FLMI8*FNMI9*FOP:QYRL+*6S+*7T+*9U+*8V+W+'XYY*6ZY[*7\Z=*+];**;^*_`aW>6bYc:d*:efWYg*:\Z*hiW*h_hjWYk*5\**5lmZ v!1AOW_gow|.> Z g o  >p W'()*+,-. ,/0 =*<&YL*<*nYop<+çM+,**<qrs= "%%(%   *< =  1D23 *FtuI>**>v?6L*?Yx*>y+z{|}~<d<*5*?*?*5 **?5*5GY*?\\*5\**5*4>Y*?\\*5\*4w R!#)$%$&@'N&Q*X+\,e-w.01457:= 24 X5^62-K:7 t&Y**L=*h+W G fgh%i &  89:;< ĸ7+:+:+6 +: * >: Y *7 Y   \ 6 *=  Y 6 *=  < *=&YY7 Y   \ e7: Y' *: Y' *: Y' *: Y'  y: Y' *J: Y'  : Y'  : Y'  : Y'  : Y' ¶ U: Y' Ķ $: Y' ƶ : Y' ȶ : Y' ʶ : Y' ˶*b: Y' Ͷ 1: Y' ϶ (+fffffMf|ffff@fqffff5fdf rrs tuv{(+|-}Uc}fn 05P/GJMO`vy|~  ":=@BSknqs/257H^adfw 8-9= > > n?@ 5WA@ *B *C *D ,E O*F ~,G ,H ,I ,J B,K s,L ,M ,N ,O 7*P f,Q ,R  STU@7@ VWXY Z + $[\]]^:s"^ $[\]]_n`nanbpcndpepfpgphpipjpkplpmnnpo-p Q**;Ҷ    qr  3st Q *+  3 * u vT w@ xyz /* 3 u{| /* 3 u} 2ӳԳ  MN P~2