How do I diagnose this exception?
Matthew Jew
mjew at icnc.com
Tue May 20 16:30:45 CDT 2008
Ruslan,
I already have a C++ try catch block around the code,
like this:
try
{
[aTblArticleLock lock];
PVLockValentinaEngine();
anArticleTable->Table->SetBlank( FBL::forAdd );
anArticleTable->articleNumber->get_Value(forAdd)->put_ULong
( articleNumber );
anArticleTable->newsgroupNumber->get_Value(forAdd)->put_ULong
( newsgroupNumber );
FBL::I_Value_Ptr pv = anArticleTable->date->get_Value(forAdd);
FBL::I_ValueDate_Ptr pvd = QI( pv, I_ValueDate );
pvd->put_Date( year, month, day );
pv = anArticleTable->time->get_Value(forAdd);
FBL::I_ValueTime_Ptr pvt = QI( pv, I_ValueTime );
pvt->put_Time( hour, minute, second, 0 );
anArticleTable->lines->get_Value(forAdd)->put_ULong( lines );
anArticleTable->byteSize->get_Value(forAdd)->put_ULong( byteSize );
anArticleTable->attachmentName->get_Value(forAdd)->put_String
( attachmentNameStr );
anArticleTable->author->get_Value(forAdd)->put_String( authorStr );
anArticleTable->subject->get_Value(forAdd)->put_String( subjectStr );
anArticleTable->threadPart->get_Value(forAdd)->put_UShort
( threadPart );
anArticleTable->threadHead->get_Value(forAdd)->put_ULong( threadHead );
anArticleTable->imageXSize->get_Value(forAdd)->put_UShort
( imageXSize );
anArticleTable->imageYSize->get_Value(forAdd)->put_UShort
( imageYSize );
anArticleTable->movieDuration->get_Value(forAdd)->put_UShort
( movieDuration );
anArticleTable->isMovie->get_Value(forAdd)->put_Boolean
( ( movieDuration != 0 ) );
anArticleTable->zipCheckSum->get_Value(forAdd)->put_ULong
( zipCheckSum );
pv = anArticleTable->fingerPrint->get_Value(forAdd);
FBL::I_ValueBinary_Ptr pvfb = QI( pv, I_ValueBinary );
pvfb->put_Data( (uchar*) fingerPrint, kBytesInFingerPrint );
anArticleTable->hasMoviePreview->get_Value(forAdd)->put_Boolean
( hasMoviePreview );
anArticleTable->Table->AddRecord();
++articlesImported;
++recordsSinceLastFlush;
if ( recordsSinceLastFlush >= flushDBEveryXRecords )
{
anArticleTable->Table->Flush();
recordsSinceLastFlush = 0;
}
}
catch( xException& Err )
{
ProceedException( Err, "ArticleDBManager2::importOneArticleFile 1" );
}
PVUnlockValentinaEngine();
[aTblArticleLock unlock];
There is also an Objective C NS_DURING NS_HANDLER around the routine.
(Does it cause problems when I try to catch both kinds?)
I did notice some error logs generated by Valentina (I assume).
The most recent is titled "Warnings_20080520_103946.log"
The contents are like this:
R e i n d e x o f : C o l u m n N a m e
R e i n d e x o f : P a r e n t P t r
R e i n d e x o f : I t e m D e s c r P t r
R e i n d e x o f : P a r e n t P t r
R e i n d e x o f : a r t i c l e N u m b e r
R e i n d e x o f : n e w s g r o u p N u m b e r
R e i n d e x o f : b y t e S i z e
R e i n d e x o f : t h r e a d P a r t
R e i n d e x o f : i s M o v i e
R e i n d e x o f : h a s M o v i e P r e v i e w
R e i n d e x o f : a t t a c h m e n t N a m e U p p e r
R e i n d e x o f : a u t h o r U p p e r
R e i n d e x o f : s u b j e c t U p p e r
R e i n d e x o f : s u b j e c t B y W o r d s U p p e r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : s u b j e c t B y W o r d s U p p e r
R e i n d e x o f : K i n d
R e i n d e x o f : C o l u m n N a m e
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : C o l u m n N a m e
R e i n d e x o f : P a r e n t P t r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : P a r e n t P t r
R e i n d e x o f : I t e m D e s c r P t r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : I t e m D e s c r P t r
R e i n d e x o f : P a r e n t P t r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : P a r e n t P t r
R e i n d e x o f : a r t i c l e N u m b e r
R e i n d e x o f : n e w s g r o u p N u m b e r
R e i n d e x o f : b y t e S i z e
R e i n d e x o f : t h r e a d P a r t
R e i n d e x o f : i s M o v i e
R e i n d e x o f : h a s M o v i e P r e v i e w
R e i n d e x o f : a t t a c h m e n t N a m e U p p e r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : a t t a c h m e n t N a m e U p p e r
R e i n d e x o f : a u t h o r U p p e r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : a u t h o r U p p e r
R e i n d e x o f : s u b j e c t U p p e r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : s u b j e c t U p p e r
R e i n d e x o f : s u b j e c t B y W o r d s U p p e r
U n e x p e c t e d E x c e p t i o n o n R e i n d e x
o f : s u b j e c t B y W o r d s U p p e r
R e i n d e x o f : K i n d
R e i n d e x o f : K i n d
R e i n d e x o f : K i n d
- Matthew
On May 20, 2008, at 11:50 AM, Ruslan Zasukhin wrote:
> On 5/20/08 6:40 PM, "Matthew Jew" <mjew at icnc.com> wrote:
>
> Hi Matthew,
>
> Not sure but may be you need try catch block around
>
>> I am continuing my project of converting my app from Valentina 2.5.8
>> to 3.5.2.
>>
>> My app runs now (with the few small changes I needed to make to have
>> it work under 3.5.2).
>> However, it seems to throw an exception every time I add about 3,000
>> to 4,000 records.
>> It is not consistent about when it throws the exception.
>> (Meaning I can run the app on the very same data, importing from the
>> same file, and it will
>> sometimes not throw the exception at all. It will also throw it,
>> but
>> on a different record each run.)
>>
>> Here is the exception:
>>
>> terminate called after throwing an instance of 'fbl::xInternalError'
>>
>> This is the stack at the time of the exception.
>>
>> #0 0x013d522c in __tcf_0
>> #1 0x01009854 in cxa_atexit_wrapper
>> #2 0x90014d5c in __cxa_finalize
>> #3 0x90014c44 in exit
>> #4 0x9012d804 in abort
>> #5 0x94cb1078 in __gnu_cxx::__verbose_terminate_handler
>> #6 0x94caec08 in __gxx_personality_v0
>> #7 0x94caec6c in std::terminate
>> #8 0x94caef30 in __cxa_rethrow
>> #9 0x01160120 in fbl::AddRecordToIndex_OneField
>> #10 0x011602dc in fbl::Table::AddRecordToIndex
>> #11 0x01164a34 in fbl::Table::AddRecord_WithOut_Triggers_ex
>> #12 0x01163a10 in
>> fbl::Table::AddRecord_WithOut_OnEachStatement_Triggers_ex
>> #13 0x011635d0 in fbl::Table::AddRecord
>> #14 0x007395b0 in -[ArticleDBManager2 importOneArticleFile:] at
>> ArticleDBManager2.mm:1584
>> #15 0x0073a40c in -[ArticleDBManager2
>> importOneDayFolder:statusCountVar:statusLimitVar:stopProcessVar:] at
>> ArticleDBManager2.mm:1818
>> #16 0x0079b778 in -[ArticleMultiManager2
>> importDay:statusCountVar:statusLimitVar:stopProcessVar:] at
>> ArticleMultiManager2.mm:615
>> #17 0x00087488 in -[UpstreamServer
>> getAndProcessUpstreamArticleSetFromUpstreamFolder:toLocalFolder:] at
>> UpstreamServer.mm:1853
>> #18 0x00084500 in -[UpstreamServer replicatorTask] at
>> UpstreamServer.mm:741
>> #19 0x00035a14 in -[PVReplicatorModelObject replicatorTask] at
>> PVReplicatorModelObject.m:967
>> #20 0x92bf4118 in forkThreadForFunction
>> #21 0x9002bd08 in _pthread_body
>>
>> How can I get more information about the exception and what is
>> causing
>> it?
>
> --
> Best regards,
>
> Ruslan Zasukhin
> VP Engineering and New Technology
> Paradigma Software, Inc
>
> Valentina - Joining Worlds of Information
> http://www.paradigmasoft.com
>
> [I feel the need: the need for speed]
>
>
> _______________________________________________
> Valentina mailing list
> Valentina at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina
More information about the Valentina
mailing list