Skip to content

Commit 4766d8b

Browse files
authored
Don't swallow error on Close() (#21304)
Return the result of reader.Close() to the caller.
1 parent 9b73d1f commit 4766d8b

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

sdk/ai/azopenai/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### Breaking Changes
88

99
- ChatCompletionsOptions, CompletionsOptions, EmbeddingsOptions `DeploymentID` field renamed to `Deployment`.
10+
- Method `Close()` on `EventReader[T]` now returns an error.
1011

1112
### Bugs Fixed
1213

sdk/ai/azopenai/event_reader.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ import (
1616

1717
// EventReader streams events dynamically from an OpenAI endpoint.
1818
type EventReader[T any] struct {
19-
reader io.Reader // Required for Closing
19+
reader io.ReadCloser // Required for Closing
2020
scanner *bufio.Scanner
2121
}
2222

23-
func newEventReader[T any](r io.Reader) *EventReader[T] {
23+
func newEventReader[T any](r io.ReadCloser) *EventReader[T] {
2424
return &EventReader[T]{reader: r, scanner: bufio.NewScanner(r)}
2525
}
2626

@@ -56,8 +56,6 @@ func (er *EventReader[T]) Read() (T, error) {
5656
}
5757

5858
// Close closes the EventReader and any applicable inner stream state.
59-
func (er *EventReader[T]) Close() {
60-
if closer, ok := er.reader.(io.Closer); ok {
61-
closer.Close()
62-
}
59+
func (er *EventReader[T]) Close() error {
60+
return er.reader.Close()
6361
}

sdk/ai/azopenai/event_reader_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func TestEventReader_InvalidType(t *testing.T) {
2020
}
2121

2222
text := strings.NewReader(strings.Join(data, "\n"))
23-
eventReader := newEventReader[ChatCompletions](text)
23+
eventReader := newEventReader[ChatCompletions](io.NopCloser(text))
2424

2525
firstEvent, err := eventReader.Read()
2626
require.Empty(t, firstEvent)
@@ -34,7 +34,7 @@ func (br badReader) Read(p []byte) (n int, err error) {
3434
}
3535

3636
func TestEventReader_BadReader(t *testing.T) {
37-
eventReader := newEventReader[ChatCompletions](badReader{})
37+
eventReader := newEventReader[ChatCompletions](io.NopCloser(badReader{}))
3838

3939
firstEvent, err := eventReader.Read()
4040
require.Empty(t, firstEvent)

0 commit comments

Comments
 (0)