AwsProductSenderTest

25

tests

0

failures

0

ignored

6.330s

duration

100%

successful

Tests

Test Duration Result
test503SlowDownExceptionGetsRetried 2.122s passed
testCheckProductJsonSize 0.011s passed
testCheckProductJsonSizeThrowsException 0.012s passed
testHttpExceptionGetsRetriedException 0.014s passed
testHttpExceptionInGetUploadUrlsThrowsException 2.250s passed
testHttpExceptionInSendProductThrowsException 1.532s passed
testIOExceptionThrownFromHttpClient 0.009s passed
testInvalidGetUploadUrlsPathConfiguration 0.012s passed
testInvalidSendProductPathConfiguration 0.006s passed
testInvalidUrlConfiguration 0.009s passed
testPayloadConfiguration 0.008s passed
testPayloadConfigurationException 0.011s passed
testProductAlreadyExistsDoesNotThrow 0.018s passed
testProductTooLargeDoesNotThrow 0.029s passed
testSendProductUrlConfigured 0.014s passed
testSendProductUrlConfiguredWithExtraPaths 0.017s passed
testSendProductUrlConfiguredWithExtraSlash 0.010s passed
testSendProductUrlConfiguredWithUrnReplacement 0.006s passed
testSendProductUrlWithDefaultPath 0.007s passed
testSendUploadUrlsConfigured 0.013s passed
testSendUploadUrlsConfiguredWithUrnReplacement 0.014s passed
testSendUploadUrlsWithDefaultPath 0.008s passed
testSignatureHistoryDoesNotIncludeOriginalSignature 0.139s passed
testSignatureHistoryDoesNotIncludeOriginalSignatureVersion 0.026s passed
testSignatureHistoryOnSign 0.033s passed

Standard error

FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='f4pCr3T9Ypl1c37GJP71Ptuvib8wFIllLKyY8KsI5GM=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 344ms] HttpClientImpl(28) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
CONFIG	thread=1	[null] url=https://test
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [30s 345ms] HttpClientImpl(29) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=421	[HttpClient-28-SelectorManager] [30s 346ms] HttpClientImpl(28) next timeout: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [30s 347ms] HttpClientImpl(28) next expired: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [30s 347ms] HttpClientImpl(28) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='d/Eto0zN2aegpaBnX0e0C4apEPA0ObfPYruie1Nlbds=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 355ms] HttpClientImpl(30) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=422	[HttpClient-29-SelectorManager] [30s 355ms] HttpClientImpl(29) next timeout: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [30s 355ms] HttpClientImpl(29) next expired: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [30s 356ms] HttpClientImpl(29) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/new/path/to/hit
FINE	thread=1	[Test worker] [30s 356ms] HttpClientImpl(31) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=423	[HttpClient-30-SelectorManager] [30s 357ms] HttpClientImpl(30) next timeout: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [30s 357ms] HttpClientImpl(30) next expired: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [30s 357ms] HttpClientImpl(30) Next deadline is 3000
FINE	thread=424	[HttpClient-31-SelectorManager] [30s 358ms] HttpClientImpl(31) next timeout: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [30s 359ms] HttpClientImpl(31) next expired: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [30s 359ms] HttpClientImpl(31) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='t3Sht+XEH5YfPL4ddxDXQyCQ9MIKJNxbWcbx9SG8y/E=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 366ms] HttpClientImpl(32) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=425	[HttpClient-32-SelectorManager] [30s 378ms] HttpClientImpl(32) next timeout: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [30s 380ms] HttpClientImpl(32) next expired: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [30s 381ms] HttpClientImpl(32) Next deadline is 3000
FINER	thread=111	[null] running listener cleanup
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='8zq12MD5fhroIPExn8/jImNuXM4EbuQ+KHxUZVAjlt8=' , 1ms
FINE	thread=1	[null] Resigned product from original-signature null to new signature MC0CFQCQqK88AJamMuGUAqYIEZL/DoBZhAIUN1TuOt2fPvFMlTJNenbtIjM8USE=
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:33.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:33.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:33.284Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1"},"signature":"MC0CFQCQqK88AJamMuGUAqYIEZL/DoBZhAIUN1TuOt2fPvFMlTJNenbtIjM8USE=","signatureVersion":"v2","signatureHistory":[{"signature":"MC0CFQCQqK88AJamMuGUAqYIEZL/DoBZhAIUN1TuOt2fPvFMlTJNenbtIjM8USE=","signatureVersion":"v2"},{"signature":"MCwCFEci3qqLL8XxUPXhVeQkoWHjX+zEAhRzgrA/YCRcbovXWlnC2n8AHoTiXA==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1778259153284 (4 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1778259153284 (0 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1778259153284 (1 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259153284 (5 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='Lj05DxSE+/tsqow2Zt7df0aH58rI2JKtd5aZfD8E2XU=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 510ms] HttpClientImpl(33) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/new/path/to/hit/with/replacement/{urn}
FINE	thread=1	[Test worker] [30s 512ms] HttpClientImpl(34) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=426	[HttpClient-33-SelectorManager] [30s 514ms] HttpClientImpl(33) next timeout: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [30s 514ms] HttpClientImpl(33) next expired: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [30s 514ms] HttpClientImpl(33) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='iCmWs4AyZQezZSOQjz6K5AF2kJaBmBRsOIkm0vIxSxo=' , 2ms
FINE	thread=427	[HttpClient-34-SelectorManager] [30s 518ms] HttpClientImpl(34) next timeout: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [30s 521ms] HttpClientImpl(34) next expired: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [30s 521ms] HttpClientImpl(34) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 521ms] HttpClientImpl(35) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='eC/Z/MNdTBN1752KbX8AFYW/q/TrEVQ9CR7VVKdRspU=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 528ms] HttpClientImpl(36) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=428	[HttpClient-35-SelectorManager] [30s 528ms] HttpClientImpl(35) next timeout: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [30s 528ms] HttpClientImpl(35) next expired: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [30s 529ms] HttpClientImpl(35) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [30s 531ms] HttpClientImpl(37) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=429	[HttpClient-36-SelectorManager] [30s 530ms] HttpClientImpl(36) next timeout: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [30s 531ms] HttpClientImpl(36) next expired: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [30s 531ms] HttpClientImpl(36) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='WAru7FQZwvaB0/PZAx8ijoQaD+rtLLn5IM/09c0VH7I=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [30s 537ms] HttpClientImpl(38) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=430	[HttpClient-37-SelectorManager] [30s 536ms] HttpClientImpl(37) next timeout: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [30s 537ms] HttpClientImpl(37) next expired: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [30s 537ms] HttpClientImpl(37) Next deadline is 3000
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:33.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:33.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:33.455Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFAz7RrhTfNwXxLM/kGzQMRHdTtoXAhR5k6wAjyG5epWzfPmjfTLrM/dwAA==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFAz7RrhTfNwXxLM/kGzQMRHdTtoXAhR5k6wAjyG5epWzfPmjfTLrM/dwAA==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1778259153455 (1 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1778259153455 (0 ms) 
FINE	thread=431	[HttpClient-38-SelectorManager] [30s 542ms] HttpClientImpl(38) next timeout: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [30s 545ms] HttpClientImpl(38) next expired: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [30s 545ms] HttpClientImpl(38) Next deadline is 3000
FINE	thread=1	[null] send product exception, trying again
gov.usgs.earthquake.aws.HttpException: Error [500] sending product
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:463)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:449)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:352)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:260)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.lambda$testHttpExceptionInSendProductThrowsException$13(AwsProductSenderTest.java:584)
	at org.junit.Assert.assertThrows(Assert.java:1001)
	at org.junit.Assert.assertThrows(Assert.java:981)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.testHttpExceptionInSendProductThrowsException(AwsProductSenderTest.java:583)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
Fri May 08 16:52:34 UTC 2026
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1778259153455
gov.usgs.earthquake.aws.HttpException: Error [500] sending product
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:463)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:449)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:359)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:260)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.lambda$testHttpExceptionInSendProductThrowsException$13(AwsProductSenderTest.java:584)
	at org.junit.Assert.assertThrows(Assert.java:1001)
	at org.junit.Assert.assertThrows(Assert.java:981)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.testHttpExceptionInSendProductThrowsException(AwsProductSenderTest.java:583)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259153455 (1519 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='kG6HrdQ6wAAakulgEVUBowCDtmXxDjTAO2m3qHCOHk4=' , 4ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 77ms] HttpClientImpl(39) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
Fri May 08 16:52:35 UTC 2026
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/new/path/to/hit/with
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [32s 80ms] HttpClientImpl(40) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=432	[HttpClient-39-SelectorManager] [32s 81ms] HttpClientImpl(39) next timeout: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [32s 81ms] HttpClientImpl(39) next expired: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [32s 81ms] HttpClientImpl(39) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='LHQPxT+pc1lZFU1D/TIjBTD2IqSkYbe3X3VR2NfiK6A=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 89ms] HttpClientImpl(41) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=433	[HttpClient-40-SelectorManager] [32s 90ms] HttpClientImpl(40) next timeout: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [32s 90ms] HttpClientImpl(40) next expired: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [32s 91ms] HttpClientImpl(40) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/new/path/to/hit/with/replacement/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [32s 92ms] HttpClientImpl(42) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=434	[HttpClient-41-SelectorManager] [32s 92ms] HttpClientImpl(41) next timeout: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [32s 92ms] HttpClientImpl(41) next expired: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [32s 92ms] HttpClientImpl(41) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='KgpSqOuzSv1ClVQZYjUAkbiVm79q2EfVROy0zLWuvjk=' , 5ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 101ms] HttpClientImpl(43) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=435	[HttpClient-42-SelectorManager] [32s 103ms] HttpClientImpl(42) next timeout: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [32s 103ms] HttpClientImpl(42) next expired: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [32s 103ms] HttpClientImpl(42) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='RQT8ej7tIxuVH1WmtlakZ4fpZ72NjSbXf4hvGTXGp/o=' , 1ms
FINE	thread=436	[HttpClient-43-SelectorManager] [32s 109ms] HttpClientImpl(43) next timeout: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [32s 109ms] HttpClientImpl(43) next expired: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [32s 110ms] HttpClientImpl(43) Next deadline is 3000
FINE	thread=1	[null] Resigned product from original-signature test1234 to new signature MCwCFD3/NDzQuF0oPr+By/2u9kfJoOTUAhRbdNs8ll6MzF+TPKSghdbnrIO3Kw==
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:35.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:35.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:35.016Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature":"test1234"},"signature":"MCwCFD3/NDzQuF0oPr+By/2u9kfJoOTUAhRbdNs8ll6MzF+TPKSghdbnrIO3Kw==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFD3/NDzQuF0oPr+By/2u9kfJoOTUAhRbdNs8ll6MzF+TPKSghdbnrIO3Kw==","signatureVersion":"v2"},{"signature":"MCwCFGc4lQ+bv2dILCqWp46Ix5+sSNuTAhRjLygEqwxona4ZW11YaPJei60dRg==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1778259155016 (3 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1778259155016 (1 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1778259155016 (0 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259155016 (4 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='NxO1LHxV8ZHXzAz7WT3VJfv/pCPqVGsxHLtlwYD0L1M=' , 4ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 129ms] HttpClientImpl(44) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=437	[HttpClient-44-SelectorManager] [32s 129ms] HttpClientImpl(44) next timeout: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [32s 130ms] HttpClientImpl(44) next expired: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [32s 130ms] HttpClientImpl(44) Next deadline is 3000
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:35.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:35.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:35.044Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFAcbmXLF7kACqT2XMo47YwTB7t7lAhRLc2gVlZQ3uQG7Sv4PALsx/7HPyw==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFAcbmXLF7kACqT2XMo47YwTB7t7lAhRLc2gVlZQ3uQG7Sv4PALsx/7HPyw==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1778259155044 (1 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1778259155044 (0 ms) 
INFO	thread=1	[null] hub already has product
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259155044 (5 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='EAKeDN0c84XKU+oW3mf0hWx0gjzseMVTaLskpHp/+2M=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 143ms] HttpClientImpl(45) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=1	[null] notification id test urn:usgs-product:source:type:code:1778259155067
FINE	thread=1	[null] send product urn:usgs-product:source:type:code:1778259155067 (2 ms) 
FINE	thread=438	[HttpClient-45-SelectorManager] [32s 152ms] HttpClientImpl(45) next timeout: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [32s 152ms] HttpClientImpl(45) next expired: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [32s 152ms] HttpClientImpl(45) Next deadline is 3000
INFO	thread=1	[null] send product total urn:usgs-product:source:type:code:1778259155067 (3 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='rfktG5nyc+3qHCCmfhsXojxLicBpLCpNcF40U+quqlo=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 157ms] HttpClientImpl(46) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
CONFIG	thread=1	[null] url=https://test
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='0oJICJuLGPc2Oc/bwxrzO60KSmTzZwP64YQO2FXbB/k=' , 2ms
FINE	thread=439	[HttpClient-46-SelectorManager] [32s 170ms] HttpClientImpl(46) next timeout: 0
FINEST	thread=1	Signature is already in history.
FINE	thread=439	[HttpClient-46-SelectorManager] [32s 173ms] HttpClientImpl(46) next expired: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [32s 173ms] HttpClientImpl(46) Next deadline is 3000
FINE	thread=1	[Test worker] [32s 173ms] HttpClientImpl(47) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=440	[HttpClient-47-SelectorManager] [32s 174ms] HttpClientImpl(47) next timeout: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [32s 174ms] HttpClientImpl(47) next expired: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [32s 174ms] HttpClientImpl(47) Next deadline is 3000
FINE	thread=1	Getting upload urls for {"contents":{"test.txt":{"length":13,"modified":"2026-05-08T16:52:35.000Z","path":"test.txt","sha256":"lMQBjS3PMyciMVllntC0vBRGHPOU/h4YDitdZjk4dD0=","type":"text/plain","url":"data:text/plain;base64,dGVzdCBjb250ZW50cw=="}},"geometry":null,"id":{"code":"code","source":"source","type":"type","updateTime":"2026-05-08T16:52:35.098Z"},"links":[],"properties":{},"signature":null,"signatureVersion":"v1","signatureHistory":[],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:source:type:code:1778259155098 (1 ms) 
FINE	thread=1	[null] 503 slow down exception when uploading contents for urn:usgs-product:source:type:code:1778259155098, trying again
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
Fri May 08 16:52:36 UTC 2026
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=421	[HttpClient-28-SelectorManager] [33s 349ms] HttpClientImpl(28) next timeout: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [33s 349ms] HttpClientImpl(28) next expired: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [33s 349ms] HttpClientImpl(28) Next deadline is 3000
FINE	thread=422	[HttpClient-29-SelectorManager] [33s 357ms] HttpClientImpl(29) next timeout: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [33s 357ms] HttpClientImpl(29) next expired: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [33s 357ms] HttpClientImpl(29) Next deadline is 3000
FINE	thread=423	[HttpClient-30-SelectorManager] [33s 360ms] HttpClientImpl(30) next timeout: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [33s 360ms] HttpClientImpl(30) next expired: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [33s 360ms] HttpClientImpl(30) Next deadline is 3000
FINE	thread=424	[HttpClient-31-SelectorManager] [33s 362ms] HttpClientImpl(31) next timeout: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [33s 362ms] HttpClientImpl(31) next expired: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [33s 362ms] HttpClientImpl(31) Next deadline is 3000
FINE	thread=425	[HttpClient-32-SelectorManager] [33s 382ms] HttpClientImpl(32) next timeout: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [33s 382ms] HttpClientImpl(32) next expired: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [33s 382ms] HttpClientImpl(32) Next deadline is 3000
FINER	thread=111	[null] running listener cleanup
FINE	thread=426	[HttpClient-33-SelectorManager] [33s 517ms] HttpClientImpl(33) next timeout: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [33s 517ms] HttpClientImpl(33) next expired: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [33s 517ms] HttpClientImpl(33) Next deadline is 3000
FINE	thread=427	[HttpClient-34-SelectorManager] [33s 522ms] HttpClientImpl(34) next timeout: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [33s 522ms] HttpClientImpl(34) next expired: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [33s 522ms] HttpClientImpl(34) Next deadline is 3000
FINE	thread=428	[HttpClient-35-SelectorManager] [33s 531ms] HttpClientImpl(35) next timeout: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [33s 532ms] HttpClientImpl(35) next expired: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [33s 532ms] HttpClientImpl(35) Next deadline is 3000
FINE	thread=429	[HttpClient-36-SelectorManager] [33s 533ms] HttpClientImpl(36) next timeout: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [33s 533ms] HttpClientImpl(36) next expired: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [33s 533ms] HttpClientImpl(36) Next deadline is 3000
FINE	thread=430	[HttpClient-37-SelectorManager] [33s 540ms] HttpClientImpl(37) next timeout: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [33s 540ms] HttpClientImpl(37) next expired: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [33s 540ms] HttpClientImpl(37) Next deadline is 3000
FINE	thread=431	[HttpClient-38-SelectorManager] [33s 549ms] HttpClientImpl(38) next timeout: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [33s 549ms] HttpClientImpl(38) next expired: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [33s 549ms] HttpClientImpl(38) Next deadline is 3000
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
Fri May 08 16:52:37 UTC 2026
FINE	thread=1	[null] upload contents urn:usgs-product:source:type:code:1778259155098 (2026 ms) 
FINE	thread=1	[null] notification id test urn:usgs-product:source:type:code:1778259155098
FINE	thread=1	[null] send product urn:usgs-product:source:type:code:1778259155098 (2 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:source:type:code:1778259155098 (2030 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='pyMpIBNCuivxW054PItTMrKGPgOfr5FMd2O70Pv5/qY=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 293ms] HttpClientImpl(48) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
CONFIG	thread=1	[null] url=https://earthquake.usgs.gov
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='D9J+w+CRM0P4AozdtFy1AtkVTCXhSHvPZl8bpXu5jxE=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 299ms] HttpClientImpl(49) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=441	[HttpClient-48-SelectorManager] [34s 300ms] HttpClientImpl(48) next timeout: 0
FINE	thread=441	[HttpClient-48-SelectorManager] [34s 300ms] HttpClientImpl(48) next expired: 0
FINE	thread=441	[HttpClient-48-SelectorManager] [34s 300ms] HttpClientImpl(48) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [34s 301ms] HttpClientImpl(50) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=442	[HttpClient-49-SelectorManager] [34s 302ms] HttpClientImpl(49) next timeout: 0
FINE	thread=442	[HttpClient-49-SelectorManager] [34s 302ms] HttpClientImpl(49) next expired: 0
FINE	thread=442	[HttpClient-49-SelectorManager] [34s 302ms] HttpClientImpl(49) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='qVMH2imw7odNVtzYl496ALoz7xeW4/oSRdlYcBYBH9Q=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 306ms] HttpClientImpl(51) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=443	[HttpClient-50-SelectorManager] [34s 307ms] HttpClientImpl(50) next timeout: 0
FINE	thread=443	[HttpClient-50-SelectorManager] [34s 307ms] HttpClientImpl(50) next expired: 0
FINE	thread=443	[HttpClient-50-SelectorManager] [34s 307ms] HttpClientImpl(50) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/new/path/to/hit/with/replacement/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [34s 308ms] HttpClientImpl(52) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=444	[HttpClient-51-SelectorManager] [34s 308ms] HttpClientImpl(51) next timeout: 0
FINE	thread=444	[HttpClient-51-SelectorManager] [34s 308ms] HttpClientImpl(51) next expired: 0
FINE	thread=444	[HttpClient-51-SelectorManager] [34s 308ms] HttpClientImpl(51) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='c20AP021HJK3zW+ELmBEdfqiiieZNHG2NVtoB5VYS5E=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 313ms] HttpClientImpl(53) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=445	[HttpClient-52-SelectorManager] [34s 313ms] HttpClientImpl(52) next timeout: 0
FINE	thread=445	[HttpClient-52-SelectorManager] [34s 313ms] HttpClientImpl(52) next expired: 0
FINE	thread=445	[HttpClient-52-SelectorManager] [34s 313ms] HttpClientImpl(52) Next deadline is 3000
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:37.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:37.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:37.232Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFDT09Vbj74Hqq33LsomUFRlfSrkGAhRBvk3XBAnfZ8J6AG6pPUMe4ddcKg==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFDT09Vbj74Hqq33LsomUFRlfSrkGAhRBvk3XBAnfZ8J6AG6pPUMe4ddcKg==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1778259157232
java.io.IOException
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259157232 (1 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='9fP09miothVb6NsDkvYmWqUL7RUusIMTKqWeCa1J3IQ=' , 1ms
FINE	thread=446	[HttpClient-53-SelectorManager] [34s 321ms] HttpClientImpl(53) next timeout: 0
FINE	thread=446	[HttpClient-53-SelectorManager] [34s 321ms] HttpClientImpl(53) next expired: 0
FINE	thread=446	[HttpClient-53-SelectorManager] [34s 321ms] HttpClientImpl(53) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 323ms] HttpClientImpl(54) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
CONFIG	thread=1	[null] url=https://earthquake.usgs.gov
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='PEPwaAWB6Uc9d7GzNkfHT++CYswMunpV1ouWfD30kuM=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 336ms] HttpClientImpl(55) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=447	[HttpClient-54-SelectorManager] [34s 338ms] HttpClientImpl(54) next timeout: 0
FINE	thread=447	[HttpClient-54-SelectorManager] [34s 338ms] HttpClientImpl(54) next expired: 0
FINE	thread=447	[HttpClient-54-SelectorManager] [34s 338ms] HttpClientImpl(54) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [34s 339ms] HttpClientImpl(56) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=448	[HttpClient-55-SelectorManager] [34s 339ms] HttpClientImpl(55) next timeout: 0
FINE	thread=448	[HttpClient-55-SelectorManager] [34s 339ms] HttpClientImpl(55) next expired: 0
FINE	thread=448	[HttpClient-55-SelectorManager] [34s 339ms] HttpClientImpl(55) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='s+24v5RV35dfcUGvvOF0NxiNiTCzTK6TSaBmGmy6vAM=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 344ms] HttpClientImpl(57) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=449	[HttpClient-56-SelectorManager] [34s 344ms] HttpClientImpl(56) next timeout: 0
FINE	thread=449	[HttpClient-56-SelectorManager] [34s 345ms] HttpClientImpl(56) next expired: 0
FINE	thread=449	[HttpClient-56-SelectorManager] [34s 345ms] HttpClientImpl(56) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/pdl/east/products/{urn}
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [34s 348ms] HttpClientImpl(58) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=450	[HttpClient-57-SelectorManager] [34s 348ms] HttpClientImpl(57) next timeout: 0
FINE	thread=450	[HttpClient-57-SelectorManager] [34s 348ms] HttpClientImpl(57) next expired: 0
FINE	thread=450	[HttpClient-57-SelectorManager] [34s 348ms] HttpClientImpl(57) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='dMMBTaJz83RM3x2Q1do0nL7zLDMZofue3PxKa9VbEXE=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 356ms] HttpClientImpl(59) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=451	[HttpClient-58-SelectorManager] [34s 356ms] HttpClientImpl(58) next timeout: 0
FINE	thread=451	[HttpClient-58-SelectorManager] [34s 357ms] HttpClientImpl(58) next expired: 0
FINE	thread=451	[HttpClient-58-SelectorManager] [34s 357ms] HttpClientImpl(58) Next deadline is 3000
CONFIG	thread=1	[null] url=https://test.com
CONFIG	thread=1	[null] sign products=false
CONFIG	thread=1	[null] contentFormat = MAP
CONFIG	thread=1	[null] sendProductPath=/new/path/to/hit
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [34s 362ms] HttpClientImpl(60) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=452	[HttpClient-59-SelectorManager] [34s 365ms] HttpClientImpl(59) next timeout: 0
FINE	thread=452	[HttpClient-59-SelectorManager] [34s 365ms] HttpClientImpl(59) next expired: 0
FINE	thread=452	[HttpClient-59-SelectorManager] [34s 365ms] HttpClientImpl(59) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='VUDxEUeq09faw6wUoHCvb+N6mSQ4bDem7OvcU1AKUKg=' , 2ms
FINE	thread=453	[HttpClient-60-SelectorManager] [34s 369ms] HttpClientImpl(60) next timeout: 0
FINE	thread=453	[HttpClient-60-SelectorManager] [34s 369ms] HttpClientImpl(60) next expired: 0
FINE	thread=453	[HttpClient-60-SelectorManager] [34s 369ms] HttpClientImpl(60) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 378ms] HttpClientImpl(61) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='VUDxEUeq09faw6wUoHCvb+N6mSQ4bDem7OvcU1AKUKg=' , 1ms
FINE	thread=1	[null] Resigned product from original-signature test1234 to new signature MC0CFQCK2OnMiz1LiNq8MWLzwVgjIwr41wIUHnZUejTLWjZTdvSxe9uN+qFDBzU=
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:37.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:37.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:37.289Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MC0CFQCK2OnMiz1LiNq8MWLzwVgjIwr41wIUHnZUejTLWjZTdvSxe9uN+qFDBzU=","signatureVersion":"v2","signatureHistory":[{"signature":"MC0CFQCK2OnMiz1LiNq8MWLzwVgjIwr41wIUHnZUejTLWjZTdvSxe9uN+qFDBzU=","signatureVersion":"v2"},{"signature":"test1234","signatureVersion":"v1"},{"signature":"MC0CFCEZ7Y3iYBDxch0ZxeRQB7LD9Q9zAhUAg1SS/1v0/IwMu+mt3y69sTR6XAA=","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1778259157289 (1 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1778259157289 (0 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1778259157289 (1 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259157289 (2 ms) 
FINE	thread=454	[HttpClient-61-SelectorManager] [34s 396ms] HttpClientImpl(61) next timeout: 0
FINE	thread=454	[HttpClient-61-SelectorManager] [34s 398ms] HttpClientImpl(61) next expired: 0
FINE	thread=454	[HttpClient-61-SelectorManager] [34s 398ms] HttpClientImpl(61) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='N8vd8NwbCRIwTtak2hj+0bkQY0GKWxSQClBhSVJieGI=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 408ms] HttpClientImpl(62) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:37.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:37.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:37.323Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFBaBprsuI8Ye1LseeZl3vBMeYPAdAhRgQsn7rm82xNh6b2JZrmZfE2Me0g==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFBaBprsuI8Ye1LseeZl3vBMeYPAdAhRgQsn7rm82xNh6b2JZrmZfE2Me0g==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1778259157323
gov.usgs.earthquake.aws.AwsProductSender$MaxPayloadExceededException: Maximum payload (131072 bytes) exceeded.
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:400)
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:389)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:305)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:260)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.lambda$testProductTooLargeDoesNotThrow$17(AwsProductSenderTest.java:718)
	at org.junit.Assert.assertThrows(Assert.java:1001)
	at org.junit.Assert.assertThrows(Assert.java:981)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.testProductTooLargeDoesNotThrow(AwsProductSenderTest.java:717)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
FINE	thread=455	[HttpClient-62-SelectorManager] [34s 419ms] HttpClientImpl(62) next timeout: 0
FINE	thread=455	[HttpClient-62-SelectorManager] [34s 428ms] HttpClientImpl(62) next expired: 0
FINE	thread=455	[HttpClient-62-SelectorManager] [34s 428ms] HttpClientImpl(62) Next deadline is 3000
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259157323 (12 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINER	thread=111	[null] running listener cleanup
FINE	thread=1	Digest='ERu4UBMlgPjysdV9bopFnEfJYs68GS6Mj6a5ExgXvs4=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [34s 442ms] HttpClientImpl(63) proxySelector is sun.net.spi.DefaultProxySelector@58968733 (user-supplied=false)
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-05-08T16:52:37.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-05-08T16:52:37.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-05-08T16:50:16.000Z","path":"jar/EIDSInstaller.jar","sha256":"3aZqtykthIrmZEyU8L90+kZKsOT/qY8objYL5KzodKM=","type":"application/octet-stream","url":null}},"geometry":null,"id":{"code":"abcd1234","source":"us","type":"shakemap","updateTime":"2026-05-08T16:52:37.353Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFDJxxWYjUHo8BI4nJPLJB/Bmgg7YAhQur1LNks69NjZvT/GHWdVNQSxv4w==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFDJxxWYjUHo8BI4nJPLJB/Bmgg7YAhQur1LNks69NjZvT/GHWdVNQSxv4w==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=456	[HttpClient-63-SelectorManager] [34s 450ms] HttpClientImpl(63) next timeout: 0
FINE	thread=456	[HttpClient-63-SelectorManager] [34s 454ms] HttpClientImpl(63) next expired: 0
FINE	thread=456	[HttpClient-63-SelectorManager] [34s 454ms] HttpClientImpl(63) Next deadline is 3000
FINE	thread=1	[null] get upload urls exception, trying again
gov.usgs.earthquake.aws.HttpException: Error [500] getting upload urls
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:402)
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:389)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:305)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:260)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.lambda$testHttpExceptionInGetUploadUrlsThrowsException$14(AwsProductSenderTest.java:607)
	at org.junit.Assert.assertThrows(Assert.java:1001)
	at org.junit.Assert.assertThrows(Assert.java:981)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.testHttpExceptionInGetUploadUrlsThrowsException(AwsProductSenderTest.java:606)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
Fri May 08 16:52:38 UTC 2026
FINE	thread=432	[HttpClient-39-SelectorManager] [35s 82ms] HttpClientImpl(39) next timeout: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [35s 83ms] HttpClientImpl(39) next expired: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [35s 83ms] HttpClientImpl(39) Next deadline is 3000
FINE	thread=433	[HttpClient-40-SelectorManager] [35s 94ms] HttpClientImpl(40) next timeout: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [35s 94ms] HttpClientImpl(40) next expired: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [35s 94ms] HttpClientImpl(40) Next deadline is 3000
FINE	thread=434	[HttpClient-41-SelectorManager] [35s 94ms] HttpClientImpl(41) next timeout: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [35s 94ms] HttpClientImpl(41) next expired: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [35s 94ms] HttpClientImpl(41) Next deadline is 3000
FINE	thread=435	[HttpClient-42-SelectorManager] [35s 104ms] HttpClientImpl(42) next timeout: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [35s 104ms] HttpClientImpl(42) next expired: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [35s 104ms] HttpClientImpl(42) Next deadline is 3000
FINE	thread=436	[HttpClient-43-SelectorManager] [35s 114ms] HttpClientImpl(43) next timeout: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [35s 114ms] HttpClientImpl(43) next expired: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [35s 114ms] HttpClientImpl(43) Next deadline is 3000
FINE	thread=437	[HttpClient-44-SelectorManager] [35s 132ms] HttpClientImpl(44) next timeout: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [35s 132ms] HttpClientImpl(44) next expired: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [35s 132ms] HttpClientImpl(44) Next deadline is 3000
FINE	thread=438	[HttpClient-45-SelectorManager] [35s 153ms] HttpClientImpl(45) next timeout: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [35s 153ms] HttpClientImpl(45) next expired: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [35s 153ms] HttpClientImpl(45) Next deadline is 3000
FINE	thread=439	[HttpClient-46-SelectorManager] [35s 176ms] HttpClientImpl(46) next timeout: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [35s 176ms] HttpClientImpl(46) next expired: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [35s 176ms] HttpClientImpl(46) Next deadline is 3000
FINE	thread=440	[HttpClient-47-SelectorManager] [35s 176ms] HttpClientImpl(47) next timeout: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [35s 176ms] HttpClientImpl(47) next expired: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [35s 176ms] HttpClientImpl(47) Next deadline is 3000
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
Fri May 08 16:52:39 UTC 2026
FINE	thread=165	[null] running event archive policy (testPolicy)
WARNING	thread=165	[null] exception running event archive policy (testPolicy) 
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because the return value of "gov.usgs.earthquake.indexer.JDBCProductIndex.getConnection()" is null
	at gov.usgs.earthquake.indexer.JDBCProductIndex.getEvents(JDBCProductIndex.java:232)
	at gov.usgs.earthquake.indexer.Indexer.purgeExpiredProducts(Indexer.java:1838)
	at gov.usgs.earthquake.indexer.Indexer$1.run(Indexer.java:1785)
	at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
	at java.base/java.util.TimerThread.run(Timer.java:516)
INFO	thread=165	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=421	[HttpClient-28-SelectorManager] [36s 352ms] HttpClientImpl(28) next timeout: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [36s 352ms] HttpClientImpl(28) next expired: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [36s 352ms] HttpClientImpl(28) Next deadline is 3000
FINE	thread=422	[HttpClient-29-SelectorManager] [36s 358ms] HttpClientImpl(29) next timeout: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [36s 358ms] HttpClientImpl(29) next expired: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [36s 358ms] HttpClientImpl(29) Next deadline is 3000
FINE	thread=423	[HttpClient-30-SelectorManager] [36s 361ms] HttpClientImpl(30) next timeout: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [36s 361ms] HttpClientImpl(30) next expired: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [36s 362ms] HttpClientImpl(30) Next deadline is 3000
FINE	thread=424	[HttpClient-31-SelectorManager] [36s 365ms] HttpClientImpl(31) next timeout: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [36s 365ms] HttpClientImpl(31) next expired: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [36s 365ms] HttpClientImpl(31) Next deadline is 3000
FINE	thread=425	[HttpClient-32-SelectorManager] [36s 385ms] HttpClientImpl(32) next timeout: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [36s 385ms] HttpClientImpl(32) next expired: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [36s 385ms] HttpClientImpl(32) Next deadline is 3000
FINER	thread=111	[null] running listener cleanup
FINE	thread=426	[HttpClient-33-SelectorManager] [36s 518ms] HttpClientImpl(33) next timeout: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [36s 518ms] HttpClientImpl(33) next expired: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [36s 518ms] HttpClientImpl(33) Next deadline is 3000
FINE	thread=427	[HttpClient-34-SelectorManager] [36s 526ms] HttpClientImpl(34) next timeout: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [36s 526ms] HttpClientImpl(34) next expired: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [36s 526ms] HttpClientImpl(34) Next deadline is 3000
FINE	thread=428	[HttpClient-35-SelectorManager] [36s 534ms] HttpClientImpl(35) next timeout: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [36s 534ms] HttpClientImpl(35) next expired: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [36s 534ms] HttpClientImpl(35) Next deadline is 3000
FINE	thread=429	[HttpClient-36-SelectorManager] [36s 534ms] HttpClientImpl(36) next timeout: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [36s 534ms] HttpClientImpl(36) next expired: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [36s 534ms] HttpClientImpl(36) Next deadline is 3000
FINE	thread=430	[HttpClient-37-SelectorManager] [36s 543ms] HttpClientImpl(37) next timeout: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [36s 543ms] HttpClientImpl(37) next expired: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [36s 543ms] HttpClientImpl(37) Next deadline is 3000
FINE	thread=431	[HttpClient-38-SelectorManager] [36s 549ms] HttpClientImpl(38) next timeout: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [36s 549ms] HttpClientImpl(38) next expired: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [36s 549ms] HttpClientImpl(38) Next deadline is 3000
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1778259157353
gov.usgs.earthquake.aws.HttpException: Error [500] getting upload urls
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:402)
	at gov.usgs.earthquake.aws.AwsProductSender.getUploadUrls(AwsProductSender.java:389)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:314)
	at gov.usgs.earthquake.aws.AwsProductSender.sendProduct(AwsProductSender.java:260)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.lambda$testHttpExceptionInGetUploadUrlsThrowsException$14(AwsProductSenderTest.java:607)
	at org.junit.Assert.assertThrows(Assert.java:1001)
	at org.junit.Assert.assertThrows(Assert.java:981)
	at gov.usgs.earthquake.aws.AwsProductSenderTest.testHttpExceptionInGetUploadUrlsThrowsException(AwsProductSenderTest.java:606)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
	at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
	at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy2/jdk.proxy2.$Proxy5.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1778259157353 (2230 ms)