https://bugzilla.novell.com/show_bug.cgi?id=403371


           Summary: Uncatched exception in
                    CheckNewExceptionWithoutThrowingRule
           Product: Mono: Tools
           Version: SVN
          Platform: i386
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Gendarme
        AssignedTo: mono-bugs@lists.ximian.com
        ReportedBy: [EMAIL PROTECTED]
         QAContact: mono-bugs@lists.ximian.com
          Found By: ---


Here is the stack trace for this rule:

An uncatched exception occured. Please fill a bug report @
https://bugzilla.novell.com/
Rule:   Gendarme.Rules.BadPractice.CheckNewExceptionWithoutThrowingRule
Target: System.Boolean
System.Xml.Linq.XObject/<Annotations>c__Iterator16`1::MoveNext()
Stack trace: System.ArgumentOutOfRangeException: Index is less than 0 or more
than or equal to the list count.
Parameter name: index
0
  at System.Collections.ArrayList.get_Item (Int32 index) [0x00032] in
/home/nestor/devel/mono-project/mcs/class/corlib/System.Collections/ArrayList.cs:2652
 
  at System.Collections.CollectionBase.System.Collections.IList.get_Item (Int32
index) [0x00000] in
/home/nestor/devel/mono-project/mcs/class/corlib/System.Collections/CollectionBase.cs:200
 
  at Mono.Cecil.GenericParameterCollection.get_Item (Int32 index) [0x00000] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil/GenericParameterCollection.cs:44
 
  at Mono.Cecil.ReflectionReader.GetTypeRefFromSig
(Mono.Cecil.Signatures.SigType t, Mono.Cecil.GenericContext context) [0x00359]
in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil/ReflectionReader.cs:1099
 
  at Mono.Cecil.ReflectionReader.GetTypeSpecAt (UInt32 rid,
Mono.Cecil.GenericContext context) [0x0004e] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil/ReflectionReader.cs:153
 
  at Mono.Cecil.Cil.CodeReader.ReadCilBody (Mono.Cecil.Cil.MethodBody body,
System.IO.BinaryReader br) [0x003c7] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil.Cil/CodeReader.cs:191
 
  at Mono.Cecil.Cil.CodeReader.VisitMethodBody (Mono.Cecil.Cil.MethodBody body)
[0x000c5] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil.Cil/CodeReader.cs:75
 
  at Mono.Cecil.MethodDefinition.LoadBody () [0x00042] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil/MethodDefinition.cs:554
 
  at Mono.Cecil.MethodDefinition.get_Body () [0x00000] in
/home/nestor/devel/mono-project/mcs/class/Mono.Cecil/Mono.Cecil/MethodDefinition.cs:104
 
  at
Gendarme.Rules.BadPractice.CheckNewExceptionWithoutThrowingRule.CheckMethod
(Mono.Cecil.MethodDefinition method) [0x0000f] in
/home/nestor/devel/mono-project/mono-tools/gendarme/rules/Gendarme.Rules.BadPractice/CheckNewExceptionWithoutThrowingRule.cs:53
 
  at Gendarme.Framework.Runner.OnMethod (Gendarme.Framework.RunnerEventArgs e)
[0x000b7] in
/home/nestor/devel/mono-project/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs:251
 
  at Gendarme.Framework.Runner.Run () [0x000cb] in
/home/nestor/devel/mono-project/mono-tools/gendarme/framework/Gendarme.Framework/Runner.cs:296
 
  at Gendarme.ConsoleRunner.Run () [0x00006] in
/home/nestor/devel/mono-project/mono-tools/gendarme/console/ConsoleRunner.cs:197
 
  at Gendarme.ConsoleRunner.Execute (System.String[] args) [0x00142] in
/home/nestor/devel/mono-project/mono-tools/gendarme/console/ConsoleRunner.cs:176
 

I have been researching a little, and I'm not sure if is our bug or is a cecil
bug, because the exception is thrown at line 53:


if (!method.HasBody)
        return RuleResult.DoesNotApply;

StackEntryAnalysis sea = null;

--->    foreach (Instruction ins in method.Body.Instructions) {

The code checks if the method has body, but when access to the Instructions it
breaks.

In order to reproduce it, you have to run gendarme (with the BadPractice set)
against System.Xml.Linq.  (Or you can use the script in my mono-soc-2008
directory)


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist  -  mono-bugs@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to