> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 4.10.7

**`(fix):`** Fixed nested optional/nullable type generation in code examples under
`collapse-optional-nullable`. The snippet type mapper now collapses nested
same-kind wrappers (`optional<optional<T>>`, `nullable<nullable<T>>`) into a
single `OptionalNullable<T>`, matching the literal mapper and avoiding
type/value mismatches in generated examples.

## 4.10.6

**`(fix):`** Fix dynamic snippet generation to reference the correct nested class names for inline
types. Inline types within objects, discriminated unions, and undiscriminated unions are
now resolved to their actual generated nested class (e.g. `Parent.Bar.Type1`) instead of a
mangled top-level name, so generated snippets compile.

## 4.10.5

**`(fix):`** Fix Java SDK generation for the `use-nullable-annotation` and
`collapse-optional-nullable` configurations.

* Dynamic snippets now honor these config flags when emitting nullable and
  optional values, so a nullable property rendered as a raw (non-`Optional`)
  value no longer produces type mismatches such as
  `Email cannot be converted to Nullable<Email>`.
* Staged-builder method calls in snippets are now ordered correctly: required
  stages first, then the final-stage (optional, nullable, and collection)
  properties. Collections (`list`/`set`/`map`) are treated as final-stage
  properties to match v1's staged builders.
* Builder setters on the default (non-staged) builder no longer emit a
  spurious `@Override` annotation, which previously failed to compile for
  nullable request properties (e.g. `FilterByRoleRequest`).

## 4.10.4

**`(fix):`** Fix dynamic snippet generation for endpoints with an optional request body
that wraps a nullable type (e.g. `optional<nullable<T>>`). The snippet now
wraps the body in `Optional.of(...)` so it matches the generated client
method signature and compiles.

## 4.10.3

**`(fix):`** Support endpoints whose streaming behavior is toggled by a request parameter
("stream parameter"). The SDK now resolves the streaming response variant for
these endpoints instead of failing generation.

## 4.10.2

**`(fix):`** Dynamic snippets now compile for endpoints that inline file properties into the
request builder (`inline-file-properties: true`). File builder fields are typed as
`java.io.File`, so snippets render `new File("path/to/file")` (with a placeholder
path when the example omits a file) instead of a `FileStream`, and body properties
are emitted before file properties so a required body property's staged-builder step
precedes an optional file step.