lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Policeman Jenkins Server <jenk...@sd-datasolutions.de>
Subject [JENKINS] Lucene-Solr-4.x-Windows (32bit/jdk1.7.0_07) - Build # 1080 - Failure!
Date Mon, 08 Oct 2012 01:32:20 GMT
Build: http://jenkins.sd-datasolutions.de/job/Lucene-Solr-4.x-Windows/1080/
Java: 32bit/jdk1.7.0_07 -client -XX:+UseParallelGC

1 tests failed.
REGRESSION:  org.apache.solr.cloud.ZkControllerTest.testUploadToCloud

Error Message:
KeeperErrorCode = Session expired for /configs/config1/mapping-FoldToASCII.txt

Stack Trace:
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /configs/config1/mapping-FoldToASCII.txt
	at __randomizedtesting.SeedInfo.seed([943B013B36668D56:B15677DE63649665]:0)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
	at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1044)
	at org.apache.solr.common.cloud.SolrZkClient$8.execute(SolrZkClient.java:261)
	at org.apache.solr.common.cloud.SolrZkClient$8.execute(SolrZkClient.java:258)
	at org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:63)
	at org.apache.solr.common.cloud.SolrZkClient.setData(SolrZkClient.java:258)
	at org.apache.solr.common.cloud.SolrZkClient.makePath(SolrZkClient.java:427)
	at org.apache.solr.common.cloud.SolrZkClient.makePath(SolrZkClient.java:306)
	at org.apache.solr.cloud.ZkController.uploadToZK(ZkController.java:1007)
	at org.apache.solr.cloud.ZkController.uploadToZK(ZkController.java:840)
	at org.apache.solr.cloud.ZkControllerTest.testUploadToCloud(ZkControllerTest.java:138)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1559)
	at com.carrotsearch.randomizedtesting.RandomizedRunner.access$600(RandomizedRunner.java:79)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:737)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:773)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:787)
	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:53)
	at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
	at org.apache.lucene.util.TestRuleFieldCacheSanity$1.evaluate(TestRuleFieldCacheSanity.java:51)
	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
	at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:358)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:782)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:442)
	at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:746)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:648)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:682)
	at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:693)
	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:53)
	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
	at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
	at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:43)
	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
	at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:358)
	at java.lang.Thread.run(Thread.java:722)




Build Log:
[...truncated 8485 lines...]
[junit4:junit4] Suite: org.apache.solr.cloud.ZkControllerTest
[junit4:junit4]   2> 0 T1171 oas.SolrTestCaseJ4.initCore ####initCore
[junit4:junit4]   2> Creating dataDir: C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\solr\build\solr-core\test\J0\.\solrtest-ZkControllerTest-1349658957079
[junit4:junit4]   2> 2 T1171 oas.SolrTestCaseJ4.initCore ####initCore end
[junit4:junit4]   2> 7 T1171 oas.SolrTestCaseJ4.setUp ###Starting testReadConfigName
[junit4:junit4]   2> 8 T1171 oasc.ZkTestServer.run STARTING ZK TEST SERVER
[junit4:junit4]   2> 13 T1172 oazs.ZooKeeperServer.setTickTime tickTime set to 1000
[junit4:junit4]   2> 15 T1172 oazs.NIOServerCnxn$Factory.<init> binding to port 0.0.0.0/0.0.0.0:0
[junit4:junit4]   2> 16 T1172 oazsp.FileTxnSnapLog.save Snapshotting: 0
[junit4:junit4]   2> 119 T1171 oasc.ZkTestServer.run start zk server on port:60151
[junit4:junit4]   2> 119 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60151 sessionTimeout=10000 watcher=org.apache.solr.common.cloud.ConnectionManager@14d3ce6
[junit4:junit4]   2> 121 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 122 T1177 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60151
[junit4:junit4]   2> 125 T1177 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60151, initiating session
[junit4:junit4]   2> 125 T1173 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60154
[junit4:junit4]   2> 126 T1173 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60154
[junit4:junit4]   2> 126 T1175 oazsp.FileTxnLog.append Creating new log file: log.1
[junit4:junit4]   2> 135 T1177 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60151, sessionid = 0x13a3df1552b0000, negotiated timeout = 10000
[junit4:junit4]   2> 135 T1175 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df1552b0000 with negotiated timeout 10000 for client /127.0.0.1:60154
[junit4:junit4]   2> 135 T1178 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@14d3ce6 name:ZooKeeperConnection Watcher:127.0.0.1:60151 got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 135 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 137 T1176 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df1552b0000
[junit4:junit4]   2> 139 T1173 oazs.NIOServerCnxn.doIO WARNING EndOfStreamException: Unable to read additional data from client sessionid 0x13a3df1552b0000, likely client has closed socket
[junit4:junit4]   2> 139 T1171 oaz.ZooKeeper.close Session: 0x13a3df1552b0000 closed
[junit4:junit4]   2> 139 T1178 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 141 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60151 sessionTimeout=10000 watcher=org.apache.solr.common.cloud.ConnectionManager@158b85d
[junit4:junit4]   2> 141 T1173 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60154 which had sessionid 0x13a3df1552b0000
[junit4:junit4]   2> 144 T1179 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60151
[junit4:junit4]   2> 144 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 146 T1179 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60151, initiating session
[junit4:junit4]   2> 146 T1173 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60157
[junit4:junit4]   2> 148 T1173 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60157
[junit4:junit4]   2> 151 T1175 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df1552b0001 with negotiated timeout 10000 for client /127.0.0.1:60157
[junit4:junit4]   2> 151 T1179 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60151, sessionid = 0x13a3df1552b0001, negotiated timeout = 10000
[junit4:junit4]   2> 151 T1180 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@158b85d name:ZooKeeperConnection Watcher:127.0.0.1:60151 got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 151 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 152 T1171 oascc.SolrZkClient.makePath makePath: /solr
[junit4:junit4]   2> 157 T1176 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df1552b0001
[junit4:junit4]   2> 159 T1173 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60157 which had sessionid 0x13a3df1552b0001
[junit4:junit4]   2> 159 T1171 oaz.ZooKeeper.close Session: 0x13a3df1552b0001 closed
[junit4:junit4]   2> 159 T1180 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 160 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60151/solr sessionTimeout=1000 watcher=org.apache.solr.common.cloud.ConnectionManager@1e05ce0
[junit4:junit4]   2> 161 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 161 T1181 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60151
[junit4:junit4]   2> 165 T1181 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60151, initiating session
[junit4:junit4]   2> 165 T1173 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60160
[junit4:junit4]   2> 166 T1173 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60160
[junit4:junit4]   2> 169 T1175 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df1552b0002 with negotiated timeout 2000 for client /127.0.0.1:60160
[junit4:junit4]   2> 169 T1181 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60151, sessionid = 0x13a3df1552b0002, negotiated timeout = 2000
[junit4:junit4]   2> 169 T1182 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@1e05ce0 name:ZooKeeperConnection Watcher:127.0.0.1:60151/solr got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 169 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 170 T1171 oascc.SolrZkClient.makePath makePath: /configs/firstConfig
[junit4:junit4]   2> 175 T1171 oascc.SolrZkClient.makePath makePath: /collections/collection1
[junit4:junit4]   2> 183 T1176 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df1552b0002
[junit4:junit4]   2> 184 T1171 oaz.ZooKeeper.close Session: 0x13a3df1552b0002 closed
[junit4:junit4]   2> 185 T1173 oazs.NIOServerCnxn.doIO WARNING EndOfStreamException: Unable to read additional data from client sessionid 0x13a3df1552b0002, likely client has closed socket
[junit4:junit4]   2> 185 T1182 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 185 T1173 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60160 which had sessionid 0x13a3df1552b0002
[junit4:junit4]   2> 185 T1171 oasc.CoreContainer.<init> New CoreContainer 19222476
[junit4:junit4]   2> 186 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60151/solr sessionTimeout=1000 watcher=org.apache.solr.common.cloud.ConnectionManager@25fe7b
[junit4:junit4]   2> 188 T1183 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60151
[junit4:junit4]   2> 188 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 190 T1183 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60151, initiating session
[junit4:junit4]   2> 192 T1173 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60163
[junit4:junit4]   2> 192 T1173 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60163
[junit4:junit4]   2> 195 T1175 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df1552b0003 with negotiated timeout 2000 for client /127.0.0.1:60163
[junit4:junit4]   2> 195 T1183 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60151, sessionid = 0x13a3df1552b0003, negotiated timeout = 2000
[junit4:junit4]   2> 195 T1184 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@25fe7b name:ZooKeeperConnection Watcher:127.0.0.1:60151/solr got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 196 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 199 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:create cxid:0x2 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 201 T1171 oascc.SolrZkClient.makePath makePath: /live_nodes
[junit4:junit4]   2> 204 T1171 oasc.ZkController.createEphemeralLiveNode Register node as live in ZooKeeper:/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 207 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:delete cxid:0x7 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/live_nodes/127.0.0.1:8983_solr Error:KeeperErrorCode = NoNode for /solr/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 208 T1171 oascc.SolrZkClient.makePath makePath: /live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 213 T1171 oashc.HttpShardHandlerFactory.getParameter Setting socketTimeout to: 0
[junit4:junit4]   2> 213 T1171 oashc.HttpShardHandlerFactory.getParameter Setting urlScheme to: http://
[junit4:junit4]   2> 213 T1171 oashc.HttpShardHandlerFactory.getParameter Setting connTimeout to: 0
[junit4:junit4]   2> 213 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maxConnectionsPerHost to: 20
[junit4:junit4]   2> 214 T1171 oashc.HttpShardHandlerFactory.getParameter Setting corePoolSize to: 0
[junit4:junit4]   2> 215 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maximumPoolSize to: 2147483647
[junit4:junit4]   2> 215 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maxThreadIdleTime to: 5
[junit4:junit4]   2> 216 T1171 oashc.HttpShardHandlerFactory.getParameter Setting sizeOfQueue to: -1
[junit4:junit4]   2> 216 T1171 oashc.HttpShardHandlerFactory.getParameter Setting fairnessPolicy to: false
[junit4:junit4]   2> 216 T1171 oascsi.HttpClientUtil.createClient Creating new http client, config:maxConnectionsPerHost=20&maxConnections=10000&socketTimeout=0&connTimeout=0&retry=false
[junit4:junit4]   2> 233 T1171 oascc.SolrZkClient.makePath makePath: /overseer_elect/election
[junit4:junit4]   2> 241 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:delete cxid:0x15 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer_elect/leader Error:KeeperErrorCode = NoNode for /solr/overseer_elect/leader
[junit4:junit4]   2> 243 T1171 oascc.SolrZkClient.makePath makePath: /overseer_elect/leader
[junit4:junit4]   2> 247 T1171 oasc.Overseer.start Overseer (id=88451249412440067-127.0.0.1:8983_solr-n_0000000000) starting
[junit4:junit4]   2> 248 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:create cxid:0x1a zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 251 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:create cxid:0x1b zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 253 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:create cxid:0x1c zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 255 T1176 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df1552b0003 type:create cxid:0x1d zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 258 T1186 oasc.OverseerCollectionProcessor.run Process current queue of collection creations
[junit4:junit4]   2> 258 T1171 oascc.SolrZkClient.makePath makePath: /clusterstate.json
[junit4:junit4]   2> 265 T1171 oascc.ZkStateReader.createClusterStateWatchersAndUpdate Updating cluster state from ZooKeeper... 
[junit4:junit4]   2> 267 T1171 oasc.ZkController.readConfigName Load collection config from:/collections/collection1
[junit4:junit4]   2> 268 T1185 oasc.Overseer$ClusterStateUpdater.run Starting to work on the main queue
[junit4:junit4]   2> 271 T1176 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df1552b0003
[junit4:junit4]   2> 273 T1184 oascc.ZkStateReader$3.process Updating live nodes
[junit4:junit4]   2> 273 T1184 oascc.ZkStateReader$3.process WARNING ZooKeeper watch triggered, but Solr cannot talk to ZK
[junit4:junit4]   2> 273 T1171 oaz.ZooKeeper.close Session: 0x13a3df1552b0003 closed
[junit4:junit4]   2> 274 T1173 oazs.NIOServerCnxn.doIO WARNING EndOfStreamException: Unable to read additional data from client sessionid 0x13a3df1552b0003, likely client has closed socket
[junit4:junit4]   2> 274 T1184 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 274 T1171 oasc.CoreContainer.shutdown Shutting down CoreContainer instance=19222476
[junit4:junit4]   2> 274 T1173 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60163 which had sessionid 0x13a3df1552b0003
[junit4:junit4]   2> 275 T1175 oazs.SyncRequestProcessor.run SyncRequestProcessor exited!
[junit4:junit4]   2> 275 T1176 oazs.PrepRequestProcessor.run PrepRequestProcessor exited loop!
[junit4:junit4]   2> 276 T1171 oazs.FinalRequestProcessor.shutdown shutdown of request processor complete
[junit4:junit4]   2> 1011 T1174 oazs.SessionTrackerImpl.run SessionTrackerImpl exited loop!
[junit4:junit4]   2> 2756 T1173 oazs.NIOServerCnxn$Factory.run NIOServerCnxn factory exited run method
[junit4:junit4]   2> 2757 T1171 oazs.FinalRequestProcessor.shutdown shutdown of request processor complete
[junit4:junit4]   2> 2757 T1171 oas.SolrTestCaseJ4.tearDown ###Ending testReadConfigName
[junit4:junit4]   2> 2761 T1171 oas.SolrTestCaseJ4.setUp ###Starting testUploadToCloud
[junit4:junit4]   2> 2761 T1171 oasc.ZkTestServer.run STARTING ZK TEST SERVER
[junit4:junit4]   2> 2762 T1187 oazs.ZooKeeperServer.setTickTime tickTime set to 1000
[junit4:junit4]   2> 2763 T1187 oazs.NIOServerCnxn$Factory.<init> binding to port 0.0.0.0/0.0.0.0:0
[junit4:junit4]   2> 2764 T1187 oazsp.FileSnap.deserialize Reading snapshot C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\solr\build\solr-core\test\J0\.\solrtest-ZkControllerTest-1349658957079\zookeeper\server1\data\version-2\snapshot.0
[junit4:junit4]   2> 2766 T1187 oazsp.FileTxnSnapLog.save Snapshotting: 1d
[junit4:junit4]   2> 2873 T1171 oasc.ZkTestServer.run start zk server on port:60166
[junit4:junit4]   2> 2873 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60166 sessionTimeout=10000 watcher=org.apache.solr.common.cloud.ConnectionManager@18728dc
[junit4:junit4]   2> 2875 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 2875 T1192 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60166
[junit4:junit4]   2> 2878 T1192 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60166, initiating session
[junit4:junit4]   2> 2878 T1188 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60169
[junit4:junit4]   2> 2878 T1188 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60169
[junit4:junit4]   2> 2880 T1190 oazsp.FileTxnLog.append Creating new log file: log.1e
[junit4:junit4]   2> 2888 T1190 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df15fe80000 with negotiated timeout 10000 for client /127.0.0.1:60169
[junit4:junit4]   2> 2889 T1192 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60166, sessionid = 0x13a3df15fe80000, negotiated timeout = 10000
[junit4:junit4]   2> 2889 T1193 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@18728dc name:ZooKeeperConnection Watcher:127.0.0.1:60166 got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 2889 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 2890 T1171 oascc.SolrZkClient.makePath makePath: /solr
[junit4:junit4]   2> 2893 T1191 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df15fe80000
[junit4:junit4]   2> 2896 T1171 oaz.ZooKeeper.close Session: 0x13a3df15fe80000 closed
[junit4:junit4]   2> 2896 T1171 oasc.CoreContainer.<init> New CoreContainer 19228459
[junit4:junit4]   2> 2896 T1188 oazs.NIOServerCnxn.doIO WARNING EndOfStreamException: Unable to read additional data from client sessionid 0x13a3df15fe80000, likely client has closed socket
[junit4:junit4]   2> 2896 T1171 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60166/solr sessionTimeout=1000 watcher=org.apache.solr.common.cloud.ConnectionManager@984b1a
[junit4:junit4]   2> 2899 T1188 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60169 which had sessionid 0x13a3df15fe80000
[junit4:junit4]   2> 2899 T1193 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 2900 T1194 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60166
[junit4:junit4]   2> 2900 T1171 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 2902 T1194 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60166, initiating session
[junit4:junit4]   2> 2903 T1188 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60172
[junit4:junit4]   2> 2903 T1188 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60172
[junit4:junit4]   2> 2905 T1190 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df15fe80001 with negotiated timeout 2000 for client /127.0.0.1:60172
[junit4:junit4]   2> 2905 T1194 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60166, sessionid = 0x13a3df15fe80001, negotiated timeout = 2000
[junit4:junit4]   2> 2905 T1195 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@984b1a name:ZooKeeperConnection Watcher:127.0.0.1:60166/solr got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 2905 T1171 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 2906 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x1 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2908 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x2 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2910 T1171 oasc.ZkController.createEphemeralLiveNode Register node as live in ZooKeeper:/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 2910 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:delete cxid:0x4 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/live_nodes/127.0.0.1:8983_solr Error:KeeperErrorCode = NoNode for /solr/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 2913 T1171 oascc.SolrZkClient.makePath makePath: /live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 2917 T1171 oashc.HttpShardHandlerFactory.getParameter Setting socketTimeout to: 0
[junit4:junit4]   2> 2917 T1171 oashc.HttpShardHandlerFactory.getParameter Setting urlScheme to: http://
[junit4:junit4]   2> 2917 T1171 oashc.HttpShardHandlerFactory.getParameter Setting connTimeout to: 0
[junit4:junit4]   2> 2917 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maxConnectionsPerHost to: 20
[junit4:junit4]   2> 2918 T1171 oashc.HttpShardHandlerFactory.getParameter Setting corePoolSize to: 0
[junit4:junit4]   2> 2918 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maximumPoolSize to: 2147483647
[junit4:junit4]   2> 2918 T1171 oashc.HttpShardHandlerFactory.getParameter Setting maxThreadIdleTime to: 5
[junit4:junit4]   2> 2919 T1171 oashc.HttpShardHandlerFactory.getParameter Setting sizeOfQueue to: -1
[junit4:junit4]   2> 2919 T1171 oashc.HttpShardHandlerFactory.getParameter Setting fairnessPolicy to: false
[junit4:junit4]   2> 2919 T1171 oascsi.HttpClientUtil.createClient Creating new http client, config:maxConnectionsPerHost=20&maxConnections=10000&socketTimeout=0&connTimeout=0&retry=false
[junit4:junit4]   2> 2928 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:delete cxid:0xd zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer_elect/leader Error:KeeperErrorCode = NoNode for /solr/overseer_elect/leader
[junit4:junit4]   2> 2930 T1171 oascc.SolrZkClient.makePath makePath: /overseer_elect/leader
[junit4:junit4]   2> 2932 T1171 oasc.Overseer.start Overseer (id=88451249592598529-127.0.0.1:8983_solr-n_0000000002) starting
[junit4:junit4]   2> 2933 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x12 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2935 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x13 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2936 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x14 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2938 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80001 type:create cxid:0x15 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 2940 T1197 oasc.OverseerCollectionProcessor.run Process current queue of collection creations
[junit4:junit4]   2> 2940 T1171 oascc.ZkStateReader.createClusterStateWatchersAndUpdate Updating cluster state from ZooKeeper... 
[junit4:junit4]   2> 2943 T1196 oasc.Overseer$ClusterStateUpdater.run Starting to work on the main queue
[junit4:junit4]   2> 2944 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.html
[junit4:junit4]   2> 2950 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.menu-bottom.html
[junit4:junit4]   2> 2954 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.menu-top.html
[junit4:junit4]   2> 2959 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/currency.xml
[junit4:junit4]   2> 2962 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/elevate.xml
[junit4:junit4]   2> 2967 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_ca.txt
[junit4:junit4]   2> 2974 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_fr.txt
[junit4:junit4]   2> 2979 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_ga.txt
[junit4:junit4]   2> 2983 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_it.txt
[junit4:junit4]   2> 2989 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/hyphenations_ga.txt
[junit4:junit4]   2> 2993 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stemdict_nl.txt
[junit4:junit4]   2> 2998 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stoptags_ja.txt
[junit4:junit4]   2> 3005 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ar.txt
[junit4:junit4]   2> 3011 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_bg.txt
[junit4:junit4]   2> 3017 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ca.txt
[junit4:junit4]   2> 3024 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_cz.txt
[junit4:junit4]   2> 3030 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_da.txt
[junit4:junit4]   2> 3035 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_de.txt
[junit4:junit4]   2> 3040 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_el.txt
[junit4:junit4]   2> 3045 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_en.txt
[junit4:junit4]   2> 3050 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_es.txt
[junit4:junit4]   2> 3055 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_eu.txt
[junit4:junit4]   2> 3060 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fa.txt
[junit4:junit4]   2> 3065 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fi.txt
[junit4:junit4]   2> 3070 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fr.txt
[junit4:junit4]   2> 3076 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ga.txt
[junit4:junit4]   2> 3081 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_gl.txt
[junit4:junit4]   2> 3087 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hi.txt
[junit4:junit4]   2> 3092 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hu.txt
[junit4:junit4]   2> 3097 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hy.txt
[junit4:junit4]   2> 3102 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_id.txt
[junit4:junit4]   2> 3107 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_it.txt
[junit4:junit4]   2> 3116 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ja.txt
[junit4:junit4]   2> 3120 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_lv.txt
[junit4:junit4]   2> 3128 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_nl.txt
[junit4:junit4]   2> 3135 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_no.txt
[junit4:junit4]   2> 3141 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_pt.txt
[junit4:junit4]   2> 3148 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ro.txt
[junit4:junit4]   2> 3153 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ru.txt
[junit4:junit4]   2> 3157 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_sv.txt
[junit4:junit4]   2> 3162 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_th.txt
[junit4:junit4]   2> 3167 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_tr.txt
[junit4:junit4]   2> 3171 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/userdict_ja.txt
[junit4:junit4]   2> 3180 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/mapping-FoldToASCII.txt
[junit4:junit4]   2> 3186 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/mapping-ISOLatin1Accent.txt
[junit4:junit4]   2> 3190 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/protwords.txt
[junit4:junit4]   2> 3195 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/schema.xml
[junit4:junit4]   2> 3199 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/scripts.conf
[junit4:junit4]   2> 3205 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/solrconfig.xml
[junit4:junit4]   2> 3211 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/spellings.txt
[junit4:junit4]   2> 3217 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/stopwords.txt
[junit4:junit4]   2> 3221 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/synonyms.txt
[junit4:junit4]   2> 3226 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/update-script.js
[junit4:junit4]   2> 3232 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/browse.vm
[junit4:junit4]   2> 3238 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/cluster.vm
[junit4:junit4]   2> 3243 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/clusterResults.vm
[junit4:junit4]   2> 3248 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/debug.vm
[junit4:junit4]   2> 3252 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/facets.vm
[junit4:junit4]   2> 3256 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/facet_fields.vm
[junit4:junit4]   2> 3261 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/facet_pivot.vm
[junit4:junit4]   2> 3265 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/facet_queries.vm
[junit4:junit4]   2> 3270 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/facet_ranges.vm
[junit4:junit4]   2> 3275 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/footer.vm
[junit4:junit4]   2> 3279 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/head.vm
[junit4:junit4]   2> 3283 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/header.vm
[junit4:junit4]   2> 3287 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/hit.vm
[junit4:junit4]   2> 3292 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/hitGrouped.vm
[junit4:junit4]   2> 3299 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/join-doc.vm
[junit4:junit4]   2> 3302 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/jquery.autocomplete.css
[junit4:junit4]   2> 3309 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/jquery.autocomplete.js
[junit4:junit4]   2> 3316 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/layout.vm
[junit4:junit4]   2> 3322 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/main.css
[junit4:junit4]   2> 3326 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/product-doc.vm
[junit4:junit4]   2> 3330 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/query.vm
[junit4:junit4]   2> 3336 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/queryGroup.vm
[junit4:junit4]   2> 3340 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/querySpatial.vm
[junit4:junit4]   2> 3345 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/richtext-doc.vm
[junit4:junit4]   2> 3350 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/suggest.vm
[junit4:junit4]   2> 3354 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/tabs.vm
[junit4:junit4]   2> 3359 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/velocity/VM_global_library.vm
[junit4:junit4]   2> 3365 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/xslt/example.xsl
[junit4:junit4]   2> 3370 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/xslt/example_atom.xsl
[junit4:junit4]   2> 3375 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/xslt/example_rss.xsl
[junit4:junit4]   2> 3380 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/xslt/luke.xsl
[junit4:junit4]   2> 3384 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/xslt/updateXml.xsl
[junit4:junit4]   2> 3389 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.html
[junit4:junit4]   2> 3394 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.menu-bottom.html
[junit4:junit4]   2> 3397 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/admin-extra.menu-top.html
[junit4:junit4]   2> 3401 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/currency.xml
[junit4:junit4]   2> 3406 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/elevate.xml
[junit4:junit4]   2> 3410 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_ca.txt
[junit4:junit4]   2> 3414 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_fr.txt
[junit4:junit4]   2> 3418 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_ga.txt
[junit4:junit4]   2> 3423 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/contractions_it.txt
[junit4:junit4]   2> 3428 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/hyphenations_ga.txt
[junit4:junit4]   2> 3432 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stemdict_nl.txt
[junit4:junit4]   2> 3438 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stoptags_ja.txt
[junit4:junit4]   2> 3443 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ar.txt
[junit4:junit4]   2> 3447 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_bg.txt
[junit4:junit4]   2> 3453 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ca.txt
[junit4:junit4]   2> 3458 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_cz.txt
[junit4:junit4]   2> 3466 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_da.txt
[junit4:junit4]   2> 3472 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_de.txt
[junit4:junit4]   2> 3478 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_el.txt
[junit4:junit4]   2> 3482 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_en.txt
[junit4:junit4]   2> 3488 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_es.txt
[junit4:junit4]   2> 3493 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_eu.txt
[junit4:junit4]   2> 3498 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fa.txt
[junit4:junit4]   2> 3503 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fi.txt
[junit4:junit4]   2> 3509 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_fr.txt
[junit4:junit4]   2> 3514 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ga.txt
[junit4:junit4]   2> 3518 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_gl.txt
[junit4:junit4]   2> 3524 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hi.txt
[junit4:junit4]   2> 3528 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hu.txt
[junit4:junit4]   2> 3533 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_hy.txt
[junit4:junit4]   2> 3538 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_id.txt
[junit4:junit4]   2> 3543 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_it.txt
[junit4:junit4]   2> 3548 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ja.txt
[junit4:junit4]   2> 3553 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_lv.txt
[junit4:junit4]   2> 3561 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_nl.txt
[junit4:junit4]   2> 3565 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_no.txt
[junit4:junit4]   2> 3573 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_pt.txt
[junit4:junit4]   2> 3581 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ro.txt
[junit4:junit4]   2> 3587 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_ru.txt
[junit4:junit4]   2> 3592 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_sv.txt
[junit4:junit4]   2> 3598 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_th.txt
[junit4:junit4]   2> 3602 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/stopwords_tr.txt
[junit4:junit4]   2> 3608 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/lang/userdict_ja.txt
[junit4:junit4]   2> 3614 T1171 oascc.SolrZkClient.makePath makePath: /configs/config1/mapping-FoldToASCII.txt
[junit4:junit4]   2> 4967 T1194 oaz.ClientCnxn$SendThread.run Client session timed out, have not heard from server in 1351ms for sessionid 0x13a3df15fe80001, closing socket connection and attempting reconnect
[junit4:junit4]   2> 5078 T1195 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@984b1a name:ZooKeeperConnection Watcher:127.0.0.1:60166/solr got event WatchedEvent state:Disconnected type:None path:null path:null type:None
[junit4:junit4]   2> 5078 T1195 oascc.ConnectionManager.process zkClient has disconnected
[junit4:junit4]   2> 6013 T1189 oazs.ZooKeeperServer.expire Expiring session 0x13a3df15fe80001, timeout of 2000ms exceeded
[junit4:junit4]   2> 6013 T1191 oazs.PrepRequestProcessor.pRequest Processed session termination for sessionid: 0x13a3df15fe80001
[junit4:junit4]   2> 6017 T1190 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60172 which had sessionid 0x13a3df15fe80001
[junit4:junit4]   2> 6017 T1188 oazs.NIOServerCnxn.doIO WARNING Exception causing close of session 0x13a3df15fe80001 due to java.io.IOException: An existing connection was forcibly closed by the remote host
[junit4:junit4]   2> 6987 T1194 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server 127.0.0.1/127.0.0.1:60166
[junit4:junit4]   2> 6988 T1194 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60166, initiating session
[junit4:junit4]   2> 6988 T1188 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60173
[junit4:junit4]   2> 6988 T1188 oazs.NIOServerCnxn.readConnectRequest Client attempting to renew session 0x13a3df15fe80001 at /127.0.0.1:60173
[junit4:junit4]   2> 6988 T1188 oazs.NIOServerCnxn.finishSessionInit Invalid session 0x13a3df15fe80001 for client /127.0.0.1:60173, probably expired
[junit4:junit4]   2> 6990 T1195 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@984b1a name:ZooKeeperConnection Watcher:127.0.0.1:60166/solr got event WatchedEvent state:Expired type:None path:null path:null type:None
[junit4:junit4]   2> 6990 T1195 oascc.ConnectionManager.process Our previous ZooKeeper session was expired. Attempting to reconnect to recover relationship with ZooKeeper...
[junit4:junit4]   2> 6989 T1194 oaz.ClientCnxn$SendThread.run Unable to reconnect to ZooKeeper service, session 0x13a3df15fe80001 has expired, closing socket connection
[junit4:junit4]   2> 6990 T1188 oazs.NIOServerCnxn.closeSock Closed socket connection for client /127.0.0.1:60173 which had sessionid 0x13a3df15fe80001
[junit4:junit4]   2> 6990 T1195 oascc.DefaultConnectionStrategy.reconnect Connection expired - starting a new one...
[junit4:junit4]   2> 6991 T1195 oaz.ZooKeeper.<init> Initiating client connection, connectString=127.0.0.1:60166/solr sessionTimeout=1000 watcher=org.apache.solr.common.cloud.ConnectionManager@984b1a
[junit4:junit4]   2> 6992 T1195 oascc.ConnectionManager.waitForConnected Waiting for client to connect to ZooKeeper
[junit4:junit4]   2> 6992 T1198 oaz.ClientCnxn$SendThread.startConnect Opening socket connection to server /127.0.0.1:60166
[junit4:junit4]   2> 6996 T1198 oaz.ClientCnxn$SendThread.primeConnection Socket connection established to 127.0.0.1/127.0.0.1:60166, initiating session
[junit4:junit4]   2> 6996 T1188 oazs.NIOServerCnxn$Factory.run Accepted socket connection from /127.0.0.1:60176
[junit4:junit4]   2> 6997 T1188 oazs.NIOServerCnxn.readConnectRequest Client attempting to establish new session at /127.0.0.1:60176
[junit4:junit4]   2> 6999 T1190 oazs.NIOServerCnxn.finishSessionInit Established session 0x13a3df15fe80002 with negotiated timeout 2000 for client /127.0.0.1:60176
[junit4:junit4]   2> 7000 T1198 oaz.ClientCnxn$SendThread.readConnectResult Session establishment complete on server 127.0.0.1/127.0.0.1:60166, sessionid = 0x13a3df15fe80002, negotiated timeout = 2000
[junit4:junit4]   2> 7000 T1199 oascc.ConnectionManager.process Watcher org.apache.solr.common.cloud.ConnectionManager@984b1a name:ZooKeeperConnection Watcher:127.0.0.1:60166/solr got event WatchedEvent state:SyncConnected type:None path:null path:null type:None
[junit4:junit4]   2> 7001 T1195 oascc.ConnectionManager.waitForConnected Client is connected to ZooKeeper
[junit4:junit4]   2> 7001 T1195 oascc.ConnectionManager$1.update Connection with ZooKeeper reestablished.
[junit4:junit4]   2> 7004 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:delete cxid:0x3 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer_elect/leader Error:KeeperErrorCode = NoNode for /solr/overseer_elect/leader
[junit4:junit4]   2> 7006 T1195 oascc.SolrZkClient.makePath makePath: /overseer_elect/leader
[junit4:junit4]   2> 7010 T1195 oasc.Overseer.start Overseer (id=88451249592598530-127.0.0.1:8983_solr-n_0000000004) starting
[junit4:junit4]   2> 7010 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:create cxid:0x8 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 7012 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:create cxid:0x9 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 7014 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:create cxid:0xa zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 7015 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:create cxid:0xb zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/overseer Error:KeeperErrorCode = NodeExists for /solr/overseer
[junit4:junit4]   2> 7017 T1201 oasc.OverseerCollectionProcessor.run Process current queue of collection creations
[junit4:junit4]   2> 7018 T1195 oascc.ZkStateReader.createClusterStateWatchersAndUpdate Updating cluster state from ZooKeeper... 
[junit4:junit4]   2> 7020 T1195 oasc.ZkController.createEphemeralLiveNode Register node as live in ZooKeeper:/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 7020 T1191 oazs.PrepRequestProcessor.pRequest Got user-level KeeperException when processing sessionid:0x13a3df15fe80002 type:delete cxid:0x14 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/solr/live_nodes/127.0.0.1:8983_solr Error:KeeperErrorCode = NoNode for /solr/live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 7021 T1200 oasc.Overseer$ClusterStateUpdater.run Starting to work on the main queue
[junit4:junit4]   2> 7022 T1195 oascc.SolrZkClient.makePath makePath: /live_nodes/127.0.0.1:8983_solr
[junit4:junit4]   2> 7025 T1199 oascc.ZkStateReader$3.process Updating live nodes
[junit4:junit4]   2> 7026 T1195 oascc.DefaultConnectionStrategy.reconnect Reconnected to ZooKeeper
[junit4:junit4]   2> 7026 T1195 oascc.ConnectionManager.process Connected:true
[junit4:junit4]   2> 7026 T1195 oaz.ClientCnxn$EventThread.run EventThread shut down
[junit4:junit4]   2> 7101 T1196 oasc.Overseer$ClusterStateUpdater.amILeader WARNING  org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /overseer_elect/leader
[junit4:junit4]   2> 	at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
[junit4:junit4]   2> 	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
[junit4:junit4]   2> 	at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:927)
[junit4:junit4]   2> 	at org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:244)
[junit4:junit4]   2> 	at org.apache.solr.common.cloud.SolrZkClient$7.execute(SolrZkClient.java:241)
[junit4:junit4]   2> 	at org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:63)
[junit4:junit4]   2> 	at org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:241)
[junit4:junit4]   2> 	at org.apache.solr.cloud.Overseer$ClusterStateUpdater.amILeader(Overseer.java:195)
[junit4:junit4]   2> 	at org.apache.solr.cloud.Overseer$ClusterStateUpdater.run(Overseer.java:119)
[junit4:junit4]   2> 	at java.lang.Thread.run(Thread.java:722)
[junit4:junit4]   2> 
[junit4:junit4]   2> 7102 T1196 oasc.Overseer$ClusterStateUpdater.amILeader According to ZK I (id=88451249592598529-127.0.0.1:8983_solr-n_0000000002) am no longer a leader.
[junit4:junit4]   2> 7101 T1197 oasc.OverseerCollectionProcessor.run WARNING Overseer cannot talk to ZK
[junit4:junit4]   1> / (6)
[junit4:junit4]   1>  /configs (2)
[junit4:junit4]   1>   /configs/config1 (18)
[junit4:junit4]   1>    /configs/config1/admin-extra.menu-top.html (0)
[junit4:junit4]   1>    DATA:
[junit4:junit4]   1>        <!-- admin-extra.menu-top.html -->
[junit4:junit4]   1>        
[junit4:junit4]   1>    /configs/config1/currency.xml (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/protwords.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/mapping-FoldToASCII.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/solrconfig.xml (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/stopwords.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/lang (38)
[junit4:junit4]   1>     /configs/config1/lang/contractions_ga.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_hi.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_eu.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/userdict_ja.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_sv.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/contractions_it.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_es.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stoptags_ja.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stemdict_nl.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_bg.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_hy.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_el.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/hyphenations_ga.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ar.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_fr.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_pt.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_nl.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_th.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_de.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_lv.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/contractions_ca.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ru.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ca.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_da.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_gl.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_no.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_tr.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_fa.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_hu.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ro.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_id.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ja.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_cz.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_it.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_fi.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/contractions_fr.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_ga.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>     /configs/config1/lang/stopwords_en.txt (0)
[junit4:junit4]   1>     DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/spellings.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/mapping-ISOLatin1Accent.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/admin-extra.html (0)
[junit4:junit4]   1>    DATA:
[junit4:junit4]   1>        <!--
[junit4:junit4]   1>         Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>         contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>         this work for additional information regarding copyright ownership.
[junit4:junit4]   1>         The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>         (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>         the License.  You may obtain a copy of the License at
[junit4:junit4]   1>        
[junit4:junit4]   1>             http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>        
[junit4:junit4]   1>         Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>         distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>         WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>         See the License for the specific language governing permissions and
[junit4:junit4]   1>         limitations under the License.
[junit4:junit4]   1>        -->
[junit4:junit4]   1>        
[junit4:junit4]   1>        <!-- The content of this page will be statically included into the top
[junit4:junit4]   1>        of the admin page.  Uncomment this as an example to see there the content
[junit4:junit4]   1>        will show up.
[junit4:junit4]   1>        
[junit4:junit4]   1>        <hr>
[junit4:junit4]   1>        <i>This line will appear before the first table</i>
[junit4:junit4]   1>        <tr>
[junit4:junit4]   1>        <td colspan="2">
[junit4:junit4]   1>        This row will be appended to the end of the first table
[junit4:junit4]   1>        </td>
[junit4:junit4]   1>        </tr>
[junit4:junit4]   1>        <hr>
[junit4:junit4]   1>        
[junit4:junit4]   1>        -->
[junit4:junit4]   1>        
[junit4:junit4]   1>    /configs/config1/xslt (5)
[junit4:junit4]   1>     /configs/config1/xslt/luke.xsl (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <?xml version="1.0" encoding="UTF-8"?>
[junit4:junit4]   1>         <!--
[junit4:junit4]   1>             Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>             contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>             this work for additional information regarding copyright ownership.
[junit4:junit4]   1>             The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>             (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>             the License.  You may obtain a copy of the License at
[junit4:junit4]   1>             
[junit4:junit4]   1>             http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>             
[junit4:junit4]   1>             Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>             distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>             WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>             See the License for the specific language governing permissions and
[junit4:junit4]   1>             limitations under the License.
[junit4:junit4]   1>         -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>           Display the luke request handler with graphs
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         <xsl:stylesheet
[junit4:junit4]   1>             xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
[junit4:junit4]   1>             xmlns="http://www.w3.org/1999/xhtml"
[junit4:junit4]   1>             version="1.0"
[junit4:junit4]   1>             >
[junit4:junit4]   1>             <xsl:output
[junit4:junit4]   1>                 method="html"
[junit4:junit4]   1>                 encoding="UTF-8"
[junit4:junit4]   1>                 media-type="text/html"
[junit4:junit4]   1>                 doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
[junit4:junit4]   1>                 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[junit4:junit4]   1>             />
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:variable name="title">Solr Luke Request Handler Response</xsl:variable>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template match="/">
[junit4:junit4]   1>                 <html xmlns="http://www.w3.org/1999/xhtml">
[junit4:junit4]   1>                     <head>
[junit4:junit4]   1>                         <link rel="stylesheet" type="text/css" href="solr-admin.css"/>
[junit4:junit4]   1>                         <link rel="icon" href="favicon.ico" type="image/ico"/>
[junit4:junit4]   1>                         <link rel="shortcut icon" href="favicon.ico" type="image/ico"/>
[junit4:junit4]   1>                         <title>
[junit4:junit4]   1>                             <xsl:value-of select="$title"/>
[junit4:junit4]   1>                         </title>
[junit4:junit4]   1>                         <xsl:call-template name="css"/>
[junit4:junit4]   1>         
[junit4:junit4]   1>                     </head>
[junit4:junit4]   1>                     <body>
[junit4:junit4]   1>                         <h1>
[junit4:junit4]   1>                             <xsl:value-of select="$title"/>
[junit4:junit4]   1>                         </h1>
[junit4:junit4]   1>                         <div class="doc">
[junit4:junit4]   1>                             <ul>
[junit4:junit4]   1>                                 <xsl:if test="response/lst[@name='index']">
[junit4:junit4]   1>                                     <li>
[junit4:junit4]   1>                                         <a href="#index">Index Statistics</a>
[junit4:junit4]   1>                                     </li>
[junit4:junit4]   1>                                 </xsl:if>
[junit4:junit4]   1>                                 <xsl:if test="response/lst[@name='fields']">
[junit4:junit4]   1>                                     <li>
[junit4:junit4]   1>                                         <a href="#fields">Field Statistics</a>
[junit4:junit4]   1>                                         <ul>
[junit4:junit4]   1>                                             <xsl:for-each select="response/lst[@name='fields']/lst">
[junit4:junit4]   1>                                                 <li>
[junit4:junit4]   1>                                                     <a href="#{@name}">
[junit4:junit4]   1>                                                         <xsl:value-of select="@name"/>
[junit4:junit4]   1>                                                     </a>
[junit4:junit4]   1>                                                 </li>
[junit4:junit4]   1>                                             </xsl:for-each>
[junit4:junit4]   1>                                         </ul>
[junit4:junit4]   1>                                     </li>
[junit4:junit4]   1>                                 </xsl:if>
[junit4:junit4]   1>                                 <xsl:if test="response/lst[@name='doc']">
[junit4:junit4]   1>                                     <li>
[junit4:junit4]   1>                                         <a href="#doc">Document statistics</a>
[junit4:junit4]   1>                                     </li>
[junit4:junit4]   1>                                 </xsl:if>
[junit4:junit4]   1>                             </ul>
[junit4:junit4]   1>                         </div>
[junit4:junit4]   1>                         <xsl:if test="response/lst[@name='index']">
[junit4:junit4]   1>                             <h2><a name="index"/>Index Statistics</h2>
[junit4:junit4]   1>                             <xsl:apply-templates select="response/lst[@name='index']"/>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                         <xsl:if test="response/lst[@name='fields']">
[junit4:junit4]   1>                             <h2><a name="fields"/>Field Statistics</h2>
[junit4:junit4]   1>                             <xsl:apply-templates select="response/lst[@name='fields']"/>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                         <xsl:if test="response/lst[@name='doc']">
[junit4:junit4]   1>                             <h2><a name="doc"/>Document statistics</h2>
[junit4:junit4]   1>                             <xsl:apply-templates select="response/lst[@name='doc']"/>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                     </body>
[junit4:junit4]   1>                 </html>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template match="lst">
[junit4:junit4]   1>                 <xsl:if test="parent::lst">
[junit4:junit4]   1>                     <tr>
[junit4:junit4]   1>                         <td colspan="2">
[junit4:junit4]   1>                             <div class="doc">
[junit4:junit4]   1>                                 <xsl:call-template name="list"/>
[junit4:junit4]   1>                             </div>
[junit4:junit4]   1>                         </td>
[junit4:junit4]   1>                     </tr>
[junit4:junit4]   1>                 </xsl:if>
[junit4:junit4]   1>                 <xsl:if test="not(parent::lst)">
[junit4:junit4]   1>                     <div class="doc">
[junit4:junit4]   1>                         <xsl:call-template name="list"/>
[junit4:junit4]   1>                     </div>
[junit4:junit4]   1>                 </xsl:if>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="list">
[junit4:junit4]   1>                 <xsl:if test="count(child::*)>0">
[junit4:junit4]   1>                     <table>
[junit4:junit4]   1>                         <thead>
[junit4:junit4]   1>                             <tr>
[junit4:junit4]   1>                                 <th colspan="2">
[junit4:junit4]   1>                                     <p>
[junit4:junit4]   1>                                         <a name="{@name}"/>
[junit4:junit4]   1>                                     </p>
[junit4:junit4]   1>                                     <xsl:value-of select="@name"/>
[junit4:junit4]   1>                                 </th>
[junit4:junit4]   1>                             </tr>
[junit4:junit4]   1>                         </thead>
[junit4:junit4]   1>                         <tbody>
[junit4:junit4]   1>                             <xsl:choose>
[junit4:junit4]   1>                                 <xsl:when
[junit4:junit4]   1>                                     test="@name='histogram'">
[junit4:junit4]   1>                                     <tr>
[junit4:junit4]   1>                                         <td colspan="2">
[junit4:junit4]   1>                                             <xsl:call-template name="histogram"/>
[junit4:junit4]   1>                                         </td>
[junit4:junit4]   1>                                     </tr>
[junit4:junit4]   1>                                 </xsl:when>
[junit4:junit4]   1>                                 <xsl:otherwise>
[junit4:junit4]   1>                                     <xsl:apply-templates/>
[junit4:junit4]   1>                                 </xsl:otherwise>
[junit4:junit4]   1>                             </xsl:choose>
[junit4:junit4]   1>                         </tbody>
[junit4:junit4]   1>                     </table>
[junit4:junit4]   1>                 </xsl:if>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="histogram">
[junit4:junit4]   1>                 <div class="doc">
[junit4:junit4]   1>                     <xsl:call-template name="barchart">
[junit4:junit4]   1>                         <xsl:with-param name="max_bar_width">50</xsl:with-param>
[junit4:junit4]   1>                         <xsl:with-param name="iwidth">800</xsl:with-param>
[junit4:junit4]   1>                         <xsl:with-param name="iheight">160</xsl:with-param>
[junit4:junit4]   1>                         <xsl:with-param name="fill">blue</xsl:with-param>
[junit4:junit4]   1>                     </xsl:call-template>
[junit4:junit4]   1>                 </div>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="barchart">
[junit4:junit4]   1>                 <xsl:param name="max_bar_width"/>
[junit4:junit4]   1>                 <xsl:param name="iwidth"/>
[junit4:junit4]   1>                 <xsl:param name="iheight"/>
[junit4:junit4]   1>                 <xsl:param name="fill"/>
[junit4:junit4]   1>                 <xsl:variable name="max">
[junit4:junit4]   1>                     <xsl:for-each select="int">
[junit4:junit4]   1>                         <xsl:sort data-type="number" order="descending"/>
[junit4:junit4]   1>                         <xsl:if test="position()=1">
[junit4:junit4]   1>                             <xsl:value-of select="."/>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                     </xsl:for-each>
[junit4:junit4]   1>                 </xsl:variable>
[junit4:junit4]   1>                 <xsl:variable name="bars">
[junit4:junit4]   1>                    <xsl:value-of select="count(int)"/>
[junit4:junit4]   1>                 </xsl:variable>
[junit4:junit4]   1>                 <xsl:variable name="bar_width">
[junit4:junit4]   1>                    <xsl:choose>
[junit4:junit4]   1>                      <xsl:when test="$max_bar_width &lt; ($iwidth div $bars)">
[junit4:junit4]   1>                        <xsl:value-of select="$max_bar_width"/>
[junit4:junit4]   1>                      </xsl:when>
[junit4:junit4]   1>                      <xsl:otherwise>
[junit4:junit4]   1>                        <xsl:value-of select="$iwidth div $bars"/>
[junit4:junit4]   1>                      </xsl:otherwise>
[junit4:junit4]   1>                    </xsl:choose>
[junit4:junit4]   1>                 </xsl:variable>
[junit4:junit4]   1>                 <table class="histogram">
[junit4:junit4]   1>                    <tbody>
[junit4:junit4]   1>                       <tr>
[junit4:junit4]   1>                         <xsl:for-each select="int">
[junit4:junit4]   1>                            <td>
[junit4:junit4]   1>                          <xsl:value-of select="."/>
[junit4:junit4]   1>                          <div class="histogram">
[junit4:junit4]   1>                           <xsl:attribute name="style">background-color: <xsl:value-of select="$fill"/>; width: <xsl:value-of select="$bar_width"/>px; height: <xsl:value-of select="($iheight*number(.)) div $max"/>px;</xsl:attribute>
[junit4:junit4]   1>                          </div>
[junit4:junit4]   1>                            </td> 
[junit4:junit4]   1>                         </xsl:for-each>
[junit4:junit4]   1>                       </tr>
[junit4:junit4]   1>                       <tr>
[junit4:junit4]   1>                         <xsl:for-each select="int">
[junit4:junit4]   1>                            <td>
[junit4:junit4]   1>                                <xsl:value-of select="@name"/>
[junit4:junit4]   1>                            </td>
[junit4:junit4]   1>                         </xsl:for-each>
[junit4:junit4]   1>                       </tr>
[junit4:junit4]   1>                    </tbody>
[junit4:junit4]   1>                 </table>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="keyvalue">
[junit4:junit4]   1>                 <xsl:choose>
[junit4:junit4]   1>                     <xsl:when test="@name">
[junit4:junit4]   1>                         <tr>
[junit4:junit4]   1>                             <td class="name">
[junit4:junit4]   1>                                 <xsl:value-of select="@name"/>
[junit4:junit4]   1>                             </td>
[junit4:junit4]   1>                             <td class="value">
[junit4:junit4]   1>                                 <xsl:value-of select="."/>
[junit4:junit4]   1>                             </td>
[junit4:junit4]   1>                         </tr>
[junit4:junit4]   1>                     </xsl:when>
[junit4:junit4]   1>                     <xsl:otherwise>
[junit4:junit4]   1>                         <xsl:value-of select="."/>
[junit4:junit4]   1>                     </xsl:otherwise>
[junit4:junit4]   1>                 </xsl:choose>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template match="int|bool|long|float|double|uuid|date">
[junit4:junit4]   1>                 <xsl:call-template name="keyvalue"/>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template match="arr">
[junit4:junit4]   1>                 <tr>
[junit4:junit4]   1>                     <td class="name">
[junit4:junit4]   1>                         <xsl:value-of select="@name"/>
[junit4:junit4]   1>                     </td>
[junit4:junit4]   1>                     <td class="value">
[junit4:junit4]   1>                         <ul>
[junit4:junit4]   1>                             <xsl:for-each select="child::*">
[junit4:junit4]   1>                                 <li>
[junit4:junit4]   1>                                     <xsl:apply-templates/>
[junit4:junit4]   1>                                 </li>
[junit4:junit4]   1>                             </xsl:for-each>
[junit4:junit4]   1>                         </ul>
[junit4:junit4]   1>                     </td>
[junit4:junit4]   1>                 </tr>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template match="str">
[junit4:junit4]   1>                 <xsl:choose>
[junit4:junit4]   1>                     <xsl:when test="@name='schema' or @name='index' or @name='flags'">
[junit4:junit4]   1>                         <xsl:call-template name="schema"/>
[junit4:junit4]   1>                     </xsl:when>
[junit4:junit4]   1>                     <xsl:otherwise>
[junit4:junit4]   1>                         <xsl:call-template name="keyvalue"/>
[junit4:junit4]   1>                     </xsl:otherwise>
[junit4:junit4]   1>                 </xsl:choose>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="schema">
[junit4:junit4]   1>                 <tr>
[junit4:junit4]   1>                     <td class="name">
[junit4:junit4]   1>                         <xsl:value-of select="@name"/>
[junit4:junit4]   1>                     </td>
[junit4:junit4]   1>                     <td class="value">
[junit4:junit4]   1>                         <xsl:if test="contains(.,'unstored')">
[junit4:junit4]   1>                             <xsl:value-of select="."/>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                         <xsl:if test="not(contains(.,'unstored'))">
[junit4:junit4]   1>                             <xsl:call-template name="infochar2string">
[junit4:junit4]   1>                                 <xsl:with-param name="charList">
[junit4:junit4]   1>                                     <xsl:value-of select="."/>
[junit4:junit4]   1>                                 </xsl:with-param>
[junit4:junit4]   1>                             </xsl:call-template>
[junit4:junit4]   1>                         </xsl:if>
[junit4:junit4]   1>                     </td>
[junit4:junit4]   1>                 </tr>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>             <xsl:template name="infochar2string">
[junit4:junit4]   1>                 <xsl:param name="i">1</xsl:param>
[junit4:junit4]   1>                 <xsl:param name="charList"/>
[junit4:junit4]   1>         
[junit4:junit4]   1>                 <xsl:variable name="char">
[junit4:junit4]   1>                     <xsl:value-of select="substring($charList,$i,1)"/>
[junit4:junit4]   1>                 </xsl:variable>
[junit4:junit4]   1>                 <xsl:choose>
[junit4:junit4]   1>                     <xsl:when test="$char='I'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='I']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='T'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='T']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='S'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='S']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='M'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='M']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='V'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='V']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='o'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='o']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='p'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='p']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='O'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='O']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='L'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='L']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='B'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='B']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='C'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='C']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='f'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='f']"/> - </xsl:when>
[junit4:junit4]   1>                     <xsl:when test="$char='l'">
[junit4:junit4]   1>                         <xsl:value-of select="/response/lst[@name='info']/lst/str[@name='l']"/> -
[junit4:junit4]   1>                     </xsl:when>
[junit4:junit4]   1>                 </xsl:choose>
[junit4:junit4]   1>         
[junit4:junit4]   1>                 <xsl:if test="not($i>=string-length($charList))">
[junit4:junit4]   1>                     <xsl:call-template name="infochar2string">
[junit4:junit4]   1>                         <xsl:with-param name="i">
[junit4:junit4]   1>                             <xsl:value-of select="$i+1"/>
[junit4:junit4]   1>                         </xsl:with-param>
[junit4:junit4]   1>                         <xsl:with-param name="charList">
[junit4:junit4]   1>                             <xsl:value-of select="$charList"/>
[junit4:junit4]   1>                         </xsl:with-param>
[junit4:junit4]   1>                     </xsl:call-template>
[junit4:junit4]   1>                 </xsl:if>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>             <xsl:template name="css">
[junit4:junit4]   1>                 <style type="text/css">
[junit4:junit4]   1>                     <![CDATA[
[junit4:junit4]   1>                     td.name {font-style: italic; font-size:80%; }
[junit4:junit4]   1>                     .doc { margin: 0.5em; border: solid grey 1px; }
[junit4:junit4]   1>                     .exp { display: none; font-family: monospace; white-space: pre; }
[junit4:junit4]   1>                     div.histogram { background: none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;}
[junit4:junit4]   1>                     table.histogram { width: auto; vertical-align: bottom; }
[junit4:junit4]   1>                     table.histogram td, table.histogram th { text-align: center; vertical-align: bottom; border-bottom: 1px solid #ff9933; width: auto; }
[junit4:junit4]   1>                     ]]>
[junit4:junit4]   1>                 </style>
[junit4:junit4]   1>             </xsl:template>
[junit4:junit4]   1>         </xsl:stylesheet>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/xslt/updateXml.xsl (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>          * Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>          * contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>          * this work for additional information regarding copyright ownership.
[junit4:junit4]   1>          * The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>          * (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>          * the License.  You may obtain a copy of the License at
[junit4:junit4]   1>          *
[junit4:junit4]   1>          *     http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>          * distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>          * See the License for the specific language governing permissions and
[junit4:junit4]   1>          * limitations under the License.
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!--
[junit4:junit4]   1>           Simple transform of Solr query response into Solr Update XML compliant XML.
[junit4:junit4]   1>           When used in the xslt response writer you will get UpdaateXML as output.
[junit4:junit4]   1>           But you can also store a query response XML to disk and feed this XML to
[junit4:junit4]   1>           the XSLTUpdateRequestHandler to index the content. Provided as example only.
[junit4:junit4]   1>           See http://wiki.apache.org/solr/XsltUpdateRequestHandler for more info
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         <xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
[junit4:junit4]   1>           <xsl:output media-type="text/xml" method="xml" indent="yes"/>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match='/'>
[junit4:junit4]   1>             <add>
[junit4:junit4]   1>                 <xsl:apply-templates select="response/result/doc"/>
[junit4:junit4]   1>             </add>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>           
[junit4:junit4]   1>           <!-- Ignore score (makes no sense to index) -->
[junit4:junit4]   1>           <xsl:template match="doc/*[@name='score']" priority="100">
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="doc">
[junit4:junit4]   1>             <xsl:variable name="pos" select="position()"/>
[junit4:junit4]   1>             <doc>
[junit4:junit4]   1>                 <xsl:apply-templates>
[junit4:junit4]   1>                   <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param>
[junit4:junit4]   1>                 </xsl:apply-templates>
[junit4:junit4]   1>             </doc>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <!-- Flatten arrays to duplicate field lines -->
[junit4:junit4]   1>           <xsl:template match="doc/arr" priority="100">
[junit4:junit4]   1>               <xsl:variable name="fn" select="@name"/>
[junit4:junit4]   1>               
[junit4:junit4]   1>               <xsl:for-each select="*">
[junit4:junit4]   1>         		<xsl:element name="field">
[junit4:junit4]   1>         		    <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute>
[junit4:junit4]   1>         	        <xsl:value-of select="."/>
[junit4:junit4]   1>         		</xsl:element>
[junit4:junit4]   1>               </xsl:for-each>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="doc/*">
[junit4:junit4]   1>               <xsl:variable name="fn" select="@name"/>
[junit4:junit4]   1>         
[junit4:junit4]   1>         	<xsl:element name="field">
[junit4:junit4]   1>         	    <xsl:attribute name="name"><xsl:value-of select="$fn"/></xsl:attribute>
[junit4:junit4]   1>                 <xsl:value-of select="."/>
[junit4:junit4]   1>         	</xsl:element>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="*"/>
[junit4:junit4]   1>         </xsl:stylesheet>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/xslt/example_atom.xsl (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <?xml version='1.0' encoding='UTF-8'?>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>          * Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>          * contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>          * this work for additional information regarding copyright ownership.
[junit4:junit4]   1>          * The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>          * (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>          * the License.  You may obtain a copy of the License at
[junit4:junit4]   1>          *
[junit4:junit4]   1>          *     http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>          * distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>          * See the License for the specific language governing permissions and
[junit4:junit4]   1>          * limitations under the License.
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>           Simple transform of Solr query results to Atom
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <xsl:stylesheet version='1.0'
[junit4:junit4]   1>             xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:output
[junit4:junit4]   1>                method="xml"
[junit4:junit4]   1>                encoding="utf-8"
[junit4:junit4]   1>                media-type="application/xml"
[junit4:junit4]   1>           />
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match='/'>
[junit4:junit4]   1>             <xsl:variable name="query" select="response/lst[@name='responseHeader']/lst[@name='params']/str[@name='q']"/>
[junit4:junit4]   1>             <feed xmlns="http://www.w3.org/2005/Atom">
[junit4:junit4]   1>               <title>Example Solr Atom 1.0 Feed</title>
[junit4:junit4]   1>               <subtitle>
[junit4:junit4]   1>                This has been formatted by the sample "example_atom.xsl" transform -
[junit4:junit4]   1>                use your own XSLT to get a nicer Atom feed.
[junit4:junit4]   1>               </subtitle>
[junit4:junit4]   1>               <author>
[junit4:junit4]   1>                 <name>Apache Solr</name>
[junit4:junit4]   1>                 <email>solr-user@lucene.apache.org</email>
[junit4:junit4]   1>               </author>
[junit4:junit4]   1>               <link rel="self" type="application/atom+xml" 
[junit4:junit4]   1>                     href="http://localhost:8983/solr/q={$query}&amp;wt=xslt&amp;tr=atom.xsl"/>
[junit4:junit4]   1>               <updated>
[junit4:junit4]   1>                 <xsl:value-of select="response/result/doc[position()=1]/date[@name='timestamp']"/>
[junit4:junit4]   1>               </updated>
[junit4:junit4]   1>               <id>tag:localhost,2007:example</id>
[junit4:junit4]   1>               <xsl:apply-templates select="response/result/doc"/>
[junit4:junit4]   1>             </feed>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>             
[junit4:junit4]   1>           <!-- search results xslt -->
[junit4:junit4]   1>           <xsl:template match="doc">
[junit4:junit4]   1>             <xsl:variable name="id" select="str[@name='id']"/>
[junit4:junit4]   1>             <entry>
[junit4:junit4]   1>               <title><xsl:value-of select="str[@name='name']"/></title>
[junit4:junit4]   1>               <link href="http://localhost:8983/solr/select?q={$id}"/>
[junit4:junit4]   1>               <id>tag:localhost,2007:<xsl:value-of select="$id"/></id>
[junit4:junit4]   1>               <summary><xsl:value-of select="arr[@name='features']"/></summary>
[junit4:junit4]   1>               <updated><xsl:value-of select="date[@name='timestamp']"/></updated>
[junit4:junit4]   1>             </entry>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>         </xsl:stylesheet>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/xslt/example_rss.xsl (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <?xml version='1.0' encoding='UTF-8'?>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>          * Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>          * contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>          * this work for additional information regarding copyright ownership.
[junit4:junit4]   1>          * The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>          * (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>          * the License.  You may obtain a copy of the License at
[junit4:junit4]   1>          *
[junit4:junit4]   1>          *     http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>          * distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>          * See the License for the specific language governing permissions and
[junit4:junit4]   1>          * limitations under the License.
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>           Simple transform of Solr query results to RSS
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <xsl:stylesheet version='1.0'
[junit4:junit4]   1>             xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:output
[junit4:junit4]   1>                method="xml"
[junit4:junit4]   1>                encoding="utf-8"
[junit4:junit4]   1>                media-type="application/xml"
[junit4:junit4]   1>           />
[junit4:junit4]   1>           <xsl:template match='/'>
[junit4:junit4]   1>             <rss version="2.0">
[junit4:junit4]   1>                <channel>
[junit4:junit4]   1>         	 <title>Example Solr RSS 2.0 Feed</title>
[junit4:junit4]   1>                  <link>http://localhost:8983/solr</link>
[junit4:junit4]   1>                  <description>
[junit4:junit4]   1>                   This has been formatted by the sample "example_rss.xsl" transform -
[junit4:junit4]   1>                   use your own XSLT to get a nicer RSS feed.
[junit4:junit4]   1>                  </description>
[junit4:junit4]   1>                  <language>en-us</language>
[junit4:junit4]   1>                  <docs>http://localhost:8983/solr</docs>
[junit4:junit4]   1>                  <xsl:apply-templates select="response/result/doc"/>
[junit4:junit4]   1>                </channel>
[junit4:junit4]   1>             </rss>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>           
[junit4:junit4]   1>           <!-- search results xslt -->
[junit4:junit4]   1>           <xsl:template match="doc">
[junit4:junit4]   1>             <xsl:variable name="id" select="str[@name='id']"/>
[junit4:junit4]   1>             <xsl:variable name="timestamp" select="date[@name='timestamp']"/>
[junit4:junit4]   1>             <item>
[junit4:junit4]   1>               <title><xsl:value-of select="str[@name='name']"/></title>
[junit4:junit4]   1>               <link>
[junit4:junit4]   1>                 http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
[junit4:junit4]   1>               </link>
[junit4:junit4]   1>               <description>
[junit4:junit4]   1>                 <xsl:value-of select="arr[@name='features']"/>
[junit4:junit4]   1>               </description>
[junit4:junit4]   1>               <pubDate><xsl:value-of select="$timestamp"/></pubDate>
[junit4:junit4]   1>               <guid>
[junit4:junit4]   1>                 http://localhost:8983/solr/select?q=id:<xsl:value-of select="$id"/>
[junit4:junit4]   1>               </guid>
[junit4:junit4]   1>             </item>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         </xsl:stylesheet>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/xslt/example.xsl (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <?xml version='1.0' encoding='UTF-8'?>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>          * Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>          * contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>          * this work for additional information regarding copyright ownership.
[junit4:junit4]   1>          * The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>          * (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>          * the License.  You may obtain a copy of the License at
[junit4:junit4]   1>          *
[junit4:junit4]   1>          *     http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>          * distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>          * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>          * See the License for the specific language governing permissions and
[junit4:junit4]   1>          * limitations under the License.
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         
[junit4:junit4]   1>         <!-- 
[junit4:junit4]   1>           Simple transform of Solr query results to HTML
[junit4:junit4]   1>          -->
[junit4:junit4]   1>         <xsl:stylesheet version='1.0'
[junit4:junit4]   1>             xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
[junit4:junit4]   1>         >
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:output media-type="text/html" encoding="UTF-8"/> 
[junit4:junit4]   1>           
[junit4:junit4]   1>           <xsl:variable name="title" select="concat('Solr search results (',response/result/@numFound,' documents)')"/>
[junit4:junit4]   1>           
[junit4:junit4]   1>           <xsl:template match='/'>
[junit4:junit4]   1>             <html>
[junit4:junit4]   1>               <head>
[junit4:junit4]   1>                 <title><xsl:value-of select="$title"/></title>
[junit4:junit4]   1>                 <xsl:call-template name="css"/>
[junit4:junit4]   1>               </head>
[junit4:junit4]   1>               <body>
[junit4:junit4]   1>                 <h1><xsl:value-of select="$title"/></h1>
[junit4:junit4]   1>                 <div class="note">
[junit4:junit4]   1>                   This has been formatted by the sample "example.xsl" transform -
[junit4:junit4]   1>                   use your own XSLT to get a nicer page
[junit4:junit4]   1>                 </div>
[junit4:junit4]   1>                 <xsl:apply-templates select="response/result/doc"/>
[junit4:junit4]   1>               </body>
[junit4:junit4]   1>             </html>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>           
[junit4:junit4]   1>           <xsl:template match="doc">
[junit4:junit4]   1>             <xsl:variable name="pos" select="position()"/>
[junit4:junit4]   1>             <div class="doc">
[junit4:junit4]   1>               <table width="100%">
[junit4:junit4]   1>                 <xsl:apply-templates>
[junit4:junit4]   1>                   <xsl:with-param name="pos"><xsl:value-of select="$pos"/></xsl:with-param>
[junit4:junit4]   1>                 </xsl:apply-templates>
[junit4:junit4]   1>               </table>
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="doc/*[@name='score']" priority="100">
[junit4:junit4]   1>             <xsl:param name="pos"></xsl:param>
[junit4:junit4]   1>             <tr>
[junit4:junit4]   1>               <td class="name">
[junit4:junit4]   1>                 <xsl:value-of select="@name"/>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>               <td class="value">
[junit4:junit4]   1>                 <xsl:value-of select="."/>
[junit4:junit4]   1>         
[junit4:junit4]   1>                 <xsl:if test="boolean(//lst[@name='explain'])">
[junit4:junit4]   1>                   <xsl:element name="a">
[junit4:junit4]   1>                     <!-- can't allow whitespace here -->
[junit4:junit4]   1>                     <xsl:attribute name="href">javascript:toggle("<xsl:value-of select="concat('exp-',$pos)" />");</xsl:attribute>?</xsl:element>
[junit4:junit4]   1>                   <br/>
[junit4:junit4]   1>                   <xsl:element name="div">
[junit4:junit4]   1>                     <xsl:attribute name="class">exp</xsl:attribute>
[junit4:junit4]   1>                     <xsl:attribute name="id">
[junit4:junit4]   1>                       <xsl:value-of select="concat('exp-',$pos)" />
[junit4:junit4]   1>                     </xsl:attribute>
[junit4:junit4]   1>                     <xsl:value-of select="//lst[@name='explain']/str[position()=$pos]"/>
[junit4:junit4]   1>                   </xsl:element>
[junit4:junit4]   1>                 </xsl:if>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>             </tr>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="doc/arr" priority="100">
[junit4:junit4]   1>             <tr>
[junit4:junit4]   1>               <td class="name">
[junit4:junit4]   1>                 <xsl:value-of select="@name"/>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>               <td class="value">
[junit4:junit4]   1>                 <ul>
[junit4:junit4]   1>                 <xsl:for-each select="*">
[junit4:junit4]   1>                   <li><xsl:value-of select="."/></li>
[junit4:junit4]   1>                 </xsl:for-each>
[junit4:junit4]   1>                 </ul>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>             </tr>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="doc/*">
[junit4:junit4]   1>             <tr>
[junit4:junit4]   1>               <td class="name">
[junit4:junit4]   1>                 <xsl:value-of select="@name"/>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>               <td class="value">
[junit4:junit4]   1>                 <xsl:value-of select="."/>
[junit4:junit4]   1>               </td>
[junit4:junit4]   1>             </tr>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <xsl:template match="*"/>
[junit4:junit4]   1>           
[junit4:junit4]   1>           <xsl:template name="css">
[junit4:junit4]   1>             <script>
[junit4:junit4]   1>               function toggle(id) {
[junit4:junit4]   1>                 var obj = document.getElementById(id);
[junit4:junit4]   1>                 obj.style.display = (obj.style.display != 'block') ? 'block' : 'none';
[junit4:junit4]   1>               }
[junit4:junit4]   1>             </script>
[junit4:junit4]   1>             <style type="text/css">
[junit4:junit4]   1>               body { font-family: "Lucida Grande", sans-serif }
[junit4:junit4]   1>               td.name { font-style: italic; font-size:80%; }
[junit4:junit4]   1>               td { vertical-align: top; }
[junit4:junit4]   1>               ul { margin: 0px; margin-left: 1em; padding: 0px; }
[junit4:junit4]   1>               .note { font-size:80%; }
[junit4:junit4]   1>               .doc { margin-top: 1em; border-top: solid grey 1px; }
[junit4:junit4]   1>               .exp { display: none; font-family: monospace; white-space: pre; }
[junit4:junit4]   1>             </style>
[junit4:junit4]   1>           </xsl:template>
[junit4:junit4]   1>         
[junit4:junit4]   1>         </xsl:stylesheet>
[junit4:junit4]   1>         
[junit4:junit4]   1>    /configs/config1/synonyms.txt (0)
[junit4:junit4]   1>    DATA: ...supressed...
[junit4:junit4]   1>    /configs/config1/scripts.conf (0)
[junit4:junit4]   1>    DATA:
[junit4:junit4]   1>        # Licensed to the Apache Software Foundation (ASF) under one or more
[junit4:junit4]   1>        # contributor license agreements.  See the NOTICE file distributed with
[junit4:junit4]   1>        # this work for additional information regarding copyright ownership.
[junit4:junit4]   1>        # The ASF licenses this file to You under the Apache License, Version 2.0
[junit4:junit4]   1>        # (the "License"); you may not use this file except in compliance with
[junit4:junit4]   1>        # the License.  You may obtain a copy of the License at
[junit4:junit4]   1>        #
[junit4:junit4]   1>        #     http://www.apache.org/licenses/LICENSE-2.0
[junit4:junit4]   1>        #
[junit4:junit4]   1>        # Unless required by applicable law or agreed to in writing, software
[junit4:junit4]   1>        # distributed under the License is distributed on an "AS IS" BASIS,
[junit4:junit4]   1>        # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
[junit4:junit4]   1>        # See the License for the specific language governing permissions and
[junit4:junit4]   1>        # limitations under the License.
[junit4:junit4]   1>        
[junit4:junit4]   1>        user=
[junit4:junit4]   1>        solr_hostname=localhost
[junit4:junit4]   1>        solr_port=8983
[junit4:junit4]   1>        rsyncd_port=18983
[junit4:junit4]   1>        data_dir=
[junit4:junit4]   1>        webapp_name=solr
[junit4:junit4]   1>        master_host=
[junit4:junit4]   1>        master_data_dir=
[junit4:junit4]   1>        master_status_dir=
[junit4:junit4]   1>        
[junit4:junit4]   1>    /configs/config1/update-script.js (0)
[junit4:junit4]   1>    DATA:
[junit4:junit4]   1>        /*
[junit4:junit4]   1>          This is a basic skeleton JavaScript update processor.
[junit4:junit4]   1>        
[junit4:junit4]   1>          In order for this to be executed, it must be properly wired into solrconfig.xml; by default it is commented out in
[junit4:junit4]   1>          the example solrconfig.xml and must be uncommented to be enabled.
[junit4:junit4]   1>        
[junit4:junit4]   1>          See http://wiki.apache.org/solr/ScriptUpdateProcessor for more details.
[junit4:junit4]   1>        */
[junit4:junit4]   1>        
[junit4:junit4]   1>        function processAdd(cmd) {
[junit4:junit4]   1>        
[junit4:junit4]   1>          doc = cmd.solrDoc;  // org.apache.solr.common.SolrInputDocument
[junit4:junit4]   1>          id = doc.getFieldValue("id");
[junit4:junit4]   1>          logger.info("update-script#processAdd: id=" + id);
[junit4:junit4]   1>        
[junit4:junit4]   1>        // Set a field value:
[junit4:junit4]   1>        //  doc.setField("foo_s", "whatever");
[junit4:junit4]   1>        
[junit4:junit4]   1>        // Get a configuration parameter:
[junit4:junit4]   1>        //  config_param = params.get('config_param');  // "params" only exists if processor configured with <lst name="params">
[junit4:junit4]   1>        
[junit4:junit4]   1>        // Get a request parameter:
[junit4:junit4]   1>        // some_param = req.getParams().get("some_param")
[junit4:junit4]   1>        
[junit4:junit4]   1>        // Add a field of field names that match a pattern:
[junit4:junit4]   1>        //   - Potentially useful to determine the fields/attributes represented in a result set, via faceting on field_name_ss
[junit4:junit4]   1>        //  field_names = doc.getFieldNames().toArray();
[junit4:junit4]   1>        //  for(i=0; i < field_names.length; i++) {
[junit4:junit4]   1>        //    field_name = field_names[i];
[junit4:junit4]   1>        //    if (/attr_.*/.test(field_name)) { doc.addField("attribute_ss", field_names[i]); }
[junit4:junit4]   1>        //  }
[junit4:junit4]   1>        
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>        function processDelete(cmd) {
[junit4:junit4]   1>          // no-op
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>        function processMergeIndexes(cmd) {
[junit4:junit4]   1>          // no-op
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>        function processCommit(cmd) {
[junit4:junit4]   1>          // no-op
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>        function processRollback(cmd) {
[junit4:junit4]   1>          // no-op
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>        function finish() {
[junit4:junit4]   1>          // no-op
[junit4:junit4]   1>        }
[junit4:junit4]   1>        
[junit4:junit4]   1>    /configs/config1/velocity (27)
[junit4:junit4]   1>     /configs/config1/velocity/join-doc.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <div class="result-title"><b>#field('compName_s')</b></div>
[junit4:junit4]   1>         <div>Id: #field('id') (company-details document for <a href="http://wiki.apache.org/solr/Join" target="_new">join</a>)</div>
[junit4:junit4]   1>         <div>Address: #field('address_s')</div>
[junit4:junit4]   1>         #parse('debug.vm')
[junit4:junit4]   1>     /configs/config1/velocity/layout.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <html>
[junit4:junit4]   1>         <head>
[junit4:junit4]   1>           #parse("head.vm")
[junit4:junit4]   1>         </head>
[junit4:junit4]   1>           <body>
[junit4:junit4]   1>             <div id="admin"><a href="#url_root/#/#core_name">Solr Admin</a></div>
[junit4:junit4]   1>             <div id="header">
[junit4:junit4]   1>               #parse("header.vm")
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>             <div id="tabs">
[junit4:junit4]   1>               #parse("tabs.vm")
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>             <div id="content">
[junit4:junit4]   1>               $content
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>             <div id="footer">
[junit4:junit4]   1>               #parse("footer.vm")
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>           </body>
[junit4:junit4]   1>         </html>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/clusterResults.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #foreach ($clusters in $response.response.clusters)
[junit4:junit4]   1>             #set($labels = $clusters.get('labels'))
[junit4:junit4]   1>             #set($docs = $clusters.get('docs'))
[junit4:junit4]   1>             <h3>#foreach ($label in $labels)$label#if( $foreach.hasNext ),#end#end</h3>
[junit4:junit4]   1>                 <ol>
[junit4:junit4]   1>                 #foreach ($cluDoc in $docs)
[junit4:junit4]   1>                   <li><a href="#url_for_home?q=id:$cluDoc">$cluDoc</a></li>
[junit4:junit4]   1>                 #end
[junit4:junit4]   1>                 </ol>
[junit4:junit4]   1>                 
[junit4:junit4]   1>             
[junit4:junit4]   1>         #end
[junit4:junit4]   1>     /configs/config1/velocity/debug.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #if($params.getBool("debugQuery",false))
[junit4:junit4]   1>           <a href="#" onclick='jQuery(this).siblings("pre").toggle(); return false;'>toggle explain</a>
[junit4:junit4]   1>           <pre style="display:none">$response.getExplainMap().get($doc.getFirstValue('id'))</pre>
[junit4:junit4]   1>           <a href="#" onclick='jQuery(this).siblings("pre2").toggle(); return false;'>toggle all fields</a>
[junit4:junit4]   1>           <pre2 style="display:none">
[junit4:junit4]   1>           #foreach($fieldname in $doc.fieldNames)
[junit4:junit4]   1>              <br>
[junit4:junit4]   1>                <span class="field-name">$fieldname :</span>
[junit4:junit4]   1>                <span>
[junit4:junit4]   1>                #foreach($value in $doc.getFieldValues($fieldname))
[junit4:junit4]   1>                  $esc.html($value)
[junit4:junit4]   1>                #end
[junit4:junit4]   1>                </span>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>            </br>
[junit4:junit4]   1>           </pre2>
[junit4:junit4]   1>         #end
[junit4:junit4]   1>     /configs/config1/velocity/facet_queries.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #set($field = $response.response.facet_counts.facet_queries)
[junit4:junit4]   1>         <h2 #annTitle("Facets generated by adding &facet.query= to the request")>Query Facets</h2>        
[junit4:junit4]   1>         #display_facet_query($field, "", "")
[junit4:junit4]   1>     /configs/config1/velocity/product-doc.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <div class="result-title"><b>#field('name')</b><span class="mlt">   #if($params.getBool('mlt', false) == false)<a href="#lensNoQ&q=id:$docId&mlt=true">More Like This</a>#end</span></div>
[junit4:junit4]   1>         ##do we have a physical store for this product
[junit4:junit4]   1>         #set($store = $doc.getFieldValue('store'))
[junit4:junit4]   1>         #if($store)<div class="map"><img src="http://maps.google.com/maps/api/staticmap?&zoom=12&size=150x80&maptype=roadmap&markers=$doc.getFieldValue('store')&sensor=false" /><div><small><a target="_map" href="http://maps.google.com/?q=$store&amp;source=embed">Larger Map</a></small></div></div>#end
[junit4:junit4]   1>         <div>Id: #field('id')</div>
[junit4:junit4]   1>         <div>Price: #field('price_c')</div>
[junit4:junit4]   1>         <div>Features: #field('features')</div>
[junit4:junit4]   1>         <div>In Stock: #field('inStock')</div>
[junit4:junit4]   1>         <div class="mlt">
[junit4:junit4]   1>           #set($mlt = $mltResults.get($docId))
[junit4:junit4]   1>           #set($mltOn = $params.getBool('mlt'))
[junit4:junit4]   1>           #if($mltOn == true)<div class="field-name">Similar Items</div>#end
[junit4:junit4]   1>           #if ($mltOn && $mlt && $mlt.size() > 0)
[junit4:junit4]   1>           <ul>
[junit4:junit4]   1>             #foreach($mltHit in $mlt)
[junit4:junit4]   1>               #set($mltId = $mltHit.getFieldValue('id'))
[junit4:junit4]   1>               <li><div><a href="#url_for_home?q=id:$mltId">$mltId</a></div><div><span class="field-name">Name:</span> $mltHit.getFieldValue('name')</div>
[junit4:junit4]   1>                 <div><span class="field-name">Price:</span> $!number.currency($mltHit.getFieldValue('price')) <span class="field-name">In Stock:</span> $mltHit.getFieldValue('inStock')</div>
[junit4:junit4]   1>         
[junit4:junit4]   1>               </li>
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           </ul>
[junit4:junit4]   1>           #elseif($mltOn && $mlt.size() == 0)
[junit4:junit4]   1>             <div>No Similar Items Found</div>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         #parse('debug.vm')
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/main.css (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #admin{
[junit4:junit4]   1>           text-align: right;
[junit4:junit4]   1>           vertical-align: top; 
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         #head{
[junit4:junit4]   1>           width: 100%;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         .array-field {
[junit4:junit4]   1>           border: 2px solid #474747;
[junit4:junit4]   1>           background: #FFE9D8;
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>           margin: 5px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .array-field-list li {
[junit4:junit4]   1>           list-style: circle;
[junit4:junit4]   1>           margin-left: 20px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .parsed_query_header {
[junit4:junit4]   1>           font-family: Helvetica, Arial, sans-serif;
[junit4:junit4]   1>           font-size: 10pt;
[junit4:junit4]   1>           font-weight: bold;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .parsed_query {
[junit4:junit4]   1>           font-family: Courier, Courier New, monospaced;
[junit4:junit4]   1>           font-size: 10pt;
[junit4:junit4]   1>           font-weight: normal;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         body {
[junit4:junit4]   1>           font-family: Helvetica, Arial, sans-serif;
[junit4:junit4]   1>           font-size: 10pt;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         a {
[junit4:junit4]   1>           color: #43a4b1;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .navigators {
[junit4:junit4]   1>           float: left;
[junit4:junit4]   1>           margin: 5px;
[junit4:junit4]   1>           margin-top: 0px;
[junit4:junit4]   1>           width: 185px;
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>           top: -20px;
[junit4:junit4]   1>           position: relative;  
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .navigators h2 {
[junit4:junit4]   1>           background: #FEC293;
[junit4:junit4]   1>           border: 1px solid #ce9d77;
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .navigators ul {
[junit4:junit4]   1>           list-style: none;
[junit4:junit4]   1>           margin: 0;
[junit4:junit4]   1>           margin-bottom: 5px;
[junit4:junit4]   1>           margin-top: 5px;
[junit4:junit4]   1>           padding-left: 10px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .navigators ul li {
[junit4:junit4]   1>           color: #999;
[junit4:junit4]   1>           padding: 2px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         .facet-field {
[junit4:junit4]   1>           font-weight: bold;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .highlight {
[junit4:junit4]   1>           color: white;
[junit4:junit4]   1>           background-color: gray;
[junit4:junit4]   1>           border: 1px black solid;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .highlight-box {
[junit4:junit4]   1>           margin-left: 15px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .field-name {
[junit4:junit4]   1>           font-weight: bold;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .highlighted-facet-field {
[junit4:junit4]   1>           background: white;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .constraints {
[junit4:junit4]   1>           margin-top: 10px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         #query-form{
[junit4:junit4]   1>           width: 80%;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         .query-box, .constraints {
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>           margin: 5px;
[junit4:junit4]   1>           font-weight: normal;
[junit4:junit4]   1>           font-size: 24px;
[junit4:junit4]   1>           letter-spacing: 0.08em;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .query-box #q {
[junit4:junit4]   1>           margin-left: 8px;
[junit4:junit4]   1>           width: 60%;
[junit4:junit4]   1>           height: 50px;
[junit4:junit4]   1>           border: 1px solid #999;
[junit4:junit4]   1>           font-size: 1em;
[junit4:junit4]   1>           padding: 0.4em;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .query-box {
[junit4:junit4]   1>           
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .query-boost {
[junit4:junit4]   1>           
[junit4:junit4]   1>           top: 10px;
[junit4:junit4]   1>           left: 50px;
[junit4:junit4]   1>           position: relative;
[junit4:junit4]   1>           font-size: 0.8em;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .query-box .inputs{
[junit4:junit4]   1>           left: 180px;
[junit4:junit4]   1>           position: relative;
[junit4:junit4]   1>           
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         #logo {
[junit4:junit4]   1>           margin: 10px;
[junit4:junit4]   1>           border-style: none;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .pagination {
[junit4:junit4]   1>           padding-left: 33%;
[junit4:junit4]   1>           background: #eee;
[junit4:junit4]   1>           margin: 5px;
[junit4:junit4]   1>           margin-left: 210px;
[junit4:junit4]   1>           padding-top: 5px;
[junit4:junit4]   1>           padding-bottom: 5px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .result-document {
[junit4:junit4]   1>           border: 1px solid #999;
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>           margin: 5px;
[junit4:junit4]   1>           margin-left: 210px;
[junit4:junit4]   1>           margin-bottom: 15px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .result-document div{
[junit4:junit4]   1>           padding: 5px;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .result-title{
[junit4:junit4]   1>           width:60%;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .result-body{
[junit4:junit4]   1>           background: #ddd;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .mlt{
[junit4:junit4]   1>           
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .map{
[junit4:junit4]   1>           float: right;
[junit4:junit4]   1>           position: relative;
[junit4:junit4]   1>           top: -25px;  
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .result-document:nth-child(2n+1) {
[junit4:junit4]   1>           background-color: #eee;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         .selected-facet-field {
[junit4:junit4]   1>           font-weight: bold;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         li.show {
[junit4:junit4]   1>           list-style: disc;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .group-value{
[junit4:junit4]   1>           font-weight: bold;
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>         .error {
[junit4:junit4]   1>           color: white;
[junit4:junit4]   1>           background-color: red;
[junit4:junit4]   1>           left: 210px;
[junit4:junit4]   1>           width:80%;
[junit4:junit4]   1>           position: relative;
[junit4:junit4]   1>         
[junit4:junit4]   1>         }
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/VM_global_library.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(param $key)$request.params.get($key)#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_root)/solr#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         ## TODO: s/url_for_solr/url_for_core/ and s/url_root/url_for_solr/
[junit4:junit4]   1>         #macro(core_name)$request.core.name#end
[junit4:junit4]   1>         #macro(url_for_solr)#{url_root}#if($request.core.name != "")/$request.core.name#end#end
[junit4:junit4]   1>         #macro(url_for_home)#url_for_solr/browse#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(q)&q=$!{esc.url($params.get('q'))}#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(fqs $p)#foreach($fq in $p)#if($velocityCount>1)&#{end}fq=$esc.url($fq)#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(debug)#if($request.params.get('debugQuery'))&debugQuery=true#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(boostPrice)#if($request.params.get('bf') == 'price')&bf=price#end#end        
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(annotate)#if($request.params.get('annotateBrowse'))&annotateBrowse=true#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(annTitle $msg)#if($annotate == true)title="$msg"#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(spatial)#if($request.params.get('sfield'))&sfield=store#end#if($request.params.get('pt'))&pt=$request.params.get('pt')#end#if($request.params.get('d'))&d=$request.params.get('d')#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(qOpts)#set($queryOpts = $request.params.get("queryOpts"))#if($queryOpts && $queryOpts != "")&queryOpts=$queryOpts#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(group)#if($request.params.getBool("group") == true)&group=true#end#if($request.params.get("group.field"))#foreach($grp in $request.params.getParams('group.field'))&group.field=$grp#end#end#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(lensNoQ)?#if($request.params.getParams('fq') and $list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#debug#boostPrice#annotate#spatial#qOpts#group#end
[junit4:junit4]   1>         #macro(lens)#lensNoQ#q#end
[junit4:junit4]   1>                 
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_lens)#{url_for_home}#lens#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_start $start)#url_for_home#lens&start=$start#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_filters $p)#url_for_home?#q#boostPrice#spatial#qOpts#if($list.size($p) > 0)&#fqs($p)#end#debug#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_nested_facet_query $field)#url_for_home#lens&fq=$esc.url($field)#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         ## TODO: convert to use {!raw f=$field}$value (with escaping of course)
[junit4:junit4]   1>         #macro(url_for_facet_filter $field $value)#url_for_home#lens&fq=$esc.url($field):%22$esc.url($value)%22#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_facet_date_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(url_for_facet_range_filter $field $value)#url_for_home#lens&fq=$esc.url($field):$esc.url($value)#end
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(link_to_previous_page $text)
[junit4:junit4]   1>           #if($page.current_page_number > 1)
[junit4:junit4]   1>             #set($prev_start = $page.start - $page.results_per_page)
[junit4:junit4]   1>             <a class="prev-page" href="#url_for_start($prev_start)">$text</a>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(link_to_next_page $text)
[junit4:junit4]   1>           #if($page.current_page_number < $page.page_count)
[junit4:junit4]   1>             #set($next_start = $page.start + $page.results_per_page)
[junit4:junit4]   1>             <a class="next-page" href="#url_for_start($next_start)">$text</a>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(link_to_page $page_number $text)
[junit4:junit4]   1>           #if($page_number == $page.current_page_number)
[junit4:junit4]   1>             $text
[junit4:junit4]   1>           #else
[junit4:junit4]   1>             #if($page_number <= $page.page_count)
[junit4:junit4]   1>               #set($page_start = $page_number * $page.results_per_page - $page.results_per_page)
[junit4:junit4]   1>               <a class="page" href="#url_for_start($page_start)">$text</a>
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(display_facet_query $field, $display, $fieldName)
[junit4:junit4]   1>           #if($field.size() > 0)
[junit4:junit4]   1>           <span class="facet-field">$display</span>
[junit4:junit4]   1>             <ul>
[junit4:junit4]   1>             #foreach ($facet in $field)
[junit4:junit4]   1>               #if ($facet.value > 0)
[junit4:junit4]   1>                 #set($facetURL = "#url_for_nested_facet_query($facet.key)")
[junit4:junit4]   1>                 #if ($facetURL != '')
[junit4:junit4]   1>                   <li><a href="$facetURL">$facet.key</a> ($facet.value)</li>
[junit4:junit4]   1>                 #end
[junit4:junit4]   1>               #end
[junit4:junit4]   1>             #end
[junit4:junit4]   1>             </ul>
[junit4:junit4]   1>           #end      
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(display_facet_range $field, $display, $fieldName, $start, $end, $gap, $before, $after)
[junit4:junit4]   1>           <span class="facet-field">$display</span>
[junit4:junit4]   1>             <ul>
[junit4:junit4]   1>             #if($before && $before != "")
[junit4:junit4]   1>               #set($value = "[* TO " + "#format_value($start)" + "}")
[junit4:junit4]   1>               #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
[junit4:junit4]   1>               <li><a href="$facetURL">Less than #format_value($start)</a> ($before)</li>
[junit4:junit4]   1>             #end
[junit4:junit4]   1>             #foreach ($facet in $field)
[junit4:junit4]   1>               #set($rangeEnd = "#range_get_to_value($facet.key, $gap)")
[junit4:junit4]   1>               #set($value = "[" + $facet.key + " TO " + $rangeEnd + "}")
[junit4:junit4]   1>               #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
[junit4:junit4]   1>               #if ($facetURL != '')
[junit4:junit4]   1>                 <li><a href="$facetURL">$facet.key - #format_value($rangeEnd)</a> ($facet.value)</li>
[junit4:junit4]   1>               #end
[junit4:junit4]   1>             #end
[junit4:junit4]   1>             #if($end && $end != "" && $after > 0)
[junit4:junit4]   1>               #set($value = "[" + "#format_value($end)" + " TO *}")
[junit4:junit4]   1>               #set($facetURL = "#url_for_facet_range_filter($fieldName, $value)")
[junit4:junit4]   1>               <li><a href="$facetURL">More than #format_value($end)</a> ($after)</li>
[junit4:junit4]   1>             #end
[junit4:junit4]   1>             </ul>
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         ## $pivots is a list of facet_pivot
[junit4:junit4]   1>         #macro(display_facet_pivot $pivots, $display)
[junit4:junit4]   1>           #if($pivots.size() > 0)
[junit4:junit4]   1>           <span class="facet-field">$display</span>
[junit4:junit4]   1>             <ul>
[junit4:junit4]   1>               #foreach ($pivot in $pivots)
[junit4:junit4]   1>                 #foreach ($entry in $pivot.value)
[junit4:junit4]   1>                   <a href="#url_for_facet_filter($entry.field, $entry.value)">$entry.field::$entry.value</a> ($entry.count)
[junit4:junit4]   1>                   <ul>
[junit4:junit4]   1>                     #foreach($nest in $entry.pivot)
[junit4:junit4]   1>                       <a href="#url_for_facet_filter($entry.field, $entry.value)&fq=$esc.url($nest.field):%22$esc.url($nest.value)%22">$nest.field::$nest.value</a> ($nest.count)
[junit4:junit4]   1>                     #end
[junit4:junit4]   1>                   </ul>
[junit4:junit4]   1>                 #end
[junit4:junit4]   1>               #end
[junit4:junit4]   1>             </ul>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(field $f)
[junit4:junit4]   1>           #if($response.response.highlighting.get($docId).get($f).get(0))
[junit4:junit4]   1>             #set($pad = "")
[junit4:junit4]   1>             #foreach($v in $response.response.highlighting.get($docId).get($f))
[junit4:junit4]   1>         $pad$v##
[junit4:junit4]   1>               #set($pad = " ... ")
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           #else
[junit4:junit4]   1>             #foreach($v in $doc.getFieldValues($f))
[junit4:junit4]   1>         $v##
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         #end  
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(utc_date $theDate)
[junit4:junit4]   1>         $date.format("yyyy-MM-dd'T'HH:mm:ss'Z'",$theDate,$date.getLocale(),$date.getTimeZone().getTimeZone("UTC"))##
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(format_value $val)
[junit4:junit4]   1>         #if(${val.class.name} == "java.util.Date")
[junit4:junit4]   1>         #utc_date($val)##
[junit4:junit4]   1>         #else
[junit4:junit4]   1>         $val##
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         #macro(range_get_to_value $inval, $gapval)
[junit4:junit4]   1>         #if(${gapval.class.name} == "java.lang.String")
[junit4:junit4]   1>         $inval$gapval##
[junit4:junit4]   1>         #elseif(${gapval.class.name} == "java.lang.Float" || ${inval.class.name} == "java.lang.Float")
[junit4:junit4]   1>         $math.toDouble($math.add($inval,$gapval))##
[junit4:junit4]   1>         #else
[junit4:junit4]   1>         $math.add($inval,$gapval)##
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         #end
[junit4:junit4]   1>     /configs/config1/velocity/hitGrouped.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <div class="result-document">
[junit4:junit4]   1>           <div class="result-title"><b>$grouping.key</b></div>
[junit4:junit4]   1>           <div>Total Matches in Group: $grouping.value.matches</div>
[junit4:junit4]   1>           <div>#foreach ($group in $grouping.value.groups)
[junit4:junit4]   1>             <div class="group-value">$group.groupValue <span #annTitle("The count of the number of documents in this group")>($group.doclist.numFound)</span></div>
[junit4:junit4]   1>             <div class="group-doclist" #annTitle("Contains the top scoring documents in the group")>
[junit4:junit4]   1>               #foreach ($doc in $group.doclist)
[junit4:junit4]   1>                 #set($docId = $doc.getFieldValue('id'))
[junit4:junit4]   1>                 #if($doc.getFieldValue('name'))
[junit4:junit4]   1>                   #parse("product-doc.vm")
[junit4:junit4]   1>                 #elseif($doc.getFieldValue('compName_s'))
[junit4:junit4]   1>                   #parse("join-doc.vm")
[junit4:junit4]   1>                 #else
[junit4:junit4]   1>                   #parse("richtext-doc.vm")
[junit4:junit4]   1>                 #end
[junit4:junit4]   1>               #end
[junit4:junit4]   1>             </div>
[junit4:junit4]   1>             #end</div>
[junit4:junit4]   1>           </div>
[junit4:junit4]   1>           #if($params.getBool("debugQuery",false))
[junit4:junit4]   1>             <a href="#" onclick='jQuery(this).siblings("pre").toggle(); return false;'>toggle explain</a>
[junit4:junit4]   1>             <pre style="display:none">$response.getExplainMap().get($doc.getFirstValue('id'))</pre>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/facets.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #parse('facet_fields.vm')
[junit4:junit4]   1>         #parse('facet_queries.vm')
[junit4:junit4]   1>         #parse('facet_ranges.vm')
[junit4:junit4]   1>         #parse('facet_pivot.vm')
[junit4:junit4]   1>         #parse('cluster.vm')
[junit4:junit4]   1>     /configs/config1/velocity/head.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         
[junit4:junit4]   1>             ## An example of using an arbitrary request parameter
[junit4:junit4]   1>             <title>#param('title')</title>
[junit4:junit4]   1>             <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
[junit4:junit4]   1>         
[junit4:junit4]   1>           <script type="text/javascript" src="#{url_root}/js/lib/jquery-1.7.2.min.js"></script>
[junit4:junit4]   1>           <link rel="stylesheet" type="text/css" href="#{url_for_solr}/admin/file?file=/velocity/main.css&contentType=text/css"/>
[junit4:junit4]   1>           <link rel="stylesheet" href="#{url_for_solr}/admin/file?file=/velocity/jquery.autocomplete.css&contentType=text/css" type="text/css" />
[junit4:junit4]   1>           <script type="text/javascript" src="#{url_for_solr}/admin/file?file=/velocity/jquery.autocomplete.js&contentType=text/javascript"></script>
[junit4:junit4]   1>         
[junit4:junit4]   1>         
[junit4:junit4]   1>             <script>
[junit4:junit4]   1>             $(document).ready(function(){
[junit4:junit4]   1>               $("\#q").autocomplete('#{url_for_solr}/terms', {  ## backslash escaped #q as that is a macro defined in VM_global_library.vm
[junit4:junit4]   1>                    extraParams:{
[junit4:junit4]   1>                      'terms.prefix': function() { return $("\#q").val();},
[junit4:junit4]   1>                      'terms.sort': 'count',
[junit4:junit4]   1>                      'terms.fl': 'name',
[junit4:junit4]   1>                      'wt': 'velocity',
[junit4:junit4]   1>                      'v.template': 'suggest'
[junit4:junit4]   1>                    }
[junit4:junit4]   1>                  }
[junit4:junit4]   1>               );
[junit4:junit4]   1>         
[junit4:junit4]   1>               // http://localhost:8983/solr/terms?terms.fl=name&terms.prefix=i&terms.sort=count
[junit4:junit4]   1>             });
[junit4:junit4]   1>         
[junit4:junit4]   1>             </script>
[junit4:junit4]   1>     /configs/config1/velocity/querySpatial.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #set($queryOpts = $params.get("queryOpts"))
[junit4:junit4]   1>         #if($queryOpts == "spatial")
[junit4:junit4]   1>         <div>
[junit4:junit4]   1>                 #set($loc = $request.params.get('pt'))
[junit4:junit4]   1>                 #set($dist = $request.params.get('d', "10"))
[junit4:junit4]   1>                 <label #annTitle("Add the &pt parameter")>Location Filter:
[junit4:junit4]   1>                   <select id="pt" name="pt">
[junit4:junit4]   1>                     <option value="none"
[junit4:junit4]   1>                     #if($loc == '')selected="true"#end>No Filter</option>
[junit4:junit4]   1>                     <option value="45.17614,-93.87341"
[junit4:junit4]   1>                     #if($loc == '45.17614,-93.87341')selected="true"#end>Buffalo, MN</option>
[junit4:junit4]   1>                     <option value="37.7752,-100.0232"
[junit4:junit4]   1>                     #if($loc == '37.7752,-100.0232')selected="true"#end>Dodge City, KS</option>
[junit4:junit4]   1>                     <option value="35.0752,-97.032"
[junit4:junit4]   1>                     #if($loc == '35.0752,-97.032')selected="true"#end>Oklahoma City, OK</option>
[junit4:junit4]   1>                     <option value="37.7752,-122.4232"
[junit4:junit4]   1>                     #if($loc == '37.7752,-122.4232')selected="true"#end>San Francisco CA</option>
[junit4:junit4]   1>                   </select>
[junit4:junit4]   1>           </label>
[junit4:junit4]   1>           <span #annTitle("Add the &d parameter")>Distance (KM): <input id="d" name="d" type="text" size="6"
[junit4:junit4]   1>                                                                         value="#if($dist != '')${dist}#{else}10#end"/></span>
[junit4:junit4]   1>         <input type="hidden" name="sfield" value="store"/>
[junit4:junit4]   1>         <input type="hidden" id="spatialFQ" name="fq" value=""/>
[junit4:junit4]   1>         <input type="hidden" name="queryOpts" value="spatial"/>        
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         <script type="text/javascript">
[junit4:junit4]   1>           $('#query-form').submit(function() {
[junit4:junit4]   1>             if ($("#pt").val() != "none") {
[junit4:junit4]   1>               $("#spatialFQ").val("{!bbox}");
[junit4:junit4]   1>             }
[junit4:junit4]   1>             $fqs = $("#allFQs").val();
[junit4:junit4]   1>             $fqs = $fqs.replace("{!bbox}", "");
[junit4:junit4]   1>             if ($fqs == ''){
[junit4:junit4]   1>               $("#allFQs").remove();
[junit4:junit4]   1>             }
[junit4:junit4]   1>             $("#allFQs").val($fqs);
[junit4:junit4]   1>             return true;
[junit4:junit4]   1>             });
[junit4:junit4]   1>         </script>
[junit4:junit4]   1>         #end
[junit4:junit4]   1>     /configs/config1/velocity/cluster.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <h2 #annTitle("Clusters generated by Carrot2 using the /clustering RequestHandler")>Clusters</h2>
[junit4:junit4]   1>         <div id="clusters">
[junit4:junit4]   1>           Run Solr with java -Dsolr.clustering.enabled=true -jar start.jar to see results
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         <script type="text/javascript">
[junit4:junit4]   1>         
[junit4:junit4]   1>           $('#clusters').load("#url_for_solr/clustering#lens",
[junit4:junit4]   1>             {'wt':'velocity', 'v.template':"clusterResults"});
[junit4:junit4]   1>         </script>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/footer.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <hr/>
[junit4:junit4]   1>         <div>
[junit4:junit4]   1>           <span>Options:</span>
[junit4:junit4]   1>           #if($request.params.get('debugQuery'))
[junit4:junit4]   1>           <a href="#url_for_home?#q#if($list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end">disable debug</a>
[junit4:junit4]   1>           #else
[junit4:junit4]   1>           <a href="#url_for_lens&debugQuery=true&fl=*,score">enable debug</a>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>           #if($annotate)
[junit4:junit4]   1>           <a href="#url_for_home?#q#if($list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#boostPrice">disable annotation</a>
[junit4:junit4]   1>           #else
[junit4:junit4]   1>           <a href="#url_for_lens&annotateBrowse=true">enable annotation</a>
[junit4:junit4]   1>           #end
[junit4:junit4]   1>           <a #annTitle("Click to switch to an XML response: &wt=xml") href="#url_for_lens&wt=xml#if($request.params.get('debugQuery'))&debugQuery=true#end">XML</a></div>
[junit4:junit4]   1>         <div>Generated by <a href="http://wiki.apache.org/solr/VelocityResponseWriter">VelocityResponseWriter</a></div>
[junit4:junit4]   1>         <div><span>Documentation: </span> <a href="http://lucene.apache.org/solr">Solr Home Page</a>, <a href="http://wiki.apache.org/solr">Solr Wiki</a></div>
[junit4:junit4]   1>         <div>Disclaimer: The locations displayed in this demonstration are purely fictional.  It is more than likely that no store with the items listed actually exists at that location!</div>        
[junit4:junit4]   1>     /configs/config1/velocity/facet_pivot.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         <h2 #annTitle("Facets generated by adding &facet.pivot= to the request")>Pivot Facets</h2>
[junit4:junit4]   1>         #set($pivot = $response.response.facet_counts.facet_pivot)
[junit4:junit4]   1>         #display_facet_pivot($pivot, "")
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/browse.vm (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         #set($searcher=$request.searcher)
[junit4:junit4]   1>         #set($params=$request.params)
[junit4:junit4]   1>         #set($clusters = $response.response.clusters)
[junit4:junit4]   1>         #set($mltResults = $response.response.get("moreLikeThis"))
[junit4:junit4]   1>         #set($annotate = $params.get("annotateBrowse"))
[junit4:junit4]   1>         #parse('query.vm')
[junit4:junit4]   1>         #if($response.response.spellcheck.suggestions and $response.response.spellcheck.suggestions.size() > 0)
[junit4:junit4]   1>           Did you mean <a href="#url_for_home?q=$esc.url($response.response.spellcheck.suggestions.collation)#if($list.size($request.params.getParams('fq')) > 0)&#fqs($request.params.getParams('fq'))#end#debug">$response.response.spellcheck.suggestions.collation</a>?
[junit4:junit4]   1>         #end
[junit4:junit4]   1>         
[junit4:junit4]   1>         <div class="navigators">
[junit4:junit4]   1>           #parse("facets.vm")
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <div class="pagination">
[junit4:junit4]   1>           #if($response.response.get('grouped'))
[junit4:junit4]   1>             <span><span class="results-found">$response.response.get('grouped').size() group(s)</span> found in ${response.responseHeader.QTime} ms</span>
[junit4:junit4]   1>           #else<span><span class="results-found">$page.results_found</span> results found in ${response.responseHeader.QTime} ms</span>
[junit4:junit4]   1>           Page <span class="page-num">$page.current_page_number</span> of <span
[junit4:junit4]   1>                 class="page-count">$page.page_count</span>#end
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <div class="error">
[junit4:junit4]   1>           #if(${response.response.error.code})
[junit4:junit4]   1>             <h1>ERROR ${response.response.error.code}</h1>
[junit4:junit4]   1>             ${response.response.error.msg}
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <div class="results">
[junit4:junit4]   1>           #if($response.response.get('grouped'))
[junit4:junit4]   1>             #foreach($grouping in $response.response.get('grouped'))
[junit4:junit4]   1>               #parse("hitGrouped.vm")
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           #else
[junit4:junit4]   1>             #foreach($doc in $response.results)
[junit4:junit4]   1>               #parse("hit.vm")
[junit4:junit4]   1>             #end
[junit4:junit4]   1>           #end
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>         <div class="pagination">
[junit4:junit4]   1>           #if($response.response.get('grouped'))
[junit4:junit4]   1>           #else
[junit4:junit4]   1>           #link_to_previous_page("previous")
[junit4:junit4]   1>           <span class="results-found">$page.results_found</span> results found.
[junit4:junit4]   1>           Page <span class="page-num">$page.current_page_number</span> of <span
[junit4:junit4]   1>                 class="page-count">$page.page_count</span>
[junit4:junit4]   1>           #link_to_next_page("next")
[junit4:junit4]   1>           #end
[junit4:junit4]   1>           <br/>
[junit4:junit4]   1>         </div>
[junit4:junit4]   1>         
[junit4:junit4]   1>     /configs/config1/velocity/jquery.autocomplete.js (0)
[junit4:junit4]   1>     DATA:
[junit4:junit4]   1>         /*
[junit4:junit4]   1>          * Autocomplete - jQuery plugin 1.1pre
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Copyright (c) 2007 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Dual licensed under the MIT and GPL licenses:
[junit4:junit4]   1>          *   http://www.opensource.org/licenses/mit-license.php
[junit4:junit4]   1>          *   http://www.gnu.org/licenses/gpl.html
[junit4:junit4]   1>          *
[junit4:junit4]   1>          * Revision: $Id: jquery.autocomplete.js 5785 2008-07-12 10:37:33Z joern.zaefferer $
[junit4:junit4]   1>          *
[junit4:junit4]   1>          */
[junit4:junit4]   1>         
[junit4:junit4]   1>         ;(function($) {
[junit4:junit4]   1>         	
[junit4:junit4]   1>         $.fn.extend({
[junit4:junit4]   1>         	autocomplete: function(urlOrData, options) {
[junit4:junit4]   1>         		var isUrl = typeof urlOrData == "string";
[junit4:junit4]   1>         		options = $.extend({}, $.Autocompleter.defaults, {
[junit4:junit4]   1>         			url: isUrl ? urlOrData : null,
[junit4:junit4]   1>         			data: isUrl ? null : urlOrData,
[junit4:junit4]   1>         			delay: isUrl ? $.Autocompleter.defaults.delay : 10,
[junit4:junit4]   1>         			max: options && !options.scroll ? 10 : 150
[junit4:junit4]   1>         		}, options);
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		// if highlight is set to false, replace it with a do-nothing function
[junit4:junit4]   1>         		options.highlight = options.highlight || function(value) { return value; };
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		// if the formatMatch option is not specified, then use formatItem for backwards compatibility
[junit4:junit4]   1>         		options.formatMatch = options.formatMatch || options.formatItem;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		return this.each(function() {
[junit4:junit4]   1>         			new $.Autocompleter(this, options);
[junit4:junit4]   1>         		});
[junit4:junit4]   1>         	},
[junit4:junit4]   1>         	result: function(handler) {
[junit4:junit4]   1>         		return this.bind("result", handler);
[junit4:junit4]   1>         	},
[junit4:junit4]   1>         	search: function(handler) {
[junit4:junit4]   1>         		return this.trigger("search", [handler]);
[junit4:junit4]   1>         	},
[junit4:junit4]   1>         	flushCache: function() {
[junit4:junit4]   1>         		return this.trigger("flushCache");
[junit4:junit4]   1>         	},
[junit4:junit4]   1>         	setOptions: function(options){
[junit4:junit4]   1>         		return this.trigger("setOptions", [options]);
[junit4:junit4]   1>         	},
[junit4:junit4]   1>         	unautocomplete: function() {
[junit4:junit4]   1>         		return this.trigger("unautocomplete");
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         });
[junit4:junit4]   1>         
[junit4:junit4]   1>         $.Autocompleter = function(input, options) {
[junit4:junit4]   1>         
[junit4:junit4]   1>         	var KEY = {
[junit4:junit4]   1>         		UP: 38,
[junit4:junit4]   1>         		DOWN: 40,
[junit4:junit4]   1>         		DEL: 46,
[junit4:junit4]   1>         		TAB: 9,
[junit4:junit4]   1>         		RETURN: 13,
[junit4:junit4]   1>         		ESC: 27,
[junit4:junit4]   1>         		COMMA: 188,
[junit4:junit4]   1>         		PAGEUP: 33,
[junit4:junit4]   1>         		PAGEDOWN: 34,
[junit4:junit4]   1>         		BACKSPACE: 8
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	// Create $ object for input element
[junit4:junit4]   1>         	var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
[junit4:junit4]   1>         
[junit4:junit4]   1>         	var timeout;
[junit4:junit4]   1>         	var previousValue = "";
[junit4:junit4]   1>         	var cache = $.Autocompleter.Cache(options);
[junit4:junit4]   1>         	var hasFocus = 0;
[junit4:junit4]   1>         	var lastKeyPressCode;
[junit4:junit4]   1>         	var config = {
[junit4:junit4]   1>         		mouseDownOnSelect: false
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	var select = $.Autocompleter.Select(options, input, selectCurrent, config);
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	var blockSubmit;
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	// prevent form submit in opera when selecting with return key
[junit4:junit4]   1>         	$.browser.opera && $(input.form).bind("submit.autocomplete", function() {
[junit4:junit4]   1>         		if (blockSubmit) {
[junit4:junit4]   1>         			blockSubmit = false;
[junit4:junit4]   1>         			return false;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	});
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	// only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
[junit4:junit4]   1>         	$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
[junit4:junit4]   1>         		// track last key pressed
[junit4:junit4]   1>         		lastKeyPressCode = event.keyCode;
[junit4:junit4]   1>         		switch(event.keyCode) {
[junit4:junit4]   1>         		
[junit4:junit4]   1>         			case KEY.UP:
[junit4:junit4]   1>         				event.preventDefault();
[junit4:junit4]   1>         				if ( select.visible() ) {
[junit4:junit4]   1>         					select.prev();
[junit4:junit4]   1>         				} else {
[junit4:junit4]   1>         					onChange(0, true);
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			case KEY.DOWN:
[junit4:junit4]   1>         				event.preventDefault();
[junit4:junit4]   1>         				if ( select.visible() ) {
[junit4:junit4]   1>         					select.next();
[junit4:junit4]   1>         				} else {
[junit4:junit4]   1>         					onChange(0, true);
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			case KEY.PAGEUP:
[junit4:junit4]   1>         				event.preventDefault();
[junit4:junit4]   1>         				if ( select.visible() ) {
[junit4:junit4]   1>         					select.pageUp();
[junit4:junit4]   1>         				} else {
[junit4:junit4]   1>         					onChange(0, true);
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			case KEY.PAGEDOWN:
[junit4:junit4]   1>         				event.preventDefault();
[junit4:junit4]   1>         				if ( select.visible() ) {
[junit4:junit4]   1>         					select.pageDown();
[junit4:junit4]   1>         				} else {
[junit4:junit4]   1>         					onChange(0, true);
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         			
[junit4:junit4]   1>         			// matches also semicolon
[junit4:junit4]   1>         			case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
[junit4:junit4]   1>         			case KEY.TAB:
[junit4:junit4]   1>         			case KEY.RETURN:
[junit4:junit4]   1>         				if( selectCurrent() ) {
[junit4:junit4]   1>         					// stop default to prevent a form submit, Opera needs special handling
[junit4:junit4]   1>         					event.preventDefault();
[junit4:junit4]   1>         					blockSubmit = true;
[junit4:junit4]   1>         					return false;
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			case KEY.ESC:
[junit4:junit4]   1>         				select.hide();
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			default:
[junit4:junit4]   1>         				clearTimeout(timeout);
[junit4:junit4]   1>         				timeout = setTimeout(onChange, options.delay);
[junit4:junit4]   1>         				break;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	}).focus(function(){
[junit4:junit4]   1>         		// track whether the field has focus, we shouldn't process any
[junit4:junit4]   1>         		// results if the field no longer has focus
[junit4:junit4]   1>         		hasFocus++;
[junit4:junit4]   1>         	}).blur(function() {
[junit4:junit4]   1>         		hasFocus = 0;
[junit4:junit4]   1>         		if (!config.mouseDownOnSelect) {
[junit4:junit4]   1>         			hideResults();
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	}).click(function() {
[junit4:junit4]   1>         		// show select when clicking in a focused field
[junit4:junit4]   1>         		if ( hasFocus++ > 1 && !select.visible() ) {
[junit4:junit4]   1>         			onChange(0, true);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	}).bind("search", function() {
[junit4:junit4]   1>         		// TODO why not just specifying both arguments?
[junit4:junit4]   1>         		var fn = (arguments.length > 1) ? arguments[1] : null;
[junit4:junit4]   1>         		function findValueCallback(q, data) {
[junit4:junit4]   1>         			var result;
[junit4:junit4]   1>         			if( data && data.length ) {
[junit4:junit4]   1>         				for (var i=0; i < data.length; i++) {
[junit4:junit4]   1>         					if( data[i].result.toLowerCase() == q.toLowerCase() ) {
[junit4:junit4]   1>         						result = data[i];
[junit4:junit4]   1>         						break;
[junit4:junit4]   1>         					}
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         			}
[junit4:junit4]   1>         			if( typeof fn == "function" ) fn(result);
[junit4:junit4]   1>         			else $input.trigger("result", result && [result.data, result.value]);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		$.each(trimWords($input.val()), function(i, value) {
[junit4:junit4]   1>         			request(value, findValueCallback, findValueCallback);
[junit4:junit4]   1>         		});
[junit4:junit4]   1>         	}).bind("flushCache", function() {
[junit4:junit4]   1>         		cache.flush();
[junit4:junit4]   1>         	}).bind("setOptions", function() {
[junit4:junit4]   1>         		$.extend(options, arguments[1]);
[junit4:junit4]   1>         		// if we've updated the data, repopulate
[junit4:junit4]   1>         		if ( "data" in arguments[1] )
[junit4:junit4]   1>         			cache.populate();
[junit4:junit4]   1>         	}).bind("unautocomplete", function() {
[junit4:junit4]   1>         		select.unbind();
[junit4:junit4]   1>         		$input.unbind();
[junit4:junit4]   1>         		$(input.form).unbind(".autocomplete");
[junit4:junit4]   1>         	});
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function selectCurrent() {
[junit4:junit4]   1>         		var selected = select.selected();
[junit4:junit4]   1>         		if( !selected )
[junit4:junit4]   1>         			return false;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		var v = selected.result;
[junit4:junit4]   1>         		previousValue = v;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		if ( options.multiple ) {
[junit4:junit4]   1>         			var words = trimWords($input.val());
[junit4:junit4]   1>         			if ( words.length > 1 ) {
[junit4:junit4]   1>         				v = words.slice(0, words.length - 1).join( options.multipleSeparator ) + options.multipleSeparator + v;
[junit4:junit4]   1>         			}
[junit4:junit4]   1>         			v += options.multipleSeparator;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		$input.val(v);
[junit4:junit4]   1>         		hideResultsNow();
[junit4:junit4]   1>         		$input.trigger("result", [selected.data, selected.value]);
[junit4:junit4]   1>         		return true;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function onChange(crap, skipPrevCheck) {
[junit4:junit4]   1>         		if( lastKeyPressCode == KEY.DEL ) {
[junit4:junit4]   1>         			select.hide();
[junit4:junit4]   1>         			return;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		var currentValue = $input.val();
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		if ( !skipPrevCheck && currentValue == previousValue )
[junit4:junit4]   1>         			return;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		previousValue = currentValue;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		currentValue = lastWord(currentValue);
[junit4:junit4]   1>         		if ( currentValue.length >= options.minChars) {
[junit4:junit4]   1>         			$input.addClass(options.loadingClass);
[junit4:junit4]   1>         			if (!options.matchCase)
[junit4:junit4]   1>         				currentValue = currentValue.toLowerCase();
[junit4:junit4]   1>         			request(currentValue, receiveData, hideResultsNow);
[junit4:junit4]   1>         		} else {
[junit4:junit4]   1>         			stopLoading();
[junit4:junit4]   1>         			select.hide();
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function trimWords(value) {
[junit4:junit4]   1>         		if ( !value ) {
[junit4:junit4]   1>         			return [""];
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		var words = value.split( options.multipleSeparator );
[junit4:junit4]   1>         		var result = [];
[junit4:junit4]   1>         		$.each(words, function(i, value) {
[junit4:junit4]   1>         			if ( $.trim(value) )
[junit4:junit4]   1>         				result[i] = $.trim(value);
[junit4:junit4]   1>         		});
[junit4:junit4]   1>         		return result;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function lastWord(value) {
[junit4:junit4]   1>         		if ( !options.multiple )
[junit4:junit4]   1>         			return value;
[junit4:junit4]   1>         		var words = trimWords(value);
[junit4:junit4]   1>         		return words[words.length - 1];
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	// fills in the input box w/the first match (assumed to be the best match)
[junit4:junit4]   1>         	// q: the term entered
[junit4:junit4]   1>         	// sValue: the first matching result
[junit4:junit4]   1>         	function autoFill(q, sValue){
[junit4:junit4]   1>         		// autofill in the complete box w/the first match as long as the user hasn't entered in more data
[junit4:junit4]   1>         		// if the last user key pressed was backspace, don't autofill
[junit4:junit4]   1>         		if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) {
[junit4:junit4]   1>         			// fill in the value (keep the case the user has typed)
[junit4:junit4]   1>         			$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
[junit4:junit4]   1>         			// select the portion of the value not typed by the user (so the next character will erase)
[junit4:junit4]   1>         			$.Autocompleter.Selection(input, previousValue.length, previousValue.length + sValue.length);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function hideResults() {
[junit4:junit4]   1>         		clearTimeout(timeout);
[junit4:junit4]   1>         		timeout = setTimeout(hideResultsNow, 200);
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function hideResultsNow() {
[junit4:junit4]   1>         		var wasVisible = select.visible();
[junit4:junit4]   1>         		select.hide();
[junit4:junit4]   1>         		clearTimeout(timeout);
[junit4:junit4]   1>         		stopLoading();
[junit4:junit4]   1>         		if (options.mustMatch) {
[junit4:junit4]   1>         			// call search and run callback
[junit4:junit4]   1>         			$input.search(
[junit4:junit4]   1>         				function (result){
[junit4:junit4]   1>         					// if no value found, clear the input box
[junit4:junit4]   1>         					if( !result ) {
[junit4:junit4]   1>         						if (options.multiple) {
[junit4:junit4]   1>         							var words = trimWords($input.val()).slice(0, -1);
[junit4:junit4]   1>         							$input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") );
[junit4:junit4]   1>         						}
[junit4:junit4]   1>         						else
[junit4:junit4]   1>         							$input.val( "" );
[junit4:junit4]   1>         					}
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         			);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		if (wasVisible)
[junit4:junit4]   1>         			// position cursor at end of input field
[junit4:junit4]   1>         			$.Autocompleter.Selection(input, input.value.length, input.value.length);
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function receiveData(q, data) {
[junit4:junit4]   1>         		if ( data && data.length && hasFocus ) {
[junit4:junit4]   1>         			stopLoading();
[junit4:junit4]   1>         			select.display(data, q);
[junit4:junit4]   1>         			autoFill(q, data[0].value);
[junit4:junit4]   1>         			select.show();
[junit4:junit4]   1>         		} else {
[junit4:junit4]   1>         			hideResultsNow();
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function request(term, success, failure) {
[junit4:junit4]   1>         		if (!options.matchCase)
[junit4:junit4]   1>         			term = term.toLowerCase();
[junit4:junit4]   1>         		var data = cache.load(term);
[junit4:junit4]   1>         		// recieve the cached data
[junit4:junit4]   1>         		if (data && data.length) {
[junit4:junit4]   1>         			success(term, data);
[junit4:junit4]   1>         		// if an AJAX url has been supplied, try loading the data now
[junit4:junit4]   1>         		} else if( (typeof options.url == "string") && (options.url.length > 0) ){
[junit4:junit4]   1>         			
[junit4:junit4]   1>         			var extraParams = {
[junit4:junit4]   1>         				timestamp: +new Date()
[junit4:junit4]   1>         			};
[junit4:junit4]   1>         			$.each(options.extraParams, function(key, param) {
[junit4:junit4]   1>         				extraParams[key] = typeof param == "function" ? param() : param;
[junit4:junit4]   1>         			});
[junit4:junit4]   1>         			
[junit4:junit4]   1>         			$.ajax({
[junit4:junit4]   1>         				// try to leverage ajaxQueue plugin to abort previous requests
[junit4:junit4]   1>         				mode: "abort",
[junit4:junit4]   1>         				// limit abortion to this input
[junit4:junit4]   1>         				port: "autocomplete" + input.name,
[junit4:junit4]   1>         				dataType: options.dataType,
[junit4:junit4]   1>         				url: options.url,
[junit4:junit4]   1>         				data: $.extend({
[junit4:junit4]   1>         					q: lastWord(term),
[junit4:junit4]   1>         					limit: options.max
[junit4:junit4]   1>         				}, extraParams),
[junit4:junit4]   1>         				success: function(data) {
[junit4:junit4]   1>         					var parsed = options.parse && options.parse(data) || parse(data);
[junit4:junit4]   1>         					cache.add(term, parsed);
[junit4:junit4]   1>         					success(term, parsed);
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         			});
[junit4:junit4]   1>         		} else {
[junit4:junit4]   1>         			// if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match
[junit4:junit4]   1>         			select.emptyList();
[junit4:junit4]   1>         			failure(term);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function parse(data) {
[junit4:junit4]   1>         		var parsed = [];
[junit4:junit4]   1>         		var rows = data.split("\n");
[junit4:junit4]   1>         		for (var i=0; i < rows.length; i++) {
[junit4:junit4]   1>         			var row = $.trim(rows[i]);
[junit4:junit4]   1>         			if (row) {
[junit4:junit4]   1>         				row = row.split("|");
[junit4:junit4]   1>         				parsed[parsed.length] = {
[junit4:junit4]   1>         					data: row,
[junit4:junit4]   1>         					value: row[0],
[junit4:junit4]   1>         					result: options.formatResult && options.formatResult(row, row[0]) || row[0]
[junit4:junit4]   1>         				};
[junit4:junit4]   1>         			}
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		return parsed;
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function stopLoading() {
[junit4:junit4]   1>         		$input.removeClass(options.loadingClass);
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         
[junit4:junit4]   1>         };
[junit4:junit4]   1>         
[junit4:junit4]   1>         $.Autocompleter.defaults = {
[junit4:junit4]   1>         	inputClass: "ac_input",
[junit4:junit4]   1>         	resultsClass: "ac_results",
[junit4:junit4]   1>         	loadingClass: "ac_loading",
[junit4:junit4]   1>         	minChars: 1,
[junit4:junit4]   1>         	delay: 400,
[junit4:junit4]   1>         	matchCase: false,
[junit4:junit4]   1>         	matchSubset: true,
[junit4:junit4]   1>         	matchContains: false,
[junit4:junit4]   1>         	cacheLength: 10,
[junit4:junit4]   1>         	max: 100,
[junit4:junit4]   1>         	mustMatch: false,
[junit4:junit4]   1>         	extraParams: {},
[junit4:junit4]   1>         	selectFirst: true,
[junit4:junit4]   1>         	formatItem: function(row) { return row[0]; },
[junit4:junit4]   1>         	formatMatch: null,
[junit4:junit4]   1>         	autoFill: false,
[junit4:junit4]   1>         	width: 0,
[junit4:junit4]   1>         	multiple: false,
[junit4:junit4]   1>         	multipleSeparator: ", ",
[junit4:junit4]   1>         	highlight: function(value, term) {
[junit4:junit4]   1>         		return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
[junit4:junit4]   1>         	},
[junit4:junit4]   1>             scroll: true,
[junit4:junit4]   1>             scrollHeight: 180
[junit4:junit4]   1>         };
[junit4:junit4]   1>         
[junit4:junit4]   1>         $.Autocompleter.Cache = function(options) {
[junit4:junit4]   1>         
[junit4:junit4]   1>         	var data = {};
[junit4:junit4]   1>         	var length = 0;
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function matchSubset(s, sub) {
[junit4:junit4]   1>         		if (!options.matchCase) 
[junit4:junit4]   1>         			s = s.toLowerCase();
[junit4:junit4]   1>         		var i = s.indexOf(sub);
[junit4:junit4]   1>         		if (options.matchContains == "word"){
[junit4:junit4]   1>         			i = s.toLowerCase().search("\\b" + sub.toLowerCase());
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		if (i == -1) return false;
[junit4:junit4]   1>         		return i == 0 || options.matchContains;
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function add(q, value) {
[junit4:junit4]   1>         		if (length > options.cacheLength){
[junit4:junit4]   1>         			flush();
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		if (!data[q]){ 
[junit4:junit4]   1>         			length++;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		data[q] = value;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function populate(){
[junit4:junit4]   1>         		if( !options.data ) return false;
[junit4:junit4]   1>         		// track the matches
[junit4:junit4]   1>         		var stMatchSets = {},
[junit4:junit4]   1>         			nullData = 0;
[junit4:junit4]   1>         
[junit4:junit4]   1>         		// no url was specified, we need to adjust the cache length to make sure it fits the local data store
[junit4:junit4]   1>         		if( !options.url ) options.cacheLength = 1;
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		// track all options for minChars = 0
[junit4:junit4]   1>         		stMatchSets[""] = [];
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		// loop through the array and create a lookup structure
[junit4:junit4]   1>         		for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
[junit4:junit4]   1>         			var rawValue = options.data[i];
[junit4:junit4]   1>         			// if rawValue is a string, make an array otherwise just reference the array
[junit4:junit4]   1>         			rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
[junit4:junit4]   1>         			
[junit4:junit4]   1>         			var value = options.formatMatch(rawValue, i+1, options.data.length);
[junit4:junit4]   1>         			if ( value === false )
[junit4:junit4]   1>         				continue;
[junit4:junit4]   1>         				
[junit4:junit4]   1>         			var firstChar = value.charAt(0).toLowerCase();
[junit4:junit4]   1>         			// if no lookup array for this character exists, look it up now
[junit4:junit4]   1>         			if( !stMatchSets[firstChar] ) 
[junit4:junit4]   1>         				stMatchSets[firstChar] = [];
[junit4:junit4]   1>         
[junit4:junit4]   1>         			// if the match is a string
[junit4:junit4]   1>         			var row = {
[junit4:junit4]   1>         				value: value,
[junit4:junit4]   1>         				data: rawValue,
[junit4:junit4]   1>         				result: options.formatResult && options.formatResult(rawValue) || value
[junit4:junit4]   1>         			};
[junit4:junit4]   1>         			
[junit4:junit4]   1>         			// push the current match into the set list
[junit4:junit4]   1>         			stMatchSets[firstChar].push(row);
[junit4:junit4]   1>         
[junit4:junit4]   1>         			// keep track of minChars zero items
[junit4:junit4]   1>         			if ( nullData++ < options.max ) {
[junit4:junit4]   1>         				stMatchSets[""].push(row);
[junit4:junit4]   1>         			}
[junit4:junit4]   1>         		};
[junit4:junit4]   1>         
[junit4:junit4]   1>         		// add the data items to the cache
[junit4:junit4]   1>         		$.each(stMatchSets, function(i, value) {
[junit4:junit4]   1>         			// increase the cache size
[junit4:junit4]   1>         			options.cacheLength++;
[junit4:junit4]   1>         			// add to the cache
[junit4:junit4]   1>         			add(i, value);
[junit4:junit4]   1>         		});
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	// populate any existing data
[junit4:junit4]   1>         	setTimeout(populate, 25);
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function flush(){
[junit4:junit4]   1>         		data = {};
[junit4:junit4]   1>         		length = 0;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	return {
[junit4:junit4]   1>         		flush: flush,
[junit4:junit4]   1>         		add: add,
[junit4:junit4]   1>         		populate: populate,
[junit4:junit4]   1>         		load: function(q) {
[junit4:junit4]   1>         			if (!options.cacheLength || !length)
[junit4:junit4]   1>         				return null;
[junit4:junit4]   1>         			/* 
[junit4:junit4]   1>         			 * if dealing w/local data and matchContains than we must make sure
[junit4:junit4]   1>         			 * to loop through all the data collections looking for matches
[junit4:junit4]   1>         			 */
[junit4:junit4]   1>         			if( !options.url && options.matchContains ){
[junit4:junit4]   1>         				// track all matches
[junit4:junit4]   1>         				var csub = [];
[junit4:junit4]   1>         				// loop through all the data grids for matches
[junit4:junit4]   1>         				for( var k in data ){
[junit4:junit4]   1>         					// don't search through the stMatchSets[""] (minChars: 0) cache
[junit4:junit4]   1>         					// this prevents duplicates
[junit4:junit4]   1>         					if( k.length > 0 ){
[junit4:junit4]   1>         						var c = data[k];
[junit4:junit4]   1>         						$.each(c, function(i, x) {
[junit4:junit4]   1>         							// if we've got a match, add it to the array
[junit4:junit4]   1>         							if (matchSubset(x.value, q)) {
[junit4:junit4]   1>         								csub.push(x);
[junit4:junit4]   1>         							}
[junit4:junit4]   1>         						});
[junit4:junit4]   1>         					}
[junit4:junit4]   1>         				}				
[junit4:junit4]   1>         				return csub;
[junit4:junit4]   1>         			} else 
[junit4:junit4]   1>         			// if the exact item exists, use it
[junit4:junit4]   1>         			if (data[q]){
[junit4:junit4]   1>         				return data[q];
[junit4:junit4]   1>         			} else
[junit4:junit4]   1>         			if (options.matchSubset) {
[junit4:junit4]   1>         				for (var i = q.length - 1; i >= options.minChars; i--) {
[junit4:junit4]   1>         					var c = data[q.substr(0, i)];
[junit4:junit4]   1>         					if (c) {
[junit4:junit4]   1>         						var csub = [];
[junit4:junit4]   1>         						$.each(c, function(i, x) {
[junit4:junit4]   1>         							if (matchSubset(x.value, q)) {
[junit4:junit4]   1>         								csub[csub.length] = x;
[junit4:junit4]   1>         							}
[junit4:junit4]   1>         						});
[junit4:junit4]   1>         						return csub;
[junit4:junit4]   1>         					}
[junit4:junit4]   1>         				}
[junit4:junit4]   1>         			}
[junit4:junit4]   1>         			return null;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         };
[junit4:junit4]   1>         
[junit4:junit4]   1>         $.Autocompleter.Select = function (options, input, select, config) {
[junit4:junit4]   1>         	var CLASSES = {
[junit4:junit4]   1>         		ACTIVE: "ac_over"
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	var listItems,
[junit4:junit4]   1>         		active = -1,
[junit4:junit4]   1>         		data,
[junit4:junit4]   1>         		term = "",
[junit4:junit4]   1>         		needsInit = true,
[junit4:junit4]   1>         		element,
[junit4:junit4]   1>         		list;
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	// Create results
[junit4:junit4]   1>         	function init() {
[junit4:junit4]   1>         		if (!needsInit)
[junit4:junit4]   1>         			return;
[junit4:junit4]   1>         		element = $("<div/>")
[junit4:junit4]   1>         		.hide()
[junit4:junit4]   1>         		.addClass(options.resultsClass)
[junit4:junit4]   1>         		.css("position", "absolute")
[junit4:junit4]   1>         		.appendTo(document.body);
[junit4:junit4]   1>         	
[junit4:junit4]   1>         		list = $("<ul/>").appendTo(element).mouseover( function(event) {
[junit4:junit4]   1>         			if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
[junit4:junit4]   1>         	            active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
[junit4:junit4]   1>         			    $(target(event)).addClass(CLASSES.ACTIVE);            
[junit4:junit4]   1>         	        }
[junit4:junit4]   1>         		}).click(function(event) {
[junit4:junit4]   1>         			$(target(event)).addClass(CLASSES.ACTIVE);
[junit4:junit4]   1>         			select();
[junit4:junit4]   1>         			// TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus
[junit4:junit4]   1>         			input.focus();
[junit4:junit4]   1>         			return false;
[junit4:junit4]   1>         		}).mousedown(function() {
[junit4:junit4]   1>         			config.mouseDownOnSelect = true;
[junit4:junit4]   1>         		}).mouseup(function() {
[junit4:junit4]   1>         			config.mouseDownOnSelect = false;
[junit4:junit4]   1>         		});
[junit4:junit4]   1>         		
[junit4:junit4]   1>         		if( options.width > 0 )
[junit4:junit4]   1>         			element.css("width", options.width);
[junit4:junit4]   1>         			
[junit4:junit4]   1>         		needsInit = false;
[junit4:junit4]   1>         	} 
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function target(event) {
[junit4:junit4]   1>         		var element = event.target;
[junit4:junit4]   1>         		while(element && element.tagName != "LI")
[junit4:junit4]   1>         			element = element.parentNode;
[junit4:junit4]   1>         		// more fun with IE, sometimes event.target is empty, just ignore it then
[junit4:junit4]   1>         		if(!element)
[junit4:junit4]   1>         			return [];
[junit4:junit4]   1>         		return element;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         
[junit4:junit4]   1>         	function moveSelect(step) {
[junit4:junit4]   1>         		listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
[junit4:junit4]   1>         		movePosition(step);
[junit4:junit4]   1>                 var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
[junit4:junit4]   1>                 if(options.scroll) {
[junit4:junit4]   1>                     var offset = 0;
[junit4:junit4]   1>                     listItems.slice(0, active).each(function() {
[junit4:junit4]   1>         				offset += this.offsetHeight;
[junit4:junit4]   1>         			});
[junit4:junit4]   1>                     if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
[junit4:junit4]   1>                         list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
[junit4:junit4]   1>                     } else if(offset < list.scrollTop()) {
[junit4:junit4]   1>                         list.scrollTop(offset);
[junit4:junit4]   1>                     }
[junit4:junit4]   1>                 }
[junit4:junit4]   1>         	};
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function movePosition(step) {
[junit4:junit4]   1>         		active += step;
[junit4:junit4]   1>         		if (active < 0) {
[junit4:junit4]   1>         			active = listItems.size() - 1;
[junit4:junit4]   1>         		} else if (active >= listItems.size()) {
[junit4:junit4]   1>         			active = 0;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function limitNumberOfItems(available) {
[junit4:junit4]   1>         		return options.max && options.max < available
[junit4:junit4]   1>         			? options.max
[junit4:junit4]   1>         			: available;
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	function fillList() {
[junit4:junit4]   1>         		list.empty();
[junit4:junit4]   1>         		var max = limitNumberOfItems(data.length);
[junit4:junit4]   1>         		for (var i=0; i < max; i++) {
[junit4:junit4]   1>         			if (!data[i])
[junit4:junit4]   1>         				continue;
[junit4:junit4]   1>         			var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
[junit4:junit4]   1>         			if ( formatted === false )
[junit4:junit4]   1>         				continue;
[junit4:junit4]   1>         			var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
[junit4:junit4]   1>         			$.data(li, "ac_data", data[i]);
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		listItems = list.find("li");
[junit4:junit4]   1>         		if ( options.selectFirst ) {
[junit4:junit4]   1>         			listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
[junit4:junit4]   1>         			active = 0;
[junit4:junit4]   1>         		}
[junit4:junit4]   1>         		// apply bgiframe if available
[junit4:junit4]   1>         		if ( $.fn.bgiframe )
[junit4:junit4]   1>         			list.bgiframe();
[junit4:junit4]   1>         	}
[junit4:junit4]   1>         	
[junit4:junit4]   1>         	return {
[junit4:junit4]   1>         		display: function(d, q) {
[junit4:junit4]   1>         			init();
[junit4:junit4]   1>         			data = d;
[junit4:junit4]   1>         			term = q;
[junit4:junit4]   1>         			fillList();
[junit4:junit4]   1>         		},
[junit4:junit4]   1>         		next: function() {
[junit4:junit4]   1>         			moveSelect(1);
[junit4:junit4]   1>         		},
[junit4:junit4]   1>         		prev: function() {
[junit4:junit4]   1>         			moveSelect(-1);
[junit4:junit4]   1>         		},
[junit4:junit4]   1>         		pageUp: function() {
[junit4:junit4]   1>         			if (active != 0 && active - 8 < 0) {
[junit4:junit4]   1>         				moveSelect( -active

[...truncated too long message...]

ion (1)
[junit4:junit4]   1>    /overseer_elect/election/88451249592598530-127.0.0.1:8983_solr-n_0000000004 (0)
[junit4:junit4]   1>   /overseer_elect/leader (0)
[junit4:junit4]   1>   DATA:
[junit4:junit4]   1>       {"id":"88451249592598530-127.0.0.1:8983_solr-n_0000000004"}
[junit4:junit4]   1>  /collections (1)
[junit4:junit4]   1>   /collections/collection1 (0)
[junit4:junit4]   1>   DATA:
[junit4:junit4]   1>       {"configName":"firstConfig"}
[junit4:junit4]   1>  /clusterstate.json (0)
[junit4:junit4]   1> 
[junit4:junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=ZkControllerTest -Dtests.method=testUploadToCloud -Dtests.seed=943B013B36668D56 -Dtests.slow=true -Dtests.locale=ar_LY -Dtests.timezone=Europe/Zagreb -Dtests.file.encoding=Cp1252
[junit4:junit4] ERROR   6.89s | ZkControllerTest.testUploadToCloud <<<
[junit4:junit4]    > Throwable #1: org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /configs/config1/mapping-FoldToASCII.txt
[junit4:junit4]    > 	at __randomizedtesting.SeedInfo.seed([943B013B36668D56:B15677DE63649665]:0)
[junit4:junit4]    > 	at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
[junit4:junit4]    > 	at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
[junit4:junit4]    > 	at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1044)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.SolrZkClient$8.execute(SolrZkClient.java:261)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.SolrZkClient$8.execute(SolrZkClient.java:258)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:63)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.SolrZkClient.setData(SolrZkClient.java:258)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.SolrZkClient.makePath(SolrZkClient.java:427)
[junit4:junit4]    > 	at org.apache.solr.common.cloud.SolrZkClient.makePath(SolrZkClient.java:306)
[junit4:junit4]    > 	at org.apache.solr.cloud.ZkController.uploadToZK(ZkController.java:1007)
[junit4:junit4]    > 	at org.apache.solr.cloud.ZkController.uploadToZK(ZkController.java:840)
[junit4:junit4]    > 	at org.apache.solr.cloud.ZkControllerTest.testUploadToCloud(ZkControllerTest.java:138)
[junit4:junit4]    > 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[junit4:junit4]    > 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[junit4:junit4]    > 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[junit4:junit4]    > 	at java.lang.reflect.Method.invoke(Method.java:601)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1559)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner.access$600(RandomizedRunner.java:79)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:737)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:773)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:787)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:53)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleFieldCacheSanity$1.evaluate(TestRuleFieldCacheSanity.java:51)
[junit4:junit4]    > 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:358)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:782)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:442)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:746)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:648)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:682)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:693)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule$1.evaluate(SystemPropertiesRestoreRule.java:53)
[junit4:junit4]    > 	at org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:42)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:39)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:43)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
[junit4:junit4]    > 	at org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
[junit4:junit4]    > 	at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:358)
[junit4:junit4]    > 	at java.lang.Thread.run(Thread.java:722)
[junit4:junit4]   2> 11624 T1171 oas.SolrTestCaseJ4.deleteCore ###deleteCore
[junit4:junit4]   2> NOTE: test params are: codec=Lucene3x, sim=DefaultSimilarity, locale=ar_LY, timezone=Europe/Zagreb
[junit4:junit4]   2> NOTE: Windows 7 6.1 x86/Oracle Corporation 1.7.0_07 (32-bit)/cpus=2,threads=1,free=81615584,total=187498496
[junit4:junit4]   2> NOTE: All tests run in this JVM: [TestSolrQueryParser, IndexReaderFactoryTest, SolrCoreTest, TestStressReorder, TestIndexSearcher, PolyFieldTest, TestSolrJ, AnalysisAfterCoreReloadTest, MBeansHandlerTest, DOMUtilTest, PingRequestHandlerTest, TestWordDelimiterFilterFactory, UUIDFieldTest, SyncSliceTest, TestCollationKeyRangeQueries, TestPseudoReturnFields, TestRTGBase, IndexSchemaTest, TestSystemIdResolver, RecoveryZkTest, QueryParsingTest, TestDistributedGrouping, FileUtilsTest, SuggesterWFSTTest, TestSolrDeletionPolicy2, BasicFunctionalityTest, TestSearchPerf, DateFieldTest, DirectSolrSpellCheckerTest, TestLMDirichletSimilarityFactory, TestTrie, RAMDirectoryFactoryTest, ZkNodePropsTest, SolrInfoMBeanTest, TestFunctionQuery, CSVRequestHandlerTest, BasicDistributedZk2Test, TestQueryTypes, DebugComponentTest, MoreLikeThisHandlerTest, ScriptEngineTest, SpellingQueryConverterTest, TestRangeQuery, TestCSVLoader, HighlighterConfigTest, TestConfig, TestIndexingPerformance, LeaderElectionIntegrationTest, TestBinaryField, TestValueSourceCache, ConvertedLegacyTest, SimplePostToolTest, TestPropInjectDefaults, XmlUpdateRequestHandlerTest, SpellCheckCollatorTest, TestXIncludeConfig, TestPerFieldSimilarity, UniqFieldsUpdateProcessorFactoryTest, TestDocumentBuilder, ZkCLITest, TestLFUCache, TestJoin, CacheHeaderTest, TestCodecSupport, DistributedTermsComponentTest, DirectUpdateHandlerTest, SimpleFacetsTest, QueryEqualityTest, ZkControllerTest]
[junit4:junit4] Completed in 11.67s, 2 tests, 1 error <<< FAILURES!

[...truncated 503 lines...]
BUILD FAILED
C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\build.xml:38: The following error occurred while executing this line:
C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\solr\build.xml:180: The following error occurred while executing this line:
C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\lucene\module-build.xml:61: The following error occurred while executing this line:
C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\lucene\common-build.xml:1143: The following error occurred while executing this line:
C:\Users\JenkinsSlave\workspace\Lucene-Solr-4.x-Windows\lucene\common-build.xml:816: There were test failures: 231 suites, 960 tests, 1 error, 12 ignored (7 assumptions)

Total time: 43 minutes 58 seconds
Build step 'Invoke Ant' marked build as failure
Archiving artifacts
Recording test results
Description set: Java: 32bit/jdk1.7.0_07 -client -XX:+UseParallelGC
Email was triggered for: Failure
Sending email for trigger: Failure



Mime
View raw message