Evaluation of DVX – program crashes when paging up in TDB

30 November 2008

Description

Start DVX. Open the sample TDB made available for download. Use the scrollbar to go to the end of the database, and click on the very last source language term.

Now press PgUp or the "cursor up" key and hold it for a few seconds, then release it. You may have to press, hold and release the key several times to reproduce the problem.

When it occurs, a message appears:

dvxUI has encountered a problem. We are sorry for the inconvenience. Module : frmTermBrowse Procedure : FillAttributeList Line Number: 1733 Control array element '1', doesn't exist (340)

This line number 1733 is sometimes 1663, but less often.

After pressing OK, DVX is terminated.

Possible cause

I first encountered this problem in my main DVX TDB, which I created from several old DV3 TDBs. Because this TDB is large and contains some confidential information provided by clients, I’d rather not make it available to reproduce the problem.

So I tried to create a small sample TDB that had the problem. That wasn't easy at first, simple TDBs worked fine. So I used MS Access to analyse the point where DVX crashed in the big TDB. This was a different point every time. From those analyses, I got the idea that the following situation might be material to the problem:

Some, but not all terminology pairs had a Subject and Client set, both for the source language and for the target language (attribute types 4 and 5). A small minority of pairs had a definition (attribute type 7) included for both source and target. Many of these didn't have a client or subject.

I wrote a simple C program to generate such data, with neutral bogus content so I could make it available. The source file is here and this is the compiled exe – it's for 16 bit DOS, but it also works on Windows 95 thru Vista.

The resulting tab separated text file is here.

I didn't manage to get client and subject assigned to both source and target by importing this text file into a DVX TDB. So I first imported it into a DV3 TDB, and then let DVX import this DV3 type TDB. The result was the aforementioned DVX TDB, which makes the bug reproducible.

Severity

The problem occurs when paging through a Terminology Database (TDB). This is an action that isn't often necessary, because DVX accesses that info automatically, and can display relevant content from it, while working in a translation project.

That means the bug isn't severe because it is avoidable.

It is a pity though, that after handling the error, DVX is terminated. I do not know if that might have consequences for other unflushed data in databases open at that moment.

History

I found the problem in DVX version 7.5.303.

The same or a very similar problem was reported on July 7, 2008 in Yahoo discussion group dejavu-l, in this message by Gerlinde Krug, also about version 7.5.303.

(To be able to see the message, you need to be a subscriber to that group.)

The problem was mentioned in combination with another problem. I found no further mention of this particular problem further on in that thread.

I didn't find the problem in Atril's Support Knowledge Base.

Because the problem is now reproducible, I expect it will be easier for Atril to find the cause of the bug and resolve it.