locally hosted web application that allows you to perform various operations on PDF files
Go to file
PandaMan ffd1abbdb3
Fix ClassCastException in extractBookmarks endpoint (#5578) (#5604)
## Description

Fixes #5578

This PR fixes a `ClassCastException` that occurs when calling
`/api/v1/general/extract-bookmarks`. The method was returning
`List<Map<String, Object>>` directly, but Spring MVC was wrapping it in
a `ResponseEntity`, causing a type mismatch.

## Changes

- Changed return type from `List<Map<String, Object>>` to
`ResponseEntity<List<Map<String, Object>>>`
- Wrapped return values with `ResponseEntity.ok(...)` to match Spring
MVC pattern
- Removed `@ResponseBody` annotation as it is not needed with
`ResponseEntity`

## Verification

This fix follows the same pattern used in other similar endpoints:
- `VerifyPDFController.verifyPDF()` returns
`ResponseEntity<List<PDFVerificationResult>>`
- `ValidateSignatureController.validateSignature()` returns
`ResponseEntity<List<SignatureValidationResult>>`

## Testing

The endpoint should now return a proper JSON response with the list of
bookmarks instead of throwing a 500 error.

---------

Co-authored-by: GitTensor Miner <miner@gittensor.io>
Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
2026-02-03 09:48:09 +00:00
.devcontainer
.github Pin GitHub Actions and add runner hardening (#5628) 2026-01-31 21:00:07 +00:00
.vscode
app Fix ClassCastException in extractBookmarks endpoint (#5578) (#5604) 2026-02-03 09:48:09 +00:00
devGuide refactor: remove legacy Thymeleaf web UI controllers and templates (#5406) 2026-01-21 21:58:29 +00:00
devTools build(deps-dev): bump stylelint-config-standard from 39.0.1 to 40.0.0 in /devTools (#5504) 2026-01-21 22:24:29 +00:00
docker removal of old java desktop + workspace change in tauri (#5459) 2026-01-23 11:42:33 +00:00
docs V1 merge (#5193) 2025-12-21 10:40:32 +00:00
frontend update to add optional Zero Padding to page numbers (Bates Stamping).… (#5612) 2026-02-02 10:42:33 +00:00
gradle/wrapper
images Revert "[ImgBot] Optimize images" (#5293) 2025-12-22 22:10:23 +00:00
scripts 🤖 format everything with pre-commit by stirlingbot (#5538) 2026-01-29 23:07:59 +00:00
testing Update Python dependencies in requirements files (#5627) 2026-01-31 20:26:21 +00:00
.dockerignore java frontend (#5097) 2025-12-02 17:15:29 +00:00
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore refactor(security): clean up SSO handling, harden URL parsing, and bump dependencies (#5523) 2026-01-22 19:39:34 +00:00
.pre-commit-config.yaml deps(ci): update Dependabot, pre-commit tooling, and testing dependencies (#5170) 2025-12-27 23:56:57 +00:00
ADDING_TOOLS.md refactor: remove legacy Thymeleaf web UI controllers and templates (#5406) 2026-01-21 21:58:29 +00:00
build.gradle always allow tauri cors (#5616) 2026-01-31 19:52:48 +00:00
CLAUDE.md removal of old java desktop + workspace change in tauri (#5459) 2026-01-23 11:42:33 +00:00
CONTRIBUTING.md
DATABASE.md
DeveloperGuide.md refactor: remove legacy Thymeleaf web UI controllers and templates (#5406) 2026-01-21 21:58:29 +00:00
gradle.properties
gradlew
gradlew.bat
HowToUseOCR.md
launch4jConfig.xml
LICENSE Update LICENSE with proprietary directory details 2025-11-27 11:11:53 +00:00
README.md Update wording for third-party services reference 2025-12-02 19:14:03 +00:00
SECURITY.md
settings.gradle chore(ci): enable Gradle dependency caching across GitHub workflows (#5400) 2026-01-19 19:03:50 +00:00
test_globalsign.pdf V2 Validate PDF Signature tool (#4679) 2025-10-16 13:45:59 +01:00
test_irs_signed.pdf V2 Validate PDF Signature tool (#4679) 2025-10-16 13:45:59 +01:00
WINDOWS_SIGNING.md Add initial Windows signing infrastructure (#4945) 2025-11-20 12:21:42 +00:00

Stirling PDF logo

Stirling PDF - The Open-Source PDF Platform

Stirling PDF is a powerful, open-source PDF editing platform. Run it as a personal desktop app, in the browser, or deploy it on your own servers with a private API. Edit, sign, redact, convert, and automate PDFs without sending documents to external services.

Docker Pulls Discord OpenSSF Scorecard GitHub Repo stars

Stirling PDF - Dashboard

Key Capabilities

  • Everywhere you work - Desktop client, browser UI, and self-hosted server with a private API.
  • 50+ PDF tools - Edit, merge, split, sign, redact, convert, OCR, compress, and more.
  • Automation & workflows - No-code pipelines direct in UI with APIs to process millions of PDFs.
  • Enterprisegrade - SSO, auditing, and flexible onprem deployments.
  • Developer platform - REST APIs available for nearly all tools to integrate into your existing systems.
  • Global UI - Interface available in 40+ languages.

For a full feature list, see the docs: https://docs.stirlingpdf.com

Quick Start

docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

Then open: http://localhost:8080

For full installation options (including desktop and Kubernetes), see our Documentation Guide.

Resources

Support

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

For development setup, see the Developer Guide.

For adding translations, see the Translation Guide.

License

Stirling PDF is open-core. See LICENSE for details.