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