AwsProductSenderTest

25

tests

0

failures

0

ignored

4.639s

duration

100%

successful

Tests

Test Duration Result
test503SlowDownExceptionGetsRetried 1.501s passed
testCheckProductJsonSize 0.016s passed
testCheckProductJsonSizeThrowsException 0.023s passed
testHttpExceptionGetsRetriedException 0.016s passed
testHttpExceptionInGetUploadUrlsThrowsException 1.432s passed
testHttpExceptionInSendProductThrowsException 1.149s passed
testIOExceptionThrownFromHttpClient 0.019s passed
testInvalidGetUploadUrlsPathConfiguration 0.008s passed
testInvalidSendProductPathConfiguration 0.007s passed
testInvalidUrlConfiguration 0.008s passed
testPayloadConfiguration 0.011s passed
testPayloadConfigurationException 0.023s passed
testProductAlreadyExistsDoesNotThrow 0.015s passed
testProductTooLargeDoesNotThrow 0.023s passed
testSendProductUrlConfigured 0.015s passed
testSendProductUrlConfiguredWithExtraPaths 0.009s passed
testSendProductUrlConfiguredWithExtraSlash 0.011s passed
testSendProductUrlConfiguredWithUrnReplacement 0.011s passed
testSendProductUrlWithDefaultPath 0.010s passed
testSendUploadUrlsConfigured 0.027s passed
testSendUploadUrlsConfiguredWithUrnReplacement 0.024s passed
testSendUploadUrlsWithDefaultPath 0.014s passed
testSignatureHistoryDoesNotIncludeOriginalSignature 0.226s passed
testSignatureHistoryDoesNotIncludeOriginalSignatureVersion 0.019s passed
testSignatureHistoryOnSign 0.022s passed

Standard error

Mon Feb 23 16:04:47 UTC 2026
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='vCNWFP3E7WTXzfpeB97ZPGHipbD14EqtB54ocSHDJ68=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 398ms] HttpClientImpl(28) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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] [32s 399ms] HttpClientImpl(29) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=421	[HttpClient-28-SelectorManager] [32s 401ms] HttpClientImpl(28) next timeout: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [32s 401ms] HttpClientImpl(28) next expired: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [32s 402ms] HttpClientImpl(28) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='rjXfnAYqhXyUlndACIjyQfuohLvqFA11ZraEi7zCzCU=' , 3ms
FINE	thread=422	[HttpClient-29-SelectorManager] [32s 411ms] HttpClientImpl(29) next timeout: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [32s 412ms] HttpClientImpl(29) next expired: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [32s 412ms] HttpClientImpl(29) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 414ms] HttpClientImpl(30) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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
FINE	thread=1	[Test worker] [32s 425ms] HttpClientImpl(31) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=423	[HttpClient-30-SelectorManager] [32s 426ms] HttpClientImpl(30) next timeout: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [32s 426ms] HttpClientImpl(30) next expired: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [32s 426ms] HttpClientImpl(30) Next deadline is 3000
FINE	thread=424	[HttpClient-31-SelectorManager] [32s 432ms] HttpClientImpl(31) next timeout: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [32s 432ms] HttpClientImpl(31) next expired: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [32s 432ms] HttpClientImpl(31) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='ojGXd0j+2FVcndpRWUtJ0OKeciNhu4ekTzzb9hUO0R0=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 442ms] HttpClientImpl(32) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=425	[HttpClient-32-SelectorManager] [32s 453ms] HttpClientImpl(32) next timeout: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [32s 453ms] HttpClientImpl(32) next expired: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [32s 453ms] HttpClientImpl(32) 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='I2iFTucuM59gSS+hhZjTvgkSnxVwKgH+lCcWDh/XcY4=' , 1ms
FINE	thread=1	[null] Resigned product from original-signature null to new signature MCwCFGJImTiSoYialOJA6yh2Mkc77hmOAhQ1zxqJGg2v1tNjRKXXha5uEZv9+w==
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:47.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:47.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:47.072Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1"},"signature":"MCwCFGJImTiSoYialOJA6yh2Mkc77hmOAhQ1zxqJGg2v1tNjRKXXha5uEZv9+w==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFGJImTiSoYialOJA6yh2Mkc77hmOAhQ1zxqJGg2v1tNjRKXXha5uEZv9+w==","signatureVersion":"v2"},{"signature":"MC0CFQCTj2AnEzzc+8o6LDYUqCOY1tdMjgIUVvtgWnde3nQ7/sRGZsWcr1pipS4=","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1771862687072 (9 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1771862687072 (1 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1771862687072 (1 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862687072 (12 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='i3lKDbIgokrq4aTKjZVdDjZcY8n+guremvk5U0Qp8Hc=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 672ms] HttpClientImpl(33) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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] [32s 679ms] HttpClientImpl(34) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=426	[HttpClient-33-SelectorManager] [32s 680ms] HttpClientImpl(33) next timeout: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [32s 680ms] HttpClientImpl(33) next expired: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [32s 680ms] HttpClientImpl(33) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=427	[HttpClient-34-SelectorManager] [32s 688ms] HttpClientImpl(34) next timeout: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [32s 688ms] HttpClientImpl(34) next expired: 0
FINE	thread=1	Digest='eWcwgYIlaJTi0tq6Fdn1B+nq91mx9I5dA8j+lAz5kBs=' , 3ms
FINE	thread=427	[HttpClient-34-SelectorManager] [32s 688ms] HttpClientImpl(34) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 690ms] HttpClientImpl(35) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='0kXGI93UZ1Zz0qPNZwGOtFAUxkp5I7aUMJJC5/+t9K0=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 699ms] HttpClientImpl(36) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=428	[HttpClient-35-SelectorManager] [32s 697ms] HttpClientImpl(35) next timeout: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [32s 700ms] HttpClientImpl(35) next expired: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [32s 700ms] 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] [32s 704ms] HttpClientImpl(37) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=429	[HttpClient-36-SelectorManager] [32s 704ms] HttpClientImpl(36) next timeout: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [32s 704ms] HttpClientImpl(36) next expired: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [32s 704ms] HttpClientImpl(36) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='2l2fUXcRLch5lew7j2ZuUN9UI+oQIzHa3VLO6TmRBYE=' , 6ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [32s 713ms] HttpClientImpl(38) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=430	[HttpClient-37-SelectorManager] [32s 717ms] HttpClientImpl(37) next timeout: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [32s 718ms] HttpClientImpl(37) next expired: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [32s 718ms] HttpClientImpl(37) Next deadline is 3000
FINE	thread=431	[HttpClient-38-SelectorManager] [32s 724ms] HttpClientImpl(38) next timeout: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [32s 724ms] HttpClientImpl(38) next expired: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [32s 724ms] HttpClientImpl(38) Next deadline is 3000
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:47.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:47.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:47.342Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFDu0Awy4Dghfd+Jkt+A9OYLfWCqbAhR5fxXkxWHhQTOxgUGJksap6Iau2g==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFDu0Awy4Dghfd+Jkt+A9OYLfWCqbAhR5fxXkxWHhQTOxgUGJksap6Iau2g==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1771862687342 (2 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1771862687342 (0 ms) 
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=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
Mon Feb 23 16:04:48 UTC 2026
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1771862687342
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:1771862687342 (1129 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='5IadLtuRV+YgFL4fd6CyEM2+gvvl5as73WLgoVnuFVo=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 860ms] HttpClientImpl(39) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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=/new/path/to/hit/with
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [33s 862ms] HttpClientImpl(40) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=432	[HttpClient-39-SelectorManager] [33s 863ms] HttpClientImpl(39) next timeout: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [33s 863ms] HttpClientImpl(39) next expired: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [33s 863ms] HttpClientImpl(39) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='vyEqo76cxTiDNkTmAVQGOa0fnX/F+2lWkc0iOMHAEaU=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 871ms] HttpClientImpl(41) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=433	[HttpClient-40-SelectorManager] [33s 871ms] HttpClientImpl(40) next timeout: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [33s 872ms] HttpClientImpl(40) next expired: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [33s 872ms] 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] [33s 874ms] HttpClientImpl(42) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=434	[HttpClient-41-SelectorManager] [33s 874ms] HttpClientImpl(41) next timeout: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [33s 874ms] HttpClientImpl(41) next expired: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [33s 875ms] HttpClientImpl(41) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='oiaKnLRYSl92PdLB4rz2N+PPl3+WHH3m3QJIefeQqRc=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 881ms] HttpClientImpl(43) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=435	[HttpClient-42-SelectorManager] [33s 882ms] HttpClientImpl(42) next timeout: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [33s 882ms] HttpClientImpl(42) next expired: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [33s 882ms] 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='J1iRyJGDnk+ZB5zaPlkGpLAoxeRwDqNdhVQWSDfkVl8=' , 1ms
FINE	thread=436	[HttpClient-43-SelectorManager] [33s 888ms] HttpClientImpl(43) next timeout: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [33s 888ms] HttpClientImpl(43) next expired: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [33s 889ms] HttpClientImpl(43) Next deadline is 3000
FINE	thread=1	[null] Resigned product from original-signature test1234 to new signature MCwCFGox9M1kheKrCfWlfEUzWvSaUUJiAhRwoXLglW/VRCxLAzuUwJGUavcoAQ==
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:48.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:48.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:48.513Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature":"test1234"},"signature":"MCwCFGox9M1kheKrCfWlfEUzWvSaUUJiAhRwoXLglW/VRCxLAzuUwJGUavcoAQ==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFGox9M1kheKrCfWlfEUzWvSaUUJiAhRwoXLglW/VRCxLAzuUwJGUavcoAQ==","signatureVersion":"v2"},{"signature":"MCsCE1Cec54aebNAtq2zt8MRmRMpKXsCFGc9GzRCQ2mSB1I5jSMXUinoAWkt","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1771862688513 (1 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1771862688513 (0 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1771862688513 (1 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862688513 (2 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='C38V73liq3tb2naklEkvj4wGabXuLS0vl+zvwEv1E9s=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 900ms] HttpClientImpl(44) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:48.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:48.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:48.532Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFEp3Jg1jqiKU5ZMP07CmS4hM42pVAhQdSBKFR3YI4qSFG21x/cc3Vp8BbA==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFEp3Jg1jqiKU5ZMP07CmS4hM42pVAhQdSBKFR3YI4qSFG21x/cc3Vp8BbA==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1771862688532 (1 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1771862688532 (1 ms) 
INFO	thread=1	[null] hub already has product
FINE	thread=437	[HttpClient-44-SelectorManager] [33s 909ms] HttpClientImpl(44) next timeout: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [33s 909ms] HttpClientImpl(44) next expired: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [33s 909ms] HttpClientImpl(44) Next deadline is 3000
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862688532 (4 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='b0OTxHkpYpz7p37HrcrkRvC2/Pmnn4X2eM+IC3HtVeM=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 919ms] HttpClientImpl(45) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=1	[null] notification id test urn:usgs-product:source:type:code:1771862688557
FINE	thread=1	[null] send product urn:usgs-product:source:type:code:1771862688557 (2 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:source:type:code:1771862688557 (4 ms) 
FINE	thread=438	[HttpClient-45-SelectorManager] [33s 927ms] HttpClientImpl(45) next timeout: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [33s 936ms] HttpClientImpl(45) next expired: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [33s 936ms] HttpClientImpl(45) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='yi1jgBUrmlI6+GRVx36VeaJsZIipK5Q798QkpvpK33w=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [33s 946ms] HttpClientImpl(46) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
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='c5Yrr7U3MpWKjhBlPX2ijZVEoaTzODy4+l1Kobr2DWU=' , 5ms
FINEST	thread=1	Signature is already in history.
FINE	thread=439	[HttpClient-46-SelectorManager] [33s 968ms] HttpClientImpl(46) next timeout: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [33s 968ms] HttpClientImpl(46) next expired: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [33s 968ms] HttpClientImpl(46) Next deadline is 3000
FINE	thread=1	[Test worker] [33s 968ms] HttpClientImpl(47) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=440	[HttpClient-47-SelectorManager] [33s 985ms] HttpClientImpl(47) next timeout: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [33s 985ms] HttpClientImpl(47) next expired: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [33s 985ms] HttpClientImpl(47) Next deadline is 3000
FINER	thread=111	[null] running listener cleanup
FINE	thread=1	Getting upload urls for {"contents":{"test.txt":{"length":13,"modified":"2026-02-23T16:04:48.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-02-23T16:04:48.617Z"},"links":[],"properties":{},"signature":null,"signatureVersion":"v1","signatureHistory":[],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:source:type:code:1771862688617 (1 ms) 
FINE	thread=1	[null] 503 slow down exception when uploading contents for urn:usgs-product:source:type:code:1771862688617, trying again
Mon Feb 23 16:04:49 UTC 2026
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
Mon Feb 23 16:04:50 UTC 2026
FINE	thread=421	[HttpClient-28-SelectorManager] [35s 403ms] HttpClientImpl(28) next timeout: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [35s 404ms] HttpClientImpl(28) next expired: 0
FINE	thread=421	[HttpClient-28-SelectorManager] [35s 404ms] HttpClientImpl(28) Next deadline is 3000
FINE	thread=422	[HttpClient-29-SelectorManager] [35s 415ms] HttpClientImpl(29) next timeout: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [35s 415ms] HttpClientImpl(29) next expired: 0
FINE	thread=422	[HttpClient-29-SelectorManager] [35s 415ms] HttpClientImpl(29) Next deadline is 3000
FINE	thread=423	[HttpClient-30-SelectorManager] [35s 429ms] HttpClientImpl(30) next timeout: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [35s 429ms] HttpClientImpl(30) next expired: 0
FINE	thread=423	[HttpClient-30-SelectorManager] [35s 429ms] HttpClientImpl(30) Next deadline is 3000
FINE	thread=424	[HttpClient-31-SelectorManager] [35s 434ms] HttpClientImpl(31) next timeout: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [35s 434ms] HttpClientImpl(31) next expired: 0
FINE	thread=424	[HttpClient-31-SelectorManager] [35s 434ms] HttpClientImpl(31) Next deadline is 3000
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=1	[null] upload contents urn:usgs-product:source:type:code:1771862688617 (1337 ms) 
FINE	thread=425	[HttpClient-32-SelectorManager] [35s 457ms] HttpClientImpl(32) next timeout: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [35s 457ms] HttpClientImpl(32) next expired: 0
FINE	thread=425	[HttpClient-32-SelectorManager] [35s 457ms] HttpClientImpl(32) Next deadline is 3000
FINE	thread=1	[null] notification id test urn:usgs-product:source:type:code:1771862688617
FINE	thread=1	[null] send product urn:usgs-product:source:type:code:1771862688617 (3 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:source:type:code:1771862688617 (1341 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='Sz/woLlq+c0wgh8PZQloqXcI81SAmj+QzctYbDft0uU=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 466ms] HttpClientImpl(48) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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='G9rkiAyCX8GGeCuMkH6IuCG3Ev1j3KcQ5fc7sU1GK94=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=441	[HttpClient-48-SelectorManager] [35s 473ms] HttpClientImpl(48) next timeout: 0
FINE	thread=441	[HttpClient-48-SelectorManager] [35s 474ms] HttpClientImpl(48) next expired: 0
FINE	thread=441	[HttpClient-48-SelectorManager] [35s 474ms] HttpClientImpl(48) Next deadline is 3000
FINE	thread=1	[Test worker] [35s 475ms] HttpClientImpl(49) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [35s 476ms] HttpClientImpl(50) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=442	[HttpClient-49-SelectorManager] [35s 477ms] HttpClientImpl(49) next timeout: 0
FINE	thread=442	[HttpClient-49-SelectorManager] [35s 477ms] HttpClientImpl(49) next expired: 0
FINE	thread=442	[HttpClient-49-SelectorManager] [35s 478ms] HttpClientImpl(49) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='251yDHy9V5b32JWNjdSOsDR93dI6dlvWRwU+KvronIE=' , 4ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 485ms] HttpClientImpl(51) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=443	[HttpClient-50-SelectorManager] [35s 485ms] HttpClientImpl(50) next timeout: 0
FINE	thread=443	[HttpClient-50-SelectorManager] [35s 486ms] HttpClientImpl(50) next expired: 0
FINE	thread=443	[HttpClient-50-SelectorManager] [35s 486ms] 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] [35s 488ms] HttpClientImpl(52) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=444	[HttpClient-51-SelectorManager] [35s 488ms] HttpClientImpl(51) next timeout: 0
FINE	thread=444	[HttpClient-51-SelectorManager] [35s 489ms] HttpClientImpl(51) next expired: 0
FINE	thread=444	[HttpClient-51-SelectorManager] [35s 489ms] HttpClientImpl(51) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='n505eyNDehR0McB1fb4pBhGd+Z0jasrTvNtnXlaDcK0=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 495ms] HttpClientImpl(53) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=445	[HttpClient-52-SelectorManager] [35s 496ms] HttpClientImpl(52) next timeout: 0
FINE	thread=445	[HttpClient-52-SelectorManager] [35s 499ms] HttpClientImpl(52) next expired: 0
FINE	thread=445	[HttpClient-52-SelectorManager] [35s 500ms] HttpClientImpl(52) Next deadline is 3000
FINE	thread=446	[HttpClient-53-SelectorManager] [35s 503ms] HttpClientImpl(53) next timeout: 0
FINE	thread=446	[HttpClient-53-SelectorManager] [35s 506ms] HttpClientImpl(53) next expired: 0
FINE	thread=446	[HttpClient-53-SelectorManager] [35s 506ms] HttpClientImpl(53) Next deadline is 3000
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:50.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:50.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:50.127Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFHoZyx+HYbWINynQU8n1E0qI+PDlAhRyXOIrTDrUVgp5nDCiE35WX7N3Jg==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFHoZyx+HYbWINynQU8n1E0qI+PDlAhRyXOIrTDrUVgp5nDCiE35WX7N3Jg==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1771862690127
java.io.IOException
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862690127 (3 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='Mvpi6dvA6lcpsbCfWyShM2R1VWPZ+/GPLVVC15DlR5c=' , 2ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 516ms] HttpClientImpl(54) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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='lfTaXz1WKzQiU622VxJrF7CNlBmjxgrrHXPZA0hNU58=' , 5ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 526ms] HttpClientImpl(55) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=447	[HttpClient-54-SelectorManager] [35s 527ms] HttpClientImpl(54) next timeout: 0
FINE	thread=447	[HttpClient-54-SelectorManager] [35s 527ms] HttpClientImpl(54) next expired: 0
FINE	thread=447	[HttpClient-54-SelectorManager] [35s 528ms] 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] [35s 529ms] HttpClientImpl(56) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=448	[HttpClient-55-SelectorManager] [35s 530ms] HttpClientImpl(55) next timeout: 0
FINE	thread=448	[HttpClient-55-SelectorManager] [35s 530ms] HttpClientImpl(55) next expired: 0
FINE	thread=448	[HttpClient-55-SelectorManager] [35s 530ms] HttpClientImpl(55) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='cK/lt8o4s72/gh+s8/yU70rQDGpF+zzPTbxUx5zEEPA=' , 4ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 539ms] HttpClientImpl(57) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=449	[HttpClient-56-SelectorManager] [35s 540ms] HttpClientImpl(56) next timeout: 0
FINE	thread=449	[HttpClient-56-SelectorManager] [35s 541ms] HttpClientImpl(56) next expired: 0
FINE	thread=449	[HttpClient-56-SelectorManager] [35s 541ms] 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] [35s 542ms] HttpClientImpl(58) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=450	[HttpClient-57-SelectorManager] [35s 543ms] HttpClientImpl(57) next timeout: 0
FINE	thread=450	[HttpClient-57-SelectorManager] [35s 543ms] HttpClientImpl(57) next expired: 0
FINE	thread=450	[HttpClient-57-SelectorManager] [35s 543ms] HttpClientImpl(57) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='o0JZ2YLAHgHoZViwQJgwihoBgi/NOmIQXurUhUlVPeQ=' , 4ms
FINE	thread=451	[HttpClient-58-SelectorManager] [35s 555ms] HttpClientImpl(58) next timeout: 0
FINE	thread=451	[HttpClient-58-SelectorManager] [35s 555ms] HttpClientImpl(58) next expired: 0
FINE	thread=451	[HttpClient-58-SelectorManager] [35s 555ms] HttpClientImpl(58) Next deadline is 3000
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 558ms] HttpClientImpl(59) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (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=/new/path/to/hit
CONFIG	thread=1	[null] uploadUrlsPath=/pdl/east/products/{urn}/uploads
FINE	thread=1	[Test worker] [35s 559ms] HttpClientImpl(60) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=452	[HttpClient-59-SelectorManager] [35s 563ms] HttpClientImpl(59) next timeout: 0
FINE	thread=452	[HttpClient-59-SelectorManager] [35s 563ms] HttpClientImpl(59) next expired: 0
FINE	thread=452	[HttpClient-59-SelectorManager] [35s 563ms] HttpClientImpl(59) Next deadline is 3000
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='5p+JjMneZve09q2sSkBeM4JZyiJiGvEvFq7FadjGgCs=' , 4ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 571ms] HttpClientImpl(61) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=453	[HttpClient-60-SelectorManager] [35s 572ms] HttpClientImpl(60) next timeout: 0
FINE	thread=453	[HttpClient-60-SelectorManager] [35s 572ms] HttpClientImpl(60) next expired: 0
FINE	thread=453	[HttpClient-60-SelectorManager] [35s 573ms] HttpClientImpl(60) 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='5p+JjMneZve09q2sSkBeM4JZyiJiGvEvFq7FadjGgCs=' , 1ms
FINE	thread=454	[HttpClient-61-SelectorManager] [35s 578ms] HttpClientImpl(61) next timeout: 0
FINE	thread=454	[HttpClient-61-SelectorManager] [35s 581ms] HttpClientImpl(61) next expired: 0
FINE	thread=454	[HttpClient-61-SelectorManager] [35s 581ms] HttpClientImpl(61) Next deadline is 3000
FINE	thread=1	[null] Resigned product from original-signature test1234 to new signature MCwCFGNZiTmLfV8YWbs17qBjlHugs3HMAhQqdSJ0YQF+jpl8XOyhyzr83pcG0g==
FINEST	thread=1	Signature is already in history.
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:50.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:50.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:50.201Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFGNZiTmLfV8YWbs17qBjlHugs3HMAhQqdSJ0YQF+jpl8XOyhyzr83pcG0g==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFGNZiTmLfV8YWbs17qBjlHugs3HMAhQqdSJ0YQF+jpl8XOyhyzr83pcG0g==","signatureVersion":"v2"},{"signature":"test1234","signatureVersion":"v1"},{"signature":"MCwCFEuFrUe0mFJH9UrUEUESL7aJ7MUeAhQznuYN+Or+0DfPXCT8qQpGrO+a0w==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
FINE	thread=1	[null] get upload urls urn:usgs-product:us:shakemap:abcd1234:1771862690201 (2 ms) 
FINE	thread=1	[null] upload contents urn:usgs-product:us:shakemap:abcd1234:1771862690201 (0 ms) 
FINE	thread=1	[null] send product urn:usgs-product:us:shakemap:abcd1234:1771862690201 (0 ms) 
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862690201 (3 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='H12a/5Naw8R912q52hpCEuCHi9aGx8iP/mqs9QNALZo=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 594ms] HttpClientImpl(62) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:50.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:50.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:50.225Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFFLI9ipPmaf9M7aTG7UYI968ZevMAhQM5WsMEK5rpgWMIN4s6CJi5BNc8w==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFFLI9ipPmaf9M7aTG7UYI968ZevMAhQM5WsMEK5rpgWMIN4s6CJi5BNc8w==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1771862690225
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] [35s 603ms] HttpClientImpl(62) next timeout: 0
FINE	thread=455	[HttpClient-62-SelectorManager] [35s 609ms] HttpClientImpl(62) next expired: 0
FINE	thread=455	[HttpClient-62-SelectorManager] [35s 609ms] HttpClientImpl(62) Next deadline is 3000
INFO	thread=1	[null] send product total urn:usgs-product:us:shakemap:abcd1234:1771862690225 (10 ms) 
FINE	thread=1	Using digest version v2, algorithm=SHA-256
FINE	thread=1	Digest='1gSwpHsV/FcpH/U6YYX7W6WUYOt4Bret4lURLtgn/84=' , 3ms
FINEST	thread=1	Signature is already in history.
FINE	thread=1	[Test worker] [35s 620ms] HttpClientImpl(63) proxySelector is sun.net.spi.DefaultProxySelector@200cdb37 (user-supplied=false)
FINE	thread=1	Getting upload urls for {"contents":{"":{"length":33,"modified":"2026-02-23T16:04:50.000Z","path":"","sha256":"0y4HP6Ia60hnSCVWzz5FruqIJePtdy1rw8NzV2EQSy0=","type":"text/html","url":"data:text/html;base64,SSBhbSA8ZW0+aW5saW5lPC9lbT4gaHRtbCBjb250ZW50"},"test.txt":{"length":90,"modified":"2026-02-23T16:04:50.000Z","path":"test.txt","sha256":"f66uqrN9uuqSR0QxztWM0ZxCNzY+WozRW0BEGb4vmUk=","type":"text/plain","url":null},"jar/EIDSInstaller.jar":{"length":35415,"modified":"2026-02-23T15:58:52.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-02-23T16:04:50.248Z"},"links":[{"relation":"testrelation","uri":"http://google.com/"}],"properties":{"testprop":"testvalue","original-signature-version":"v1","original-signature":"test1234"},"signature":"MCwCFBqOFqiv/6nTlc8HuKlFitF+qBXEAhRXyWy0zhY/HgYC0meux1tbNt7ITQ==","signatureVersion":"v2","signatureHistory":[{"signature":"MCwCFBqOFqiv/6nTlc8HuKlFitF+qBXEAhRXyWy0zhY/HgYC0meux1tbNt7ITQ==","signatureVersion":"v2"}],"status":"UPDATE","type":"Feature"}
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=456	[HttpClient-63-SelectorManager] [35s 631ms] HttpClientImpl(63) next timeout: 0
FINE	thread=456	[HttpClient-63-SelectorManager] [35s 639ms] HttpClientImpl(63) next expired: 0
FINE	thread=456	[HttpClient-63-SelectorManager] [35s 639ms] HttpClientImpl(63) Next deadline is 3000
FINE	thread=426	[HttpClient-33-SelectorManager] [35s 682ms] HttpClientImpl(33) next timeout: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [35s 683ms] HttpClientImpl(33) next expired: 0
FINE	thread=426	[HttpClient-33-SelectorManager] [35s 683ms] HttpClientImpl(33) Next deadline is 3000
FINE	thread=427	[HttpClient-34-SelectorManager] [35s 691ms] HttpClientImpl(34) next timeout: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [35s 691ms] HttpClientImpl(34) next expired: 0
FINE	thread=427	[HttpClient-34-SelectorManager] [35s 691ms] HttpClientImpl(34) Next deadline is 3000
FINE	thread=428	[HttpClient-35-SelectorManager] [35s 702ms] HttpClientImpl(35) next timeout: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [35s 702ms] HttpClientImpl(35) next expired: 0
FINE	thread=428	[HttpClient-35-SelectorManager] [35s 702ms] HttpClientImpl(35) Next deadline is 3000
FINE	thread=429	[HttpClient-36-SelectorManager] [35s 706ms] HttpClientImpl(36) next timeout: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [35s 706ms] HttpClientImpl(36) next expired: 0
FINE	thread=429	[HttpClient-36-SelectorManager] [35s 706ms] HttpClientImpl(36) Next deadline is 3000
FINE	thread=430	[HttpClient-37-SelectorManager] [35s 718ms] HttpClientImpl(37) next timeout: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [35s 718ms] HttpClientImpl(37) next expired: 0
FINE	thread=430	[HttpClient-37-SelectorManager] [35s 718ms] HttpClientImpl(37) Next deadline is 3000
FINE	thread=431	[HttpClient-38-SelectorManager] [35s 727ms] HttpClientImpl(38) next timeout: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [35s 727ms] HttpClientImpl(38) next expired: 0
FINE	thread=431	[HttpClient-38-SelectorManager] [35s 727ms] HttpClientImpl(38) Next deadline is 3000
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINER	thread=111	[null] running listener cleanup
Mon Feb 23 16:04:51 UTC 2026
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=432	[HttpClient-39-SelectorManager] [36s 866ms] HttpClientImpl(39) next timeout: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [36s 867ms] HttpClientImpl(39) next expired: 0
FINE	thread=432	[HttpClient-39-SelectorManager] [36s 867ms] HttpClientImpl(39) Next deadline is 3000
FINE	thread=433	[HttpClient-40-SelectorManager] [36s 875ms] HttpClientImpl(40) next timeout: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [36s 875ms] HttpClientImpl(40) next expired: 0
FINE	thread=433	[HttpClient-40-SelectorManager] [36s 875ms] HttpClientImpl(40) Next deadline is 3000
FINE	thread=434	[HttpClient-41-SelectorManager] [36s 877ms] HttpClientImpl(41) next timeout: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [36s 877ms] HttpClientImpl(41) next expired: 0
FINE	thread=434	[HttpClient-41-SelectorManager] [36s 877ms] HttpClientImpl(41) Next deadline is 3000
FINE	thread=435	[HttpClient-42-SelectorManager] [36s 885ms] HttpClientImpl(42) next timeout: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [36s 886ms] HttpClientImpl(42) next expired: 0
FINE	thread=435	[HttpClient-42-SelectorManager] [36s 886ms] HttpClientImpl(42) Next deadline is 3000
FINE	thread=436	[HttpClient-43-SelectorManager] [36s 892ms] HttpClientImpl(43) next timeout: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [36s 893ms] HttpClientImpl(43) next expired: 0
FINE	thread=436	[HttpClient-43-SelectorManager] [36s 893ms] HttpClientImpl(43) Next deadline is 3000
FINE	thread=437	[HttpClient-44-SelectorManager] [36s 913ms] HttpClientImpl(44) next timeout: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [36s 913ms] HttpClientImpl(44) next expired: 0
FINE	thread=437	[HttpClient-44-SelectorManager] [36s 913ms] HttpClientImpl(44) Next deadline is 3000
FINE	thread=438	[HttpClient-45-SelectorManager] [36s 937ms] HttpClientImpl(45) next timeout: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [36s 937ms] HttpClientImpl(45) next expired: 0
FINE	thread=438	[HttpClient-45-SelectorManager] [36s 937ms] HttpClientImpl(45) Next deadline is 3000
FINE	thread=164	[null] running event archive policy (testPolicy)
WARNING	thread=164	[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=164	[null] purged 0 expired events and 0 expired unassociated products.
FINE	thread=439	[HttpClient-46-SelectorManager] [36s 971ms] HttpClientImpl(46) next timeout: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [36s 971ms] HttpClientImpl(46) next expired: 0
FINE	thread=439	[HttpClient-46-SelectorManager] [36s 971ms] HttpClientImpl(46) Next deadline is 3000
FINE	thread=440	[HttpClient-47-SelectorManager] [36s 987ms] HttpClientImpl(47) next timeout: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [36s 988ms] HttpClientImpl(47) next expired: 0
FINE	thread=440	[HttpClient-47-SelectorManager] [36s 988ms] HttpClientImpl(47) Next deadline is 3000
WARNING	thread=1	Exception sending product urn:usgs-product:us:shakemap:abcd1234:1771862690248
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:1771862690248 (1415 ms)