Skip to content

Implement SafeExceptionData util for easy SafeLoggable implementation#1172

Draft
carterkozak wants to merge 1 commit intodevelopfrom
ckozak/SafeExceptionData_concept
Draft

Implement SafeExceptionData util for easy SafeLoggable implementation#1172
carterkozak wants to merge 1 commit intodevelopfrom
ckozak/SafeExceptionData_concept

Conversation

@carterkozak
Copy link
Copy Markdown
Contributor

This is a proof of concept to illustrate an idea, I've only taken advantage of the new type in SafeIllegalArgumentException.java. Is this a good idea? I'm not entirely sure yet. I don't think the existing utility functionality is terribly difficult to use, but others have voiced frustration with it.

Before this PR

Our SafeExceptions.renderMessage util required tracking a couple additional fields in each SafeLoggable exception. This might be a bit easier to deal with.

After this PR

==COMMIT_MSG==
Implement SafeExceptionData util for easy SafeLoggable implementation
==COMMIT_MSG==

Possible downsides?

More public API surface area

@changelog-app
Copy link
Copy Markdown

changelog-app Bot commented Mar 17, 2025

Generate changelog in changelog/@unreleased

What do the change types mean?
  • feature: A new feature of the service.
  • improvement: An incremental improvement in the functionality or operation of the service.
  • fix: Remedies the incorrect behaviour of a component of the service in a backwards-compatible way.
  • break: Has the potential to break consumers of this service's API, inclusive of both Palantir services
    and external consumers of the service's API (e.g. customer-written software or integrations).
  • deprecation: Advertises the intention to remove service functionality without any change to the
    operation of the service itself.
  • manualTask: Requires the possibility of manual intervention (running a script, eyeballing configuration,
    performing database surgery, ...) at the time of upgrade for it to succeed.
  • migration: A fully automatic upgrade migration task with no engineer input required.

Note: only one type should be chosen.

How are new versions calculated?
  • ❗The break and manual task changelog types will result in a major release!
  • 🐛 The fix changelog type will result in a minor release in most cases, and a patch release version for patch branches. This behaviour is configurable in autorelease.
  • ✨ All others will result in a minor version release.

Type

  • Feature
  • Improvement
  • Fix
  • Break
  • Deprecation
  • Manual task
  • Migration

Description

Implement SafeExceptionData util for easy SafeLoggable implementation

Check the box to generate changelog(s)

  • Generate changelog entry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant