Skip to content

Commit 01fd316

Browse files
committed
Fix unchecked error returns in example files
- Add proper error handling for all defer cache.Close() calls - Use anonymous functions to check Close() errors and log them - This resolves golangci-lint errcheck warnings in: - examples/redis-cache/main.go - examples/metrics/main.go - examples/compression/main.go - examples/debug/main.go - examples/gin-web-server/main.go - examples/echo-web-server/main.go - examples/batch-processing/main.go
1 parent d7f6a2e commit 01fd316

7 files changed

Lines changed: 65 additions & 13 deletions

File tree

examples/batch-processing/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,11 @@ func main() {
472472
if err != nil {
473473
log.Fatalf("Failed to create processor: %v", err)
474474
}
475-
defer processor.Close()
475+
defer func() {
476+
if err := processor.Close(); err != nil {
477+
log.Printf("Error closing processor: %v", err)
478+
}
479+
}()
476480

477481
// Warm up cache
478482
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)

examples/compression/main.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,11 @@ func noCompressionExample() {
100100
if err != nil {
101101
log.Fatalf("Failed to create cache: %v", err)
102102
}
103-
defer cache.Close()
103+
defer func() {
104+
if err := cache.Close(); err != nil {
105+
log.Printf("Error closing cache: %v", err)
106+
}
107+
}()
104108

105109
// Store some large data
106110
largeData := generateLargeJSON()
@@ -135,7 +139,11 @@ func gzipCompressionExample() {
135139
if err != nil {
136140
log.Fatalf("Failed to create cache: %v", err)
137141
}
138-
defer cache.Close()
142+
defer func() {
143+
if err := cache.Close(); err != nil {
144+
log.Printf("Error closing cache: %v", err)
145+
}
146+
}()
139147

140148
// Store some large data
141149
largeData := generateLargeJSON()
@@ -195,7 +203,11 @@ func deflateCompressionExample() {
195203
if err != nil {
196204
log.Fatalf("Failed to create cache: %v", err)
197205
}
198-
defer cache.Close()
206+
defer func() {
207+
if err := cache.Close(); err != nil {
208+
log.Printf("Error closing cache: %v", err)
209+
}
210+
}()
199211

200212
// Test with very large repetitive data that should compress well
201213
repeatedText := strings.Repeat("This is a test string that repeats many times to demonstrate compression efficiency. ", 1000)

examples/debug/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ func main() {
1919
if err != nil {
2020
log.Fatalf("Failed to create cache: %v", err)
2121
}
22-
defer cache.Close()
22+
defer func() {
23+
if err := cache.Close(); err != nil {
24+
log.Printf("Error closing cache: %v", err)
25+
}
26+
}()
2327

2428
// Populate cache with some data
2529
fmt.Println("Populating cache with test data...")

examples/echo-web-server/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,11 @@ func (s *APIServer) healthCheck(c echo.Context) error {
455455
}
456456

457457
func (s *APIServer) Start(address string) error {
458-
defer s.cacheManager.Close()
458+
defer func() {
459+
if err := s.cacheManager.Close(); err != nil {
460+
log.Printf("Error closing cache manager: %v", err)
461+
}
462+
}()
459463
return s.echo.Start(address)
460464
}
461465

examples/gin-web-server/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,11 @@ func (s *WebServer) healthCheck(c *gin.Context) {
265265
}
266266

267267
func (s *WebServer) Run(addr string) error {
268-
defer s.userService.Close()
268+
defer func() {
269+
if err := s.userService.Close(); err != nil {
270+
log.Printf("Error closing user service: %v", err)
271+
}
272+
}()
269273
return s.router.Run(addr)
270274
}
271275

examples/metrics/main.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,11 @@ func prometheusExample() {
9595
if err != nil {
9696
log.Fatalf("Failed to create cache: %v", err)
9797
}
98-
defer cache.Close()
98+
defer func() {
99+
if err := cache.Close(); err != nil {
100+
log.Printf("Error closing cache: %v", err)
101+
}
102+
}()
99103

100104
// Wrap function with caching
101105
cachedFetchUser := obcache.Wrap(cache, fetchUserData)
@@ -173,7 +177,11 @@ func opentelemetryExample() {
173177
if err != nil {
174178
log.Fatalf("Failed to create cache with OTel metrics: %v", err)
175179
}
176-
defer cache.Close()
180+
defer func() {
181+
if err := cache.Close(); err != nil {
182+
log.Printf("Error closing cache: %v", err)
183+
}
184+
}()
177185

178186
// Simulate cache operations
179187
fmt.Println("📊 Generating cache activity for OpenTelemetry metrics...")
@@ -247,7 +255,11 @@ func multiExporterExample() {
247255
if err != nil {
248256
log.Fatalf("Failed to create multi-metrics cache: %v", err)
249257
}
250-
defer cache.Close()
258+
defer func() {
259+
if err := cache.Close(); err != nil {
260+
log.Printf("Error closing cache: %v", err)
261+
}
262+
}()
251263

252264
fmt.Println("📊 Generating activity for multiple exporters...")
253265

examples/redis-cache/main.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,11 @@ func basicRedisExample() {
6363
fmt.Println("⚠️ Make sure Redis is running on localhost:6379")
6464
return
6565
}
66-
defer cache.Close()
66+
defer func() {
67+
if err := cache.Close(); err != nil {
68+
log.Printf("Error closing cache: %v", err)
69+
}
70+
}()
6771

6872
// Store a user in cache
6973
user := &User{ID: 1, Name: "Alice", Email: "alice@example.com"}
@@ -100,7 +104,11 @@ func functionWrappingExample() {
100104
fmt.Println("⚠️ Make sure Redis is running on localhost:6379")
101105
return
102106
}
103-
defer cache.Close()
107+
defer func() {
108+
if err := cache.Close(); err != nil {
109+
log.Printf("Error closing cache: %v", err)
110+
}
111+
}()
104112

105113
// Wrap the expensive function with caching
106114
cachedGetUser := obcache.Wrap(cache, getUserFromDatabase,
@@ -165,7 +173,11 @@ func distributedCachingExample() {
165173
log.Printf("Failed to create distributed cache: %v", err)
166174
return
167175
}
168-
defer cache.Close()
176+
defer func() {
177+
if err := cache.Close(); err != nil {
178+
log.Printf("Error closing cache: %v", err)
179+
}
180+
}()
169181

170182
// Simulate distributed caching scenario
171183
fmt.Println("🌐 Simulating distributed caching...")

0 commit comments

Comments
 (0)