fix(java): Add validation layer to PromptMetadata.fromConfig()#433
Open
nickita-khylkouski wants to merge 3 commits intogoogle:mainfrom
Open
fix(java): Add validation layer to PromptMetadata.fromConfig()#433nickita-khylkouski wants to merge 3 commits intogoogle:mainfrom
nickita-khylkouski wants to merge 3 commits intogoogle:mainfrom
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
Adds type validation before casting to prevent ClassCastException at runtime. Provides detailed error messages showing field name, expected type, actual type, and the problematic value. Changes: - Add validateConfigTypes() to validate all field types upfront - Add validateFieldIfPresent() helper for single field validation - Update fromConfig() to call validation before casting - Add PromptMetadataTest with 42 test cases covering: - Happy path validation - Type mismatch errors for all fields - Nested input/output config validation - Edge cases (null, empty, complex nested structures)
5f13872 to
c9b715f
Compare
MapSubject doesn't have isSameAs() - use (Object) cast with isSameInstanceAs() to match codebase idiom (DotpromptTest.java:95).
yesudeep
approved these changes
Jan 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PromptMetadata.fromConfig()before performing unchecked castsProblem
The
fromConfig()method had 8+ unsafe casts that could causeClassCastExceptionat runtime when YAML frontmatter contained incorrectly typed values. For example, iftools: "not-a-list"was in YAML, the code would crash with a genericClassCastException.Solution
Added validation methods that:
instanceofchecks before castingIllegalArgumentExceptionwith detailed error messages like:input,output) with appropriate validationTest Coverage
Created
PromptMetadataTest.javawith 42 tests:Files Changed
PromptMetadata.java: AddedvalidateConfigTypes()andvalidateFieldIfPresent()methodsPromptMetadataTest.java: New comprehensive test fileBUILD.bazel: Added test target🤖 Generated with Claude Code