Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#586 closed defect (fixed)

SHP provider only does SHP compression in the destructor of last live SHP connection.

Reported by: StevenXu Owned by: StevenXu
Priority: major Milestone: 3.5.0
Component: SHP Provider Version: 3.4.0
Severity: 3 Keywords:
Cc: External ID: 1247249

Description

Now SHP provider only does SHP compression in the destructor of last live SHP connection. Assume that there are two SHP connection to two difference SHP folder at the same time, and user delete something via the first SHP connection, and then close the first SHP connection, but remains the second SHP connection live. So the first SHP connection have no chance to do SHP compression any more, even the user close the second compression later.

Change History (4)

comment:1 by StevenXu, 14 years ago

Status: newassigned

As Dan Stoica said:

The situation can be fixed easily by creating a global array of strings that holds the open connections (i.e. the folder names). Each time a connection is open a new entry is added. Each time a connection is closed, do a look up in the array and: --Remove a matching entry --If no one left with the same name then do compression if the case.

comment:2 by waltweltonlair, 14 years ago

Component: FDO APISHP Provider

Fix submitted to 3.4 stream with submission r5114.

comment:3 by StevenXu, 14 years ago

Resolution: fixed
Status: assignedclosed

However, this fix is fewer aggressive than Dan's idea by refining the granularity of ref counter to ShpFileSet , that means, the reference counter std::map was used against every opened file set rather than every opened SHP connection.

comment:4 by StevenXu, 14 years ago

Fix submitted to trunk stream with submission r5111

Note: See TracTickets for help on using tickets.