I have written an COLLADA .dae importer, which uses integration classes to convert the data into a realtime-friendly format. Afterwards the converted data is transferred to classes of our engine, but that part is not my problem.
Everything works fine, when the first character file is loaded using DAE::load(). I do not delete the DAE object after conversion because I want to cache data for a faster reimport of an already loaded file.
Before I load a second file a new DAE object is created using "new DAE". Its database object is truly set to NULL but anyway calling DAE::load() with the new object leads to double conversion. For the first file only one mesh and one skin are created for example but in the second execution there are two of each kind. Normally daeIntegrationObject::fromCOLLADA() is called via a short list of intermediate functions but for the second file each first version of an objects is converted via a long list of resolve functions. Subsequently the second ones are converted normally, again. So I think the first versions are the ones from the first file even though they have been loaded using another DAE object. First of all that fact leads to a higher conversion time but this only an unlovely side effect.
The real problem is that both skin objects only link to the first version of the source mesh and only the first skin is linked to both skeleton nodes. I have to say that the files are identically except for the animation content, so the names and IDs are identically, too. That is surely the problem to resolve the right object. But at all I do not want that both files are used for resolving.
Is it possible load COLLADA files independently from each other in the same process? Only using different DAE objects does not seem to work.