1
Vote

Import workflow fails if assemblies have circular dependencies

description

Hi,
 
I came accross a stack overflow issue when importing a workflow (or rather, a DLL dependency. It leads to the method below calling itself until the overflow.
TridentUtilities.Helper.BuildReferences(Collection<FileReference> fileReferences, string selectedFile, string currentDirPath)
                 Helper.BuildReferences(fileReferences, tempAssembly.Location, currentDirPath)
 
After a bit of debugging I found out that this is because two of the assemblies loaded have a circular dependency (see below). While circular dependencies are undesirable, I would bet this is a thought through compromise in this particular case (IKVM). Maybe the Trident code should check for such cases, at least for direct circular dependencies between two assemblies. Happy to look into it; let me know of the preferred procedure. I have mostly worked on activities so far, not modified the core trident code.
 
asmName {IKVM.OpenJDK.Core, Version=0.44.0.5, Culture=neutral, PublicKeyToken=13235d27fcbfff58}
asmName {IKVM.Runtime, Version=0.44.0.5, Culture=neutral, PublicKeyToken=13235d27fcbfff58}
 
Regards,
J-M

file attachments

comments

rahularora25 wrote Jan 28, 2011 at 12:29 PM

Hi,

We are looking into this issue pointed out by you. We will get back to you with the updates.

Regards,
Trident Support Team

jperraud wrote Feb 23, 2011 at 10:59 PM

Hi rahularora25,

I have worked around this over the past few weeks, but am planning to include IKVM dependencies soon. I work with Trident recompiled in debug mode and think I can put in place a fix, the simplest one really, unless you happen to work on it already. I have updated the code recently (via subversion, I somehow did not managed to get TFS connections). I am happy to submit a patch if needed.

Thanks,
J-M

abhisheks wrote Oct 17, 2011 at 1:09 PM

Hi,

We are currently testing the patch uploaded by you (patch 9078) regarding this issue. It has few errors. Can you please re upload this patch again which is free from any error.

We would test the same agian and accept if it is working correctly.

Regards,
Trident Support Team

abhisheks wrote Oct 21, 2011 at 12:38 PM

Hi,

The patch you have uploaded (patch 9078) has many syntactical errors. It would great if you can provide a clean replacement of the BuildReferences() method which compiles without errors.

Regards,
Trident Support Team

wrote Oct 21, 2011 at 9:53 PM

jperraud wrote Oct 21, 2011 at 9:53 PM

Hi abhisheks,

I attach the Helper.cs file with the patch applied. Not sure what went on for the original patch to end up not to compile for you, 'No worries'.
I have a couple of additional modifications on other, unrelated fronts, but I'll keep it separate in another patch.

Regards,
J-M

wrote Feb 14, 2013 at 7:04 PM