@@ -132,7 +132,7 @@ func (mc *MetaCollection) init() error {
132
132
// If MetaCollection hasn't been opened, do it!
133
133
if len (mc .Metas ) < 1 {
134
134
if err := mc .ReadMeta (); err != nil {
135
- // return err
135
+ return err
136
136
}
137
137
}
138
138
@@ -160,18 +160,30 @@ func (mc *MetaCollection) ReadMeta() error {
160
160
161
161
switch mc .Obj .GetType () {
162
162
case DataObjType :
163
- cwd := C .CString (mc .Obj .GetCol ().Path )
163
+ cwdGo := mc .Obj .GetCol ().Path
164
+ cwd := C .CString (cwdGo )
165
+
164
166
defer C .free (unsafe .Pointer (cwd ))
165
167
166
168
if status := C .gorods_meta_dataobj (name , cwd , & metaResult , mc .Con .ccon , & err ); status != 0 {
167
- return newError (Fatal , fmt .Sprintf ("iRods Get Meta Failed: %v, %v" , cwd , C .GoString (err )))
169
+ if status == C .CAT_NO_ROWS_FOUND {
170
+ return nil
171
+ } else {
172
+ return newError (Fatal , fmt .Sprintf ("iRods Get Meta Failed: %v, %v, %v" , cwdGo , C .GoString (err ), status ))
173
+ }
168
174
}
169
175
case CollectionType :
170
- cwd := C .CString (filepath .Dir (mc .Obj .GetPath ()))
176
+ cwdGo := filepath .Dir (mc .Obj .GetPath ())
177
+ cwd := C .CString (cwdGo )
178
+
171
179
defer C .free (unsafe .Pointer (cwd ))
172
180
173
181
if status := C .gorods_meta_collection (name , cwd , & metaResult , mc .Con .ccon , & err ); status != 0 {
174
- return newError (Fatal , fmt .Sprintf ("iRods Get Meta Failed: %v, %v" , cwd , C .GoString (err )))
182
+ if status == C .CAT_NO_ROWS_FOUND {
183
+ return nil
184
+ } else {
185
+ return newError (Fatal , fmt .Sprintf ("iRods Get Meta Failed: %v, %v, %v" , cwdGo , C .GoString (err ), status ))
186
+ }
175
187
}
176
188
case ResourceType :
177
189
0 commit comments