{"record":{"id":"364d9b632120f550","repo":"golang/go","slug":"write-after-close","errorCode":null,"errorMessage":"Write after Close","messagePattern":"Write after Close","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/archive/zip/register.go","lineNumber":49,"sourceCode":"\tfw, ok := flateWriterPool.Get().(*flate.Writer)\n\tif ok {\n\t\tfw.Reset(w)\n\t} else {\n\t\tfw, _ = flate.NewWriter(w, 5)\n\t}\n\treturn &pooledFlateWriter{fw: fw}\n}\n\ntype pooledFlateWriter struct {\n\tmu sync.Mutex // guards Close and Write\n\tfw *flate.Writer\n}\n\nfunc (w *pooledFlateWriter) Write(p []byte) (n int, err error) {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tif w.fw == nil {\n\t\treturn 0, errors.New(\"Write after Close\")\n\t}\n\treturn w.fw.Write(p)\n}\n\nfunc (w *pooledFlateWriter) Close() error {\n\tw.mu.Lock()\n\tdefer w.mu.Unlock()\n\tvar err error\n\tif w.fw != nil {\n\t\terr = w.fw.Close()\n\t\tflateWriterPool.Put(w.fw)\n\t\tw.fw = nil\n\t}\n\treturn err\n}\n\nvar flateReaderPool sync.Pool\n","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/archive/zip/register.go#L31-L67","documentation":"Error \"Write after Close\" thrown in golang/go.","triggerScenarios":"Thrown at src/archive/zip/register.go:49 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T06:17:24.410Z"}