SourceForge has been redesigned. Learn more.
Close

#186 out of range exception from insertFileForLayout

open
nobody
None
7
2010-12-21
2010-12-19
Chris Kenna
No

I am using SVN 680.

There is a std::out_of_range exception thrown from VirtualContainerMgr::insertFileForLayout (I think). This happens while updating the database with new files. Please see the attached output and backtrace from GDB.

On line 582 of ContentDirectory/VirtualContainerMgr.cpp:

581 while(!qry.eof()) {
582 paths.push_back(qry.result()->asString("VCONTAINER_PATH"));
583 qry.next();
584 }

the asString("VCONTAINER_PATH") returns the empty string and we see the [sqlite] unknown field message twice. The empty strings is append to the paths vector twice, as far as I can tell. The exception is thrown sometime later. I don't know when because it happens in the C++ libraries sometime later and I'm not too well versed in figuring that out. If you find out, I would be interested to know.

The attached back trace has more info and output.

Discussion

  • Chris Kenna

    Chris Kenna - 2010-12-19

    GDB Trace and Output

     
  • Chris Kenna

    Chris Kenna - 2010-12-20

    I added a patch that fixes this problem. The issue was that the SQL select statement was putting the field name in parenthesis, which made the asString() method fail and return the empty string. Seems to work fine now.

     
  • Chris Kenna

    Chris Kenna - 2010-12-21
    • priority: 5 --> 7
     

Log in to post a comment.