Hello,

I've sorted out this problem, at least for my team. The issue lies in that in the Modification.CompareTo implementation, nulls are not checked for when doing the comparisons. The Vault does not really consider a move an atomic operation. It notes that an operation occurs to remove the file from the source folder, and a separate operation to insert it into the new folder. I don't know if this is how other source control systems work, but this is apparently what the vault does. Since the dateTime and the user fields are identical, the CompareTo method attempts to sort by comment. Since Vault does not allow comments for move operations, this throws an exception, and the build pukes.

Personally, I don't see a great purpose in sorting by comment, or really by anything other than DateTime - the odds that multiple users will check in code at the exact same moment are very slim. SmallDateTime's in SqlServer are only accurate down to the minute, and the Vault returns DateTimes down to the second, so they must be extremely accurate. Anyways, and regardless, I fixed the file, but I don't know how to make the patch file, so if anyone is interested in me submitting a fix - please let me know what the process is.

--ben joldersma

Benjamin Joldersma wrote:

Hello all,

I've seen some emails about this - it seems that the problem that triggers the GetModifications error:

System.InvalidOperationException: Specified IComparer threw an
exception. ---> System.NullReferenceException: Object reference not set
to an instance of an object.
   at Draco.Core.Scc.Modification.CompareTo(Object obj)
   at System.Collections.Comparer.Compare(Object a, Object b)
   at System.SorterObjectArray.QuickSort(Int32 left, Int32 right)
   --- End of inner exception stack trace ---
   at System.SorterObjectArray.QuickSort(Int32 left, Int32 right)
   at System.Array.Sort(Array keys, Array items, Int32 index, Int32
length, IComparer comparer)
   at System.Array.Sort(Array array)
   at Draco.Core.Runtime.BuildRunner.GetModifications(DateTime
earliestModificationTime)
   at Draco.Core.Runtime.BuildRunner.CheckForChanges(BuildType
buildType, Boolean& changesSinceLastBuild)
   at Draco.Core.Runtime.BuildRunner.Start(BuildType buildType)

happens when we move a file into a different directory. This makes sense. Deleting the build.info and log files fixes it, but I don't want to have to do this every time we move our files around. Any suggestions?

--ben joldersma




------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Draconet-users mailing list Draconet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/draconet-users



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Draconet-users mailing list
Draconet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/draconet-users

Reply via email to