0
0
Fork 0

Check all return errors

- Fix the following errors found by errcheck :
  $ bleve git:(master) errcheck github.com/blevesearch/bleve
  github.com/blevesearch/bleve/index_impl.go:206:25  defer indexReader.Close()
  github.com/blevesearch/bleve/index_impl.go:317:25  defer indexReader.Close()
  github.com/blevesearch/bleve/index_impl.go:353:25  defer indexReader.Close()
  github.com/blevesearch/bleve/index_impl.go:359:22  defer searcher.Close()
  github.com/blevesearch/bleve/index_impl.go:497:25  defer indexReader.Close()
  github.com/blevesearch/bleve/index_impl.go:644:20  defer reader.Close()
  github.com/blevesearch/bleve/index_meta.go:67:27   defer indexMetaFile.Close()
This commit is contained in:
Sathyanarayanan Gunasekaran 2015-03-11 01:28:51 -04:00
parent 522f9d5cc7
commit 93e749bc0c
2 changed files with 64 additions and 21 deletions

View File

@ -155,13 +155,13 @@ func newIndexUsing(path string, mapping *IndexMapping, kvstore string, kvconfig
return &rv, nil
}
func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexImpl, error) {
func openIndexUsing(path string, runtimeConfig map[string]interface{}) (rv *indexImpl, err error) {
rv := indexImpl{
rv = &indexImpl{
path: path,
stats: &IndexStat{},
}
var err error
rv.meta, err = openIndexMeta(path)
if err != nil {
return nil, err
@ -203,7 +203,12 @@ func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexIm
if err != nil {
return nil, err
}
defer indexReader.Close()
defer func() {
if cerr := indexReader.Close(); cerr != nil && err == nil {
err = cerr
}
}()
mappingBytes, err := indexReader.GetInternal(mappingInternalKey)
if err != nil {
return nil, err
@ -225,11 +230,11 @@ func openIndexUsing(path string, runtimeConfig map[string]interface{}) (*indexIm
if err != nil {
// note even if the mapping is invalid
// we still return an open usable index
return &rv, err
return rv, err
}
rv.m = &im
return &rv, nil
return rv, err
}
// Advanced returns implementation internals
@ -303,7 +308,7 @@ func (i *indexImpl) Batch(b *Batch) error {
// stored fields for a document in the index. These
// stored fields are put back into a Document object
// and returned.
func (i *indexImpl) Document(id string) (*document.Document, error) {
func (i *indexImpl) Document(id string) (doc *document.Document, err error) {
i.mutex.RLock()
defer i.mutex.RUnlock()
@ -314,8 +319,17 @@ func (i *indexImpl) Document(id string) (*document.Document, error) {
if err != nil {
return nil, err
}
defer indexReader.Close()
return indexReader.Document(id)
defer func() {
if cerr := indexReader.Close(); err == nil && cerr != nil {
err = cerr
}
}()
doc, err = indexReader.Document(id)
if err != nil {
return nil, err
}
return doc, nil
}
// DocCount returns the number of documents in the
@ -333,7 +347,7 @@ func (i *indexImpl) DocCount() (uint64, error) {
// Search executes a search request operation.
// Returns a SearchResult object or an error.
func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
func (i *indexImpl) Search(req *SearchRequest) (sr *SearchResult, err error) {
i.mutex.RLock()
defer i.mutex.RUnlock()
@ -350,13 +364,21 @@ func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
if err != nil {
return nil, fmt.Errorf("error opening index reader %v", err)
}
defer indexReader.Close()
defer func() {
if cerr := indexReader.Close(); err == nil && cerr != nil {
err = cerr
}
}()
searcher, err := req.Query.Searcher(indexReader, i.m, req.Explain)
if err != nil {
return nil, err
}
defer searcher.Close()
defer func() {
if serr := searcher.Close(); err == nil && serr != nil {
err = serr
}
}()
if req.Facets != nil {
facetsBuilder := search.NewFacetsBuilder(indexReader)
@ -482,7 +504,7 @@ func (i *indexImpl) Search(req *SearchRequest) (*SearchResult, error) {
// Fields returns the name of all the fields this
// Index has operated on.
func (i *indexImpl) Fields() ([]string, error) {
func (i *indexImpl) Fields() (fields []string, err error) {
i.mutex.RLock()
defer i.mutex.RUnlock()
@ -494,8 +516,17 @@ func (i *indexImpl) Fields() ([]string, error) {
if err != nil {
return nil, err
}
defer indexReader.Close()
return indexReader.Fields()
defer func() {
if cerr := indexReader.Close(); err == nil && cerr != nil {
err = cerr
}
}()
fields, err = indexReader.Fields()
if err != nil {
return nil, err
}
return fields, nil
}
func (i *indexImpl) FieldDict(field string) (index.FieldDict, error) {
@ -633,7 +664,7 @@ func (i *indexImpl) Stats() *IndexStat {
return i.stats
}
func (i *indexImpl) GetInternal(key []byte) ([]byte, error) {
func (i *indexImpl) GetInternal(key []byte) (val []byte, err error) {
i.mutex.RLock()
defer i.mutex.RUnlock()
@ -641,9 +672,17 @@ func (i *indexImpl) GetInternal(key []byte) ([]byte, error) {
if err != nil {
return nil, err
}
defer reader.Close()
defer func() {
if cerr := reader.Close(); err == nil && cerr != nil {
err = cerr
}
}()
return reader.GetInternal(key)
val, err = reader.GetInternal(key)
if err != nil {
return nil, err
}
return val, nil
}
func (i *indexImpl) SetInternal(key, val []byte) error {

View File

@ -46,10 +46,10 @@ func openIndexMeta(path string) (*indexMeta, error) {
return &im, nil
}
func (i *indexMeta) Save(path string) error {
func (i *indexMeta) Save(path string) (err error) {
indexMetaPath := indexMetaPath(path)
// ensure any necessary parent directories exist
err := os.Mkdir(path, 0700)
err = os.Mkdir(path, 0700)
if err != nil {
return ErrorIndexPathExists
}
@ -64,7 +64,11 @@ func (i *indexMeta) Save(path string) error {
}
return err
}
defer indexMetaFile.Close()
defer func() {
if ierr := indexMetaFile.Close(); err == nil && ierr != nil {
err = ierr
}
}()
_, err = indexMetaFile.Write(metaBytes)
if err != nil {
return err