INFO [2025-05-28 18:14:09,342] io.dropwizard.core.server.DefaultServerFactory: Registering jersey handler with root path prefix: / INFO [2025-05-28 18:14:09,348] io.dropwizard.core.server.DefaultServerFactory: Registering admin handler with root path prefix: / INFO [2025-05-28 18:14:09,348] life.catalogue.dw.db.MybatisBundle: Connecting to database clb on pg1.dev.checklistbank.org INFO [2025-05-28 18:14:09,373] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Starting... INFO [2025-05-28 18:14:09,610] com.zaxxer.hikari.pool.HikariPool: HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@434514d8 INFO [2025-05-28 18:14:09,636] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Start completed. INFO [2025-05-28 18:14:38,909] life.catalogue.dw.cors.CorsBundle: Registering CorsBundle with name cors and configuration: life.catalogue.dw.cors.CorsConfiguration@3ece1e79 INFO [2025-05-28 18:14:38,978] life.catalogue.dw.auth.gbif.GbifTrustedAuth: Use trusted GBIF appkey col.app to proxy user colplus INFO [2025-05-28 18:14:38,979] life.catalogue.dw.auth.gbif.GBIFAuthentication: GBIF authentication created using API at https://api.gbif.org/v1/ WARN [2025-05-28 18:14:38,991] life.catalogue.WsROServer: This service runs in read only mode and only responds to GET requests. INFO [2025-05-28 18:14:38,997] org.gbif.nameparser.NameParserGBIF: Create new name parser with 2000ms timeout INFO [2025-05-28 18:14:38,998] org.gbif.nameparser.NameParserGBIF: Change name parser timeout to 5000ms INFO [2025-05-28 18:14:39,985] net.openhft.chronicle.core.Jvm: Chronicle core loaded from file:/home/col/colws/8080/colws.jar INFO [2025-05-28 18:14:40,075] net.openhft.chronicle.bytes.PageUtil: Found pageSize=2,097,152 for mount point '/dev/hugepages' WARN [2025-05-28 18:14:40,169] net.openhft.chronicle.core.internal.cleaner.ReflectionBasedByteBufferCleanerService: Make sure you have set the command line option "--illegal-access=permit --add-exports java.base/jdk.internal.ref=ALL-UNNAMED" to enable ReflectionBasedByteBufferCleanerService INFO [2025-05-28 18:14:40,173] net.openhft.chronicle.bytes.internal.ChunkedMappedFile: Took 36 ms to add mapping for /home/col/data/events/metadata.cq4t INFO [2025-05-28 18:14:40,326] net.openhft.chronicle.threads.DiskSpaceMonitor: Took 3.608 ms to pollDiskSpace for /home/col/data/events INFO [2025-05-28 18:14:40,331] net.openhft.chronicle.core.internal.announcer.InternalAnnouncer: Running under OpenJDK Runtime Environment 11.0.23+9-LTS with 4 processors reported. INFO [2025-05-28 18:14:40,331] net.openhft.chronicle.core.internal.announcer.InternalAnnouncer: Leave your e-mail to get information about the latest releases and patches at https://chronicle.software/release-notes/ INFO [2025-05-28 18:14:40,334] net.openhft.chronicle.core.internal.announcer.InternalAnnouncer: Process id: 8219 :: Chronicle Queue (5.26ea7) INFO [2025-05-28 18:14:40,337] net.openhft.chronicle.core.internal.announcer.InternalAnnouncer: Analytics: Chronicle Queue reports usage statistics. Learn more or turn off: https://github.com/OpenHFT/Chronicle-Queue/blob/ea/DISCLAIMER.adoc INFO [2025-05-28 18:14:40,571] life.catalogue.es.EsClientFactory: Connecting to Elasticsearch using hosts=es.dev.catalogueoflife.org; ports=9200 INFO [2025-05-28 18:14:40,888] org.gbif.nameparser.util.UnicodeUtils: Loaded known homoglyphs for: ![3] $[1] %[1] &[2] ([6] )[6] *[5] +[4] ,[5] .[10] /[15] 0[121] 1[71] 2[13] 3[17] 4[9] 5[9] 6[11] 7[10] 8[14] 9[16] :[17] ;[2] <[7] =[5] >[7] ?[6] @[1] A[28] B[32] C[30] D[22] E[30] F[25] G[22] H[29] J[22] K[27] L[29] M[30] N[24] P[29] Q[15] R[26] S[22] T[41] U[23] V[27] W[20] X[35] Y[30] Z[25] \[11] ^[1] _[5] a[23] b[19] c[21] d[20] e[19] f[20] g[18] h[17] i[36] j[17] k[14] m[1] n[16] p[29] q[17] r[20] s[20] t[14] u[28] v[29] w[23] x[22] y[30] z[17] {[3] }[2] ~[4] ?[1] ?[1] ?[1] ?[7] ?[4] ?[6] ?[1] ?[12] ?[2] ?[1] ?[1] ?[2] ?[2] ?[8] ?[1] ?[1] ?[6] ?[1] ?[2] ?[1] ?[1] ?[1] ?[1] ?[1] ?[1] ?[1] ?[1] ?[1] ?[16] ?[1] ?[1] ?[1] ?[1] ?[3] ?[1] ?[1] ?[2] ?[4] ?[3] ?[1] ?[6] ?[3] ?[9] ?[3] ?[2] ?[1] ?[5] ?[2] ?[1] ?[16] ?[1] ?[4] ?[20] ?[2] ?[1] ?[2] ?[1] ?[14] INFO [2025-05-28 18:14:40,891] org.gbif.nameparser.util.UnicodeUtils: Loaded 11 known hyphen homoglyphs INFO [2025-05-28 18:14:41,031] life.catalogue.portal.PortalPageRenderer: Load NOT_FOUND portal template from resources INFO [2025-05-28 18:14:41,202] life.catalogue.portal.PortalPageRenderer: Load TAXON portal template from resources INFO [2025-05-28 18:14:41,262] life.catalogue.portal.PortalPageRenderer: Load TOMBSTONE portal template from resources INFO [2025-05-28 18:14:41,279] life.catalogue.portal.PortalPageRenderer: Load DATASET portal template from resources INFO [2025-05-28 18:14:41,293] life.catalogue.portal.PortalPageRenderer: Load METADATA portal template from resources INFO [2025-05-28 18:14:41,360] life.catalogue.portal.PortalPageRenderer: Load PROD CLB_DATASET portal template from /home/col/colws/portal-templates/PROD/CLB_DATASET.ftl INFO [2025-05-28 18:14:41,364] life.catalogue.portal.PortalPageRenderer: Load NOT_FOUND portal template from resources INFO [2025-05-28 18:14:41,372] life.catalogue.portal.PortalPageRenderer: Load TAXON portal template from resources INFO [2025-05-28 18:14:41,383] life.catalogue.portal.PortalPageRenderer: Load TOMBSTONE portal template from resources INFO [2025-05-28 18:14:41,395] life.catalogue.portal.PortalPageRenderer: Load DATASET portal template from resources INFO [2025-05-28 18:14:41,404] life.catalogue.portal.PortalPageRenderer: Load METADATA portal template from resources INFO [2025-05-28 18:14:41,457] life.catalogue.portal.PortalPageRenderer: Load PREVIEW CLB_DATASET portal template from /home/col/colws/portal-templates/PREVIEW/CLB_DATASET.ftl INFO [2025-05-28 18:14:41,461] life.catalogue.portal.PortalPageRenderer: Load NOT_FOUND portal template from resources INFO [2025-05-28 18:14:41,468] life.catalogue.portal.PortalPageRenderer: Load TAXON portal template from resources INFO [2025-05-28 18:14:41,477] life.catalogue.portal.PortalPageRenderer: Load TOMBSTONE portal template from resources INFO [2025-05-28 18:14:41,488] life.catalogue.portal.PortalPageRenderer: Load DATASET portal template from resources INFO [2025-05-28 18:14:41,496] life.catalogue.portal.PortalPageRenderer: Load METADATA portal template from resources INFO [2025-05-28 18:14:41,545] life.catalogue.portal.PortalPageRenderer: Load DEV CLB_DATASET portal template from /home/col/colws/portal-templates/DEV/CLB_DATASET.ftl INFO [2025-05-28 18:14:41,732] life.catalogue.concurrent.JobExecutor: Created new job executor with 3 workers and a queue size of 10000 WARN [2025-05-28 18:14:41,733] life.catalogue.concurrent.JobExecutor: No emailer configured! INFO [2025-05-28 18:14:41,799] life.catalogue.resources.VocabResource: Scan for available vocabularies WARN [2025-05-28 18:14:42,834] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key hovel for o hovel - verbatim=Hoevel - previous standard value=m j a hovelacqu WARN [2025-05-28 18:14:42,846] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key huber for f m huber - verbatim=Hueber - previous standard value=j huber WARN [2025-05-28 18:14:42,893] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key hu for a hu - verbatim=Hue - previous standard value=h h hu WARN [2025-05-28 18:14:42,924] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key prat for s prat - verbatim=Pr?t - previous standard value=i pratorius WARN [2025-05-28 18:14:42,983] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key blomb for o g blomberg - verbatim=Blomb. - previous standard value=s blombergen WARN [2025-05-28 18:14:43,045] life.catalogue.common.tax.AuthorshipNormalizer: Authormap contains duplicate key nordl for h von nordlinger - verbatim=N?rdl. - previous standard value=h nordlinger INFO [2025-05-28 18:14:43,061] life.catalogue.common.tax.AuthorshipNormalizer: Created author normalizer with 9838 abbreviation entries INFO [2025-05-28 18:14:43,393] life.catalogue.parser.MapBasedParser: Reading mappings from boolean.csv INFO [2025-05-28 18:14:43,508] life.catalogue.parser.MapBasedParser: Reading mappings from iso3166/country.csv INFO [2025-05-28 18:14:43,650] life.catalogue.parser.MapBasedParser: Reading mappings from datasettype.csv INFO [2025-05-28 18:14:44,044] life.catalogue.parser.MapBasedParser: Reading mappings from distributionstatus.csv INFO [2025-05-28 18:14:44,318] life.catalogue.parser.MapBasedParser: Reading mappings from gazetteer.csv INFO [2025-05-28 18:14:44,692] life.catalogue.parser.LanguageParser: Reading language mapping iso-639-3_Name_Index_20250415.tab INFO [2025-05-28 18:14:44,789] life.catalogue.parser.LanguageParser: Reading language mapping iso-639-3_Retirements_20250415.tab INFO [2025-05-28 18:14:44,824] life.catalogue.parser.LanguageParser: Reading language mapping language-native.tab INFO [2025-05-28 18:14:44,844] life.catalogue.parser.LanguageParser: Reading language mapping language-custom.tsv INFO [2025-05-28 18:14:44,864] life.catalogue.parser.LanguageParser: Reading language mapping query.tsv INFO [2025-05-28 18:14:45,031] life.catalogue.parser.MapBasedParser: Reading mappings from license.csv INFO [2025-05-28 18:14:45,050] life.catalogue.parser.MapBasedParser: Reading mappings from environment.csv INFO [2025-05-28 18:14:45,070] life.catalogue.parser.MapBasedParser: Reading mappings from mediatype.csv INFO [2025-05-28 18:14:45,090] life.catalogue.parser.MapBasedParser: Reading mappings from nomcode.csv INFO [2025-05-28 18:14:45,114] life.catalogue.parser.MapBasedParser: Reading mappings from nomreltype.csv INFO [2025-05-28 18:14:45,260] life.catalogue.parser.NomenOntology: Loaded 363 NOMEN classes INFO [2025-05-28 18:14:45,324] life.catalogue.parser.MapBasedParser: Reading mappings from nomstatus.csv INFO [2025-05-28 18:14:45,371] life.catalogue.parser.NomenOntology: Loaded 363 NOMEN classes INFO [2025-05-28 18:14:45,401] life.catalogue.parser.MapBasedParser: Reading mappings from rank.csv INFO [2025-05-28 18:14:45,446] life.catalogue.parser.MapBasedParser: Reading mappings from referencetype.csv INFO [2025-05-28 18:14:45,468] life.catalogue.parser.MapBasedParser: Reading mappings from sex.csv INFO [2025-05-28 18:14:45,471] life.catalogue.parser.EnumNoteParser: Reading mappings from taxstatus.csv INFO [2025-05-28 18:14:45,519] life.catalogue.parser.MapBasedParser: Reading mappings from treatmentformat.csv INFO [2025-05-28 18:14:45,541] life.catalogue.parser.MapBasedParser: Reading mappings from typestatus.csv INFO [2025-05-28 18:14:45,562] io.dropwizard.core.server.ServerFactory: Starting ChecklistBankRO . / V\ / ` / << | / | / | / | / \ \ / ( ) | | ________| _/_ | | <__________\______)\__) ============================================================= ?????????????????????????????? ????????????????????? ????????????????????????????????????????????????????????????????????? ????????? ?????????????????????????????????????????????????????? ????????????????????????????????? ???????????????????????? / _ \ ????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????? ????????? ???????????????????????? \_\(_)/_/ ?????????????????????????????????????????? ????????????????????????????????? ??????????????????????????? ???????????????????????? ????????? ????????? ???????????????????????? _//"\\_ ?????????????????????????????????????????? ???????????????????????????????????? ?????????????????????????????? ???????????????????????? ???????????????????????????????????????????????????????????????????????? / \ ????????????????????????????????????????????????????????? ????????? ????????????????????? ????????????????????????????????? ????????? ?????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????? ??????????????? ????????????????????????????????? ????????? ======================================================================================== INFO [2025-05-28 18:14:45,744] org.eclipse.jetty.setuid.SetUIDListener: Opened application@9f52eb7{HTTP/1.1, (http/1.1)}{0.0.0.0:8082} INFO [2025-05-28 18:14:45,744] org.eclipse.jetty.setuid.SetUIDListener: Opened admin@46c2189e{HTTP/1.1, (http/1.1)}{0.0.0.0:8083} INFO [2025-05-28 18:14:45,748] org.eclipse.jetty.server.Server: jetty-11.0.23; built: 2024-08-14T01:40:17.906Z; git: 6fcf5ccaebd7ca13a0cb96c96adca699a24080a0; jvm 11.0.23+9-LTS INFO [2025-05-28 18:14:45,766] life.catalogue.event.EventBroker: Start event broker with queue at /home/col/data/events INFO [2025-05-28 18:15:06,357] io.dropwizard.jersey.DropwizardResourceConfig: The following paths were found for the configured resources: GET /dataset (life.catalogue.resources.DatasetResource) POST /dataset (life.catalogue.resources.DatasetResource) GET /dataset/duplicates (life.catalogue.resources.DatasetResource) GET /dataset/keys (life.catalogue.resources.DatasetResource) DELETE /dataset/{key} (life.catalogue.resources.DatasetResource) GET /dataset/{key} (life.catalogue.resources.DatasetResource) PUT /dataset/{key} (life.catalogue.resources.DatasetResource) GET /dataset/{key}/archive (life.catalogue.resources.DatasetArchiveResource) DELETE /dataset/{key}/decision (life.catalogue.resources.DecisionResource) GET /dataset/{key}/decision (life.catalogue.resources.DecisionResource) POST /dataset/{key}/decision (life.catalogue.resources.DecisionResource) GET /dataset/{key}/decision/count (life.catalogue.resources.DecisionResource) POST /dataset/{key}/decision/rematch (life.catalogue.resources.DecisionResource) GET /dataset/{key}/decision/stale (life.catalogue.resources.DecisionResource) DELETE /dataset/{key}/decision/{id} (life.catalogue.resources.DecisionResource) GET /dataset/{key}/decision/{id} (life.catalogue.resources.DecisionResource) PUT /dataset/{key}/decision/{id} (life.catalogue.resources.DecisionResource) GET /dataset/{key}/duplicate (life.catalogue.resources.DuplicateResource) GET /dataset/{key}/duplicate/count (life.catalogue.resources.DuplicateResource) GET /dataset/{key}/estimate (life.catalogue.resources.EstimateResource) POST /dataset/{key}/estimate (life.catalogue.resources.EstimateResource) GET /dataset/{key}/estimate/count (life.catalogue.resources.EstimateResource) POST /dataset/{key}/estimate/rematch (life.catalogue.resources.EstimateResource) DELETE /dataset/{key}/estimate/{id} (life.catalogue.resources.EstimateResource) GET /dataset/{key}/estimate/{id} (life.catalogue.resources.EstimateResource) PUT /dataset/{key}/estimate/{id} (life.catalogue.resources.EstimateResource) GET /dataset/{key}/import (life.catalogue.resources.DatasetImportResource) GET /dataset/{key}/import/releases (life.catalogue.resources.DatasetImportResource) GET /dataset/{key}/import/{attempt} (life.catalogue.resources.DatasetImportResource) GET /dataset/{key}/import/{attempt}/names (life.catalogue.resources.DatasetImportResource) GET /dataset/{key}/import/{attempt}/tree (life.catalogue.resources.DatasetImportResource) GET /dataset/{key}/issues (life.catalogue.resources.DatasetIssuesResource) DELETE /dataset/{key}/logo (life.catalogue.resources.ImageResource) GET /dataset/{key}/logo (life.catalogue.resources.ImageResource) POST /dataset/{key}/logo (life.catalogue.resources.ImageResource) GET /dataset/{key}/logo/source/{id} (life.catalogue.resources.ImageResource) GET /dataset/{key}/matches/count (life.catalogue.resources.DatasetResource) GET /dataset/{key}/name (life.catalogue.resources.NameResource) POST /dataset/{key}/name (life.catalogue.resources.NameResource) GET /dataset/{key}/name/count (life.catalogue.resources.NameResource) DELETE /dataset/{key}/name/orphans (life.catalogue.resources.NameResource) GET /dataset/{key}/name/orphans (life.catalogue.resources.NameResource) DELETE /dataset/{key}/name/{id} (life.catalogue.resources.NameResource) GET /dataset/{key}/name/{id} (life.catalogue.resources.NameResource) PUT /dataset/{key}/name/{id} (life.catalogue.resources.NameResource) GET /dataset/{key}/name/{id}/group (life.catalogue.resources.NameResource) GET /dataset/{key}/name/{id}/relations (life.catalogue.resources.NameResource) GET /dataset/{key}/name/{id}/synonyms (life.catalogue.resources.NameResource) GET /dataset/{key}/name/{id}/types (life.catalogue.resources.NameResource) GET /dataset/{key}/nameusage (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/pattern (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/search (life.catalogue.resources.NameUsageResource) POST /dataset/{key}/nameusage/search (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/suggest (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/{id} (life.catalogue.resources.NameUsageResource) PATCH /dataset/{key}/nameusage/{id} (life.catalogue.resources.NameUsageResource) POST /dataset/{key}/nameusage/{id}/feedback (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/{id}/info (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/{id}/related (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/nameusage/{id}/source (life.catalogue.resources.NameUsageResource) GET /dataset/{key}/patch (life.catalogue.resources.DatasetPatchResource) POST /dataset/{key}/patch (life.catalogue.resources.DatasetPatchResource) DELETE /dataset/{key}/patch/{id} (life.catalogue.resources.DatasetPatchResource) GET /dataset/{key}/patch/{id} (life.catalogue.resources.DatasetPatchResource) PUT /dataset/{key}/patch/{id} (life.catalogue.resources.DatasetPatchResource) PUT /dataset/{key}/publish (life.catalogue.resources.DatasetResource) GET /dataset/{key}/reference (life.catalogue.resources.ReferenceResource) POST /dataset/{key}/reference (life.catalogue.resources.ReferenceResource) GET /dataset/{key}/reference/count (life.catalogue.resources.ReferenceResource) DELETE /dataset/{key}/reference/orphans (life.catalogue.resources.ReferenceResource) GET /dataset/{key}/reference/orphans (life.catalogue.resources.ReferenceResource) DELETE /dataset/{key}/reference/{id} (life.catalogue.resources.ReferenceResource) GET /dataset/{key}/reference/{id} (life.catalogue.resources.ReferenceResource) PUT /dataset/{key}/reference/{id} (life.catalogue.resources.ReferenceResource) GET /dataset/{key}/scrutinizer (life.catalogue.resources.DatasetResource) DELETE /dataset/{key}/sector/publisher (life.catalogue.resources.PublisherResource) GET /dataset/{key}/sector/publisher (life.catalogue.resources.PublisherResource) POST /dataset/{key}/sector/publisher (life.catalogue.resources.PublisherResource) GET /dataset/{key}/sector/publisher/count (life.catalogue.resources.PublisherResource) DELETE /dataset/{key}/sector/publisher/{id} (life.catalogue.resources.PublisherResource) GET /dataset/{key}/sector/publisher/{id} (life.catalogue.resources.PublisherResource) PUT /dataset/{key}/sector/publisher/{id} (life.catalogue.resources.PublisherResource) GET /dataset/{key}/sector/publisher/{id}/metrics (life.catalogue.resources.PublisherResource) GET /dataset/{key}/settings (life.catalogue.resources.DatasetResource) PUT /dataset/{key}/settings (life.catalogue.resources.DatasetResource) GET /dataset/{key}/source (life.catalogue.resources.DatasetSourceResource) GET /dataset/{key}/source/suggest (life.catalogue.resources.DatasetSourceResource) GET /dataset/{key}/source/{id} (life.catalogue.resources.DatasetSourceResource) PUT /dataset/{key}/source/{id} (life.catalogue.resources.DatasetSourceResource) GET /dataset/{key}/source/{id}/metrics (life.catalogue.resources.DatasetSourceResource) GET /dataset/{key}/source/{id}/seo (life.catalogue.resources.DatasetSourceResource) GET /dataset/{key}/synonym (life.catalogue.resources.SynonymResource) POST /dataset/{key}/synonym (life.catalogue.resources.SynonymResource) GET /dataset/{key}/synonym/count (life.catalogue.resources.SynonymResource) DELETE /dataset/{key}/synonym/{id} (life.catalogue.resources.SynonymResource) GET /dataset/{key}/synonym/{id} (life.catalogue.resources.SynonymResource) PUT /dataset/{key}/synonym/{id} (life.catalogue.resources.SynonymResource) GET /dataset/{key}/synonym/{id}/source (life.catalogue.resources.SynonymResource) GET /dataset/{key}/taxon (life.catalogue.resources.TaxonResource) POST /dataset/{key}/taxon (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/count (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/ids (life.catalogue.resources.TaxonResource) DELETE /dataset/{key}/taxon/{id} (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id} (life.catalogue.resources.TaxonResource) PUT /dataset/{key}/taxon/{id} (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/breakdown (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/classification (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/distribution (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/info (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/interaction (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/media (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/metrics (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/property (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/relation (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/source (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/synonyms (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/treatment (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/tree (life.catalogue.resources.TaxonResource) POST /dataset/{key}/taxon/{id}/tree (life.catalogue.resources.TaxonResource) GET /dataset/{key}/taxon/{id}/vernacular (life.catalogue.resources.TaxonResource) GET /dataset/{key}/tree (life.catalogue.resources.TreeResource) DELETE /dataset/{key}/tree/{id} (life.catalogue.resources.TreeResource) GET /dataset/{key}/tree/{id} (life.catalogue.resources.TreeResource) GET /dataset/{key}/tree/{id}/children (life.catalogue.resources.TreeResource) GET /dataset/{key}/verbatim (life.catalogue.resources.VerbatimResource) GET /dataset/{key}/verbatim/{id} (life.catalogue.resources.VerbatimResource) GET /dataset/{key}/vernacular (life.catalogue.resources.VernacularResource) GET /dataset/{key}/{attempt} (life.catalogue.resources.DatasetResource) GET /export (life.catalogue.resources.ExportResource) DELETE /export/{id} (life.catalogue.resources.ExportResource) GET /export/{id} (life.catalogue.resources.ExportResource) GET /nameusage (life.catalogue.resources.NameUsageSearchResource) GET /nameusage/search (life.catalogue.resources.NameUsageSearchResource) POST /nameusage/search (life.catalogue.resources.NameUsageSearchResource) GET /parser (life.catalogue.resources.parser.ParserResource) GET /parser/homoglyph (life.catalogue.resources.parser.HomoglyphParserResource) POST /parser/homoglyph (life.catalogue.resources.parser.HomoglyphParserResource) GET /parser/homotypic (life.catalogue.resources.parser.HomotypicGroupingResource) POST /parser/homotypic (life.catalogue.resources.parser.HomotypicGroupingResource) GET /parser/idconverter/decode (life.catalogue.resources.parser.IdEncoderResource) GET /parser/idconverter/encode (life.catalogue.resources.parser.IdEncoderResource) GET /parser/metadata (life.catalogue.resources.parser.MetadataParserResource) POST /parser/metadata (life.catalogue.resources.parser.MetadataParserResource) GET /parser/name (life.catalogue.resources.parser.NameParserResource) POST /parser/name (life.catalogue.resources.parser.NameParserResource) GET /parser/name/config (life.catalogue.resources.parser.NameParserResource) POST /parser/name/config (life.catalogue.resources.parser.NameParserResource) POST /parser/name/config/batch (life.catalogue.resources.parser.NameParserResource) DELETE /parser/name/config/{id} (life.catalogue.resources.parser.NameParserResource) GET /parser/name/config/{id} (life.catalogue.resources.parser.NameParserResource) GET /parser/reference/resolve (life.catalogue.resources.parser.ReferenceParserResource) GET /parser/taxgroup (life.catalogue.resources.parser.TaxGroupResource) GET /parser/{type} (life.catalogue.resources.parser.ParserResource) POST /parser/{type} (life.catalogue.resources.parser.ParserResource) GET /portal/{env}/clb_dataset/{id} (life.catalogue.resources.PortalResource) GET /portal/{env}/dataset-x/{id} (life.catalogue.resources.PortalResource) GET /portal/{env}/dataset/{id} (life.catalogue.resources.PortalResource) GET /portal/{env}/metadata (life.catalogue.resources.PortalResource) GET /portal/{env}/metadata-x (life.catalogue.resources.PortalResource) GET /portal/{env}/taxon-x/{id} (life.catalogue.resources.PortalResource) GET /portal/{env}/taxon/{id} (life.catalogue.resources.PortalResource) PUT /portal/{env}/{page} (life.catalogue.resources.PortalResource) GET /vernacular (life.catalogue.resources.VernacularGlobalResource) GET /version (life.catalogue.resources.VersionResource) GET /version/startup (life.catalogue.resources.VersionResource) GET /vocab (life.catalogue.resources.VocabResource) GET /vocab/area (life.catalogue.resources.VocabResource) GET /vocab/area/{id} (life.catalogue.resources.VocabResource) GET /vocab/country/{code} (life.catalogue.resources.VocabResource) GET /vocab/geotime (life.catalogue.resources.VocabResource) GET /vocab/geotime/{name} (life.catalogue.resources.VocabResource) GET /vocab/geotime/{name}/children (life.catalogue.resources.VocabResource) GET /vocab/language (life.catalogue.resources.VocabResource) GET /vocab/language/{code} (life.catalogue.resources.VocabResource) GET /vocab/term (life.catalogue.resources.VocabResource) GET /vocab/term/{prefix}:{name} (life.catalogue.resources.VocabResource) GET /vocab/{vocab} (life.catalogue.resources.VocabResource) GET /vocab/{vocab}/{name} (life.catalogue.resources.VocabResource) WARN [2025-05-28 18:15:06,359] org.glassfish.jersey.internal.Errors: The following warnings have been detected: WARNING: Return type, java.util.Collection, of method, public java.util.Collection life.catalogue.resources.VocabResource.areas(life.catalogue.api.vocab.Gazetteer) throws java.lang.IllegalAccessException, is not resolvable to a concrete type. WARNING: Return type, java.util.Optional, of method, public java.util.Optional life.catalogue.resources.VocabResource.area(java.lang.String) throws life.catalogue.parser.UnparsableException, is not resolvable to a concrete type. WARNING: Return type, java.util.List>, of method, public java.util.List> life.catalogue.resources.parser.ParserResource.parseJson(java.lang.String,java.util.List), is not resolvable to a concrete type. WARNING: Return type, java.util.List>, of method, public java.util.List> life.catalogue.resources.parser.ParserResource.parseFile(java.lang.String,java.io.InputStream) throws java.io.UnsupportedEncodingException, is not resolvable to a concrete type. WARNING: Return type, java.util.List>, of method, public java.util.List> life.catalogue.resources.parser.ParserResource.parseGet(java.lang.String,java.util.List), is not resolvable to a concrete type. WARNING: Return type, java.util.List>, of method, public java.util.List> life.catalogue.resources.parser.ParserResource.parsePlainText(java.lang.String,java.io.InputStream) throws java.io.UnsupportedEncodingException, is not resolvable to a concrete type. INFO [2025-05-28 18:15:06,360] org.eclipse.jetty.server.handler.ContextHandler: Started i.d.j.MutableServletContextHandler@41bc501b{/,null,AVAILABLE} INFO [2025-05-28 18:15:06,365] io.dropwizard.core.setup.AdminEnvironment: tasks = POST /tasks/events (life.catalogue.dw.tasks.EventQueueTask) POST /tasks/log-level (io.dropwizard.servlets.tasks.LogConfigurationTask) POST /tasks/gc (io.dropwizard.servlets.tasks.GarbageCollectionTask) POST /tasks/flush-caches (life.catalogue.dw.tasks.ClearCachesTask) INFO [2025-05-28 18:15:06,366] org.eclipse.jetty.server.handler.ContextHandler: Started i.d.j.MutableServletContextHandler@122a6078{/,null,AVAILABLE} INFO [2025-05-28 18:15:06,374] org.eclipse.jetty.server.AbstractConnector: Started application@9f52eb7{HTTP/1.1, (http/1.1)}{0.0.0.0:8082} INFO [2025-05-28 18:15:06,377] org.eclipse.jetty.server.AbstractConnector: Started admin@46c2189e{HTTP/1.1, (http/1.1)}{0.0.0.0:8083} INFO [2025-05-28 18:15:06,379] org.eclipse.jetty.server.Server: Started Server@3bf4644c{STARTING}[11.0.23,sto=30000] @61923ms ERROR [2025-05-28 18:15:06,781] life.catalogue.WsROServer: Failed to load name parser configs ! java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ ! See https://github.com/google/gson/blob/main/Troubleshooting.md#unexpected-json-structure ! at com.google.gson.stream.JsonReader.unexpectedTokenError(JsonReader.java:1768) ! at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:469) ! at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:509) ! ... 15 common frames omitted ! Causing: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ ! See https://github.com/google/gson/blob/main/Troubleshooting.md#unexpected-json-structure ! at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:520) ! at com.google.gson.Gson.fromJson(Gson.java:1361) ! at com.google.gson.Gson.fromJson(Gson.java:1262) ! at com.google.gson.Gson.fromJson(Gson.java:1171) ! at com.google.gson.Gson.fromJson(Gson.java:1107) ! at org.gbif.nameparser.ParserConfigs.loadFromCLB(ParserConfigs.java:129) ! at life.catalogue.WsROServer.lambda$run$1(WsROServer.java:179) ! at io.dropwizard.lifecycle.setup.LifecycleEnvironment$ServerListener.lifeCycleStarted(LifecycleEnvironment.java:145) ! at org.eclipse.jetty.util.component.AbstractLifeCycle.setStarted(AbstractLifeCycle.java:253) ! at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:94) ! at io.dropwizard.core.cli.ServerCommand.run(ServerCommand.java:52) ! at io.dropwizard.core.cli.EnvironmentCommand.run(EnvironmentCommand.java:67) ! at io.dropwizard.core.cli.ConfiguredCommand.run(ConfiguredCommand.java:98) ! at io.dropwizard.core.cli.Cli.run(Cli.java:78) ! at io.dropwizard.core.Application.run(Application.java:94) ! at life.catalogue.WsROServer.main(WsROServer.java:83) WARN [2025-05-29 06:48:19,180] com.zaxxer.hikari.pool.PoolBase: HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@46ec3c1b (This connection has been closed.). Possibly consider using a shorter maxLifetime value. INFO [2025-05-29 18:14:45,774] life.catalogue.event.EventBroker: Look for unused files from queue at /home/col/data/events INFO [2025-05-29 18:14:46,045] life.catalogue.event.EventBroker: Removed 1 unused files from queue at /home/col/data/events INFO [2025-05-30 18:14:46,049] life.catalogue.event.EventBroker: Look for unused files from queue at /home/col/data/events INFO [2025-05-30 18:14:46,244] life.catalogue.event.EventBroker: Removed 0 unused files from queue at /home/col/data/events INFO [2025-05-31 18:14:46,251] life.catalogue.event.EventBroker: Look for unused files from queue at /home/col/data/events INFO [2025-05-31 18:14:46,441] life.catalogue.event.EventBroker: Removed 0 unused files from queue at /home/col/data/events