## Summary

Add explicit null check using `Objects.requireNonNull` in 
`DataOutputStream.writeBytes(String s)` to provide a clearer error message 
and make the API contract explicit.

## Problem

The `writeBytes` method currently throws a `NullPointerException` when 
`null` is passed, but the error message may not be clear in all contexts. 
While JDK 14+ provides helpful NullPointerException messages through 
JEP 358 (Helpful NullPointerExceptions), adding an explicit null check 
using `Objects.requireNonNull` makes the API contract more explicit and 
provides consistent error messaging across different JDK versions.

## Solution

Added `Objects.requireNonNull(s, "s")` at the beginning of the 
`writeBytes(String s)` method. This ensures:
- A clear error message ("s") is provided when null is passed
- The API contract explicitly states that null is not allowed
- The method fails fast with a descriptive exception

## Issue
Fixes JDK-8373660

**JBS Issue Link**: 
https://bugs.java.com/bugdatabase/view_bug?bug_id=JDK-8373660


## Type of Change
- [x] Test addition/modification
- [x] Bug fix
- [ ] New feature
- [ ] Documentation improvement
- [ ] Refactoring

## Testing

A new JUnit test has been added to verify the null check behavior:


# Run the specific JUnit test file
make test 
TEST="jtreg:test/jdk/java/io/DataOutputStream/DataOutputStreamTest.java"

# Or run all tests in the DataOutputStream directory
make test TEST="jtreg:test/jdk/java/io/DataOutputStream"

-------------

Commit messages:
 - 8373660: Add explicit null check in DataOutputStream.writeBytes

Changes: https://git.openjdk.org/jdk/pull/28869/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28869&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8373660
  Stats: 30 lines in 2 files changed: 30 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/28869.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28869/head:pull/28869

PR: https://git.openjdk.org/jdk/pull/28869

Reply via email to