IronPython 2.6.1, NET 2.0 and binding cause NullReferenceException

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

IronPython 2.6.1, NET 2.0 and binding cause NullReferenceException

Lukas Cenovsky
Hi all,
I've found a bug in IronPython 2.6.1 that causes to terminate IronPython 2.6.1 based on .NET 2.0 with SystemError: Object reference not set to an instance of an object. exception.

Below is the code. You need clrtype.py and pyevent.py to run it. When you run it, a simple form with listbox and checkbox appears. The SK items in the listbox can be filtered out by checking the checkbox. There is a binding to the selected item in the listbox which is the cause of the error. If you select the SK item and check the checkbox to filter it out, the exception occurs. But it only occurs in IronPython based on .NET 2.0 - it works fine in IronPython 2.6.1 based on .NET 4.

Here is the full exception:

C:\BindingTest>C:\IronPython-2.6.1.NET20\ipy.exe -X:Debug -X:ShowClrExceptions BindingTest.py
Traceback (most recent call last):
  File "BindingTest.py", line 133, in <module>
  File "BindingTest.py", line 125, in filtered
SystemError: Object reference not set to an instance of an object.
CLR Exception:
    NullReferenceException
:
Object reference not set to an instance of an object.

I'm going to build IronPython in the debug mode this afternoon to see what's wrong inside and possible fix it in my own build.

As this is quite showstopper for me, I would be very happy if somebody can help me with this. Thank you.

--
-- Lukáš

--- file BindingTest.py ---

import clr
import clrtype
import pyevent
clr.AddReference('WindowsBase')
clr.AddReference('PresentationFramework')
from System.Windows import Application
from System.ComponentModel import INotifyPropertyChanged, PropertyChangedEventArgs
from System.Collections.ObjectModel import ObservableCollection
from System.Windows.Markup import XamlReader
from System.Windows.Data import CollectionViewSource

xaml = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Binding test" Height="150" Width="250">
  <Grid x:Name="root">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
      <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <CheckBox Content="Filtered" IsChecked="{Binding filtered}" />
    <ListBox Name="lbxMountains" Grid.Row="1"
              ItemsSource="{Binding lstMountains}"
              SelectedItem="{Binding selMountain}">
      <ListBox.ItemTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal">
            <TextBlock Grid.Column="1" Text="{Binding country}" />
            <TextBlock Text=": " />
            <TextBlock Text="{Binding name}" />
          </StackPanel>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock Grid.Row="2" Text="{Binding selMountain.name}" />
  </Grid>
</Window>"""

class NotifyPropertyChangedBase(INotifyPropertyChanged):
    PropertyChanged = None

    def __init__(self):
        self.PropertyChanged, self._propertyChangedCaller = pyevent.make_event()

    def add_PropertyChanged(self, value):
        self.PropertyChanged += value

    def remove_PropertyChanged(self, value):
        self.PropertyChanged -= value

    def OnPropertyChanged(self, propertyName):
        if self.PropertyChanged is not None:
            self._propertyChangedCaller(self, PropertyChangedEventArgs(propertyName))

class Mountain(NotifyPropertyChangedBase):
    __metaclass__ = clrtype.ClrClass

    def __init__(self, name, country):
        super(Mountain, self).__init__()
        self.name = name
        self.country = country

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        self._name = value
        self.OnPropertyChanged('name')

    @property
    def country(self):
        return self._country

    @country.setter
    def country(self, value):
        self._country = value
        self.OnPropertyChanged('country')

class Mountains(NotifyPropertyChangedBase):
    __metaclass__ = clrtype.ClrClass

    def __init__(self):
        super(Mountains, self).__init__()
        self._lstMountains = ObservableCollection[Mountain]()
        self.lstMountains.Add(Mountain('Snezka', 'CR'))
        self.lstMountains.Add(Mountain('Rip', 'CR'))
        self.lstMountains.Add(Mountain('Gerlach', 'SK'))
        self.filtered = False
        self.selMountain = Mountain('', '')

    @property
    @clrtype.accepts()
    @clrtype.returns(Mountain)
    def selMountain(self):
        return self._selMountain

    @selMountain.setter
    @clrtype.accepts(Mountain)
    @clrtype.returns()
    def selMountain(self, value):
        self._selMountain = value
        self.OnPropertyChanged('selMountain')

    @property
    @clrtype.accepts()
    @clrtype.returns(ObservableCollection[Mountain])
    def lstMountains(self):
        return self._lstMountains

    @property
    @clrtype.accepts()
    @clrtype.returns(bool)
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(bool)
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')
        dv = CollectionViewSource.GetDefaultView(self.lstMountains)
        dv.Filter = (lambda x: x.country == 'CR' if value else True)

class MyApp:
    def __init__(self):
        self.root = XamlReader.Parse(xaml)
        self.root.DataContext = Mountains()

app = Application()
app.Run(MyApp().root)


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Reply | Threaded
Open this post in threaded view
|

Silverlight - Cannot save value from target back to source

Lukas Cenovsky
  Following my binding experiments in WPF, I tried to convert the sample
into Silverlight and I hit another binding errors there.

When I bind anything else than string, I receive an error when the
target value is changed and the source should be updated. This happens
in all IronPython versions (2.6.1 on .Net 2.0 and 4, 2.7a1).

Here is the code I use (the whole source is attached):

     @property
     @clrtype.accepts()
     @clrtype.returns(System.Nullable[System.Boolean])
     def filtered(self):
         return self._filtered

     @filtered.setter
     @clrtype.accepts(System.Nullable[System.Boolean])
     @clrtype.returns()
     def filtered(self, value):
         self._filtered = value
         self.OnPropertyChanged('filtered')

As you can see I tried to use System.Nullable[System.Boolean] instead of
bool but it did not help. I also tried to use converter and convert the
value to this type (System.Nullable[System.Boolean](value)) but that did
not help either. All resulted in the following exception for bool type.

System.Windows.Data Error: Cannot save value from target back to source.
BindingExpression: Path='filtered' DataItem='Mountains'
(HashCode=2058916); target element is 'System.Windows.Controls.CheckBox'
(Name=''); target property is 'IsChecked' (type
'System.Nullable`1[System.Boolean]')..
System.Reflection.TargetInvocationException: Exception has been thrown
by the target of an invocation. --->
System.Security.VerificationException: Operation could destabilize the
runtime.
    at Mountains.filtered(Nullable`1 value)
    --- End of inner exception stack trace ---
    at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo
method, Object target, Object[] arguments, SignatureStruct& sig,
MethodAttributes methodAttributes, RuntimeType typeOwner)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo
culture, Boolean skipVisibilityChecks)
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj,
BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo
culture)
    at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object
value, BindingFlags invokeAttr, Binder binder, Object[] index,
CultureInfo culture)
    at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object
value, Object[] index)
    at System.Windows.CLRPropertyListener.set_Value(Object value)
    at System.Windows.PropertyAccessPathStep.set_Value(Object value)
    at System.Windows.Data.BindingExpression.UpdateValue().

The similar exception is raised for float or System.Double.

I have found an old issue similar to this:
http://ironpython.codeplex.com/workitem/16831?ProjectName=ironpython

Any workaround would be nice for this bug :-)

--
-- Lukáš

_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

app.py (1K) Download Attachment
app.xaml (508 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: IronPython 2.6.1, NET 2.0 and binding cause NullReferenceException

Lukas Cenovsky
In reply to this post by Lukas Cenovsky
I've found a workaround for this issue. When I was porting this code to Silverlight, I could not use default view because Silverlight does not have it. So I created my own CollectionViewSource and bind it to the listbox. It works. Then I tried it in WPF and it works there too.

So the problem below is caused by default views that WPF create automatically when you bind a collection.

--
-- Lukáš


On 2.9.2010 12:32, Lukas Cenovsky wrote:
Hi all,
I've found a bug in IronPython 2.6.1 that causes to terminate IronPython 2.6.1 based on .NET 2.0 with SystemError: Object reference not set to an instance of an object. exception.

Below is the code. You need clrtype.py and pyevent.py to run it. When you run it, a simple form with listbox and checkbox appears. The SK items in the listbox can be filtered out by checking the checkbox. There is a binding to the selected item in the listbox which is the cause of the error. If you select the SK item and check the checkbox to filter it out, the exception occurs. But it only occurs in IronPython based on .NET 2.0 - it works fine in IronPython 2.6.1 based on .NET 4.

Here is the full exception:

C:\BindingTest>C:\IronPython-2.6.1.NET20\ipy.exe -X:Debug -X:ShowClrExceptions BindingTest.py
Traceback (most recent call last):
  File "BindingTest.py", line 133, in <module>
  File "BindingTest.py", line 125, in filtered
SystemError: Object reference not set to an instance of an object.
CLR Exception:
    NullReferenceException
:
Object reference not set to an instance of an object.

I'm going to build IronPython in the debug mode this afternoon to see what's wrong inside and possible fix it in my own build.

As this is quite showstopper for me, I would be very happy if somebody can help me with this. Thank you.

--
-- Lukáš

--- file BindingTest.py ---

import clr
import clrtype
import pyevent
clr.AddReference('WindowsBase')
clr.AddReference('PresentationFramework')
from System.Windows import Application
from System.ComponentModel import INotifyPropertyChanged, PropertyChangedEventArgs
from System.Collections.ObjectModel import ObservableCollection
from System.Windows.Markup import XamlReader
from System.Windows.Data import CollectionViewSource

xaml = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Binding test" Height="150" Width="250">
  <Grid x:Name="root">
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="*" />
      <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <CheckBox Content="Filtered" IsChecked="{Binding filtered}" />
    <ListBox Name="lbxMountains" Grid.Row="1"
              ItemsSource="{Binding lstMountains}"
              SelectedItem="{Binding selMountain}">
      <ListBox.ItemTemplate>
        <DataTemplate>
          <StackPanel Orientation="Horizontal">
            <TextBlock Grid.Column="1" Text="{Binding country}" />
            <TextBlock Text=": " />
            <TextBlock Text="{Binding name}" />
          </StackPanel>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock Grid.Row="2" Text="{Binding selMountain.name}" />
  </Grid>
</Window>"""

class NotifyPropertyChangedBase(INotifyPropertyChanged):
    PropertyChanged = None

    def __init__(self):
        self.PropertyChanged, self._propertyChangedCaller = pyevent.make_event()

    def add_PropertyChanged(self, value):
        self.PropertyChanged += value

    def remove_PropertyChanged(self, value):
        self.PropertyChanged -= value

    def OnPropertyChanged(self, propertyName):
        if self.PropertyChanged is not None:
            self._propertyChangedCaller(self, PropertyChangedEventArgs(propertyName))

class Mountain(NotifyPropertyChangedBase):
    __metaclass__ = clrtype.ClrClass

    def __init__(self, name, country):
        super(Mountain, self).__init__()
        self.name = name
        self.country = country

    @property
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        self._name = value
        self.OnPropertyChanged('name')

    @property
    def country(self):
        return self._country

    @country.setter
    def country(self, value):
        self._country = value
        self.OnPropertyChanged('country')

class Mountains(NotifyPropertyChangedBase):
    __metaclass__ = clrtype.ClrClass

    def __init__(self):
        super(Mountains, self).__init__()
        self._lstMountains = ObservableCollection[Mountain]()
        self.lstMountains.Add(Mountain('Snezka', 'CR'))
        self.lstMountains.Add(Mountain('Rip', 'CR'))
        self.lstMountains.Add(Mountain('Gerlach', 'SK'))
        self.filtered = False
        self.selMountain = Mountain('', '')

    @property
    @clrtype.accepts()
    @clrtype.returns(Mountain)
    def selMountain(self):
        return self._selMountain

    @selMountain.setter
    @clrtype.accepts(Mountain)
    @clrtype.returns()
    def selMountain(self, value):
        self._selMountain = value
        self.OnPropertyChanged('selMountain')

    @property
    @clrtype.accepts()
    @clrtype.returns(ObservableCollection[Mountain])
    def lstMountains(self):
        return self._lstMountains

    @property
    @clrtype.accepts()
    @clrtype.returns(bool)
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(bool)
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')
        dv = CollectionViewSource.GetDefaultView(self.lstMountains)
        dv.Filter = (lambda x: x.country == 'CR' if value else True)

class MyApp:
    def __init__(self):
        self.root = XamlReader.Parse(xaml)
        self.root.DataContext = Mountains()

app = Application()
app.Run(MyApp().root)

_______________________________________________ Users mailing list [hidden email] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Reply | Threaded
Open this post in threaded view
|

Re: Silverlight - Cannot save value from target back to source

Lukas Cenovsky
In reply to this post by Lukas Cenovsky
I am trying to debug this bug and I need some help.

I have built IronPython 2.6.1 - Silverlight debug binaries. I have pointed VS 2010 symbols folder to the folder with these binaries.

I run the Silverlight app in the debug mode (debug=true in index.html), attach VS 2010 debugger, select Thrown for Common Language Runtime Exceptions and Managed Debugging Assistants in Debug - Exceptions dialog.

All symbols are loaded, so I click on the checkbox button on the page. The following exception occurs:

System.Security.VerificationException occurred
  Message=Operation could destabilize the runtime.
  StackTrace:
       at Mountains.filtered(Nullable`1 value)
  InnerException:


No source available.This is the Call stack:

>    Snippets.scripting!Mountains.filtered.set(bool? value) + 0x23 bytes   
     [Native to Managed Transition]   
     [Managed to Native Transition]   
     System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value) + 0x23 bytes   
     System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value) + 0x10 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x3b2 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueIfNecessary() + 0x27 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.TargetPropertyChanged(System.Windows.DependencyObject sender, System.Windows.DependencyProperty dp) + 0x2b bytes   
     System.Windows.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x17 bytes   
     System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x51 bytes   
     System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5c bytes   
     System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf6 bytes   
     System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet) + 0x1da bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnToggle() + 0x8d bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnClick() + 0xf bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) + 0x8e bytes   
     System.Windows.dll!System.Windows.Controls.Control.OnMouseLeftButtonUp(System.Windows.Controls.Control ctrl, System.EventArgs e) + 0x31 bytes   
     System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, string eventName) + 0x234 bytes   
     [Appdomain Transition]   

I click Step Into and another exception occurs:

System.Reflection.TargetInvocationException occurred
  Message=Exception has been thrown by the target of an invocation.
  StackTrace:
       at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  InnerException: System.TypeInitializationException
       Message=The type initializer for 'Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost' threw an exception.
       TypeName=Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost
       InnerException: System.TypeLoadException
            Message=Could not load type 'System.MarshalByRefObject' from assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
            StackTrace:
                 at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost..cctor()
            InnerException:


Stepping further shows the System.Windows.Data error I posted below.

Any ideas/hints? Thank you.

--
-- Lukáš


On 2.9.2010 20:39, Lukas Cenovsky wrote:
 Following my binding experiments in WPF, I tried to convert the sample into Silverlight and I hit another binding errors there.

When I bind anything else than string, I receive an error when the target value is changed and the source should be updated. This happens in all IronPython versions (2.6.1 on .Net 2.0 and 4, 2.7a1).

Here is the code I use (the whole source is attached):

    @property
    @clrtype.accepts()
    @clrtype.returns(System.Nullable[System.Boolean])
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(System.Nullable[System.Boolean])
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')

As you can see I tried to use System.Nullable[System.Boolean] instead of bool but it did not help. I also tried to use converter and convert the value to this type (System.Nullable[System.Boolean](value)) but that did not help either. All resulted in the following exception for bool type.

System.Windows.Data Error: Cannot save value from target back to source. BindingExpression: Path='filtered' DataItem='Mountains' (HashCode=2058916); target element is 'System.Windows.Controls.CheckBox' (Name=''); target property is 'IsChecked' (type 'System.Nullable`1[System.Boolean]').. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.VerificationException: Operation could destabilize the runtime.
   at Mountains.filtered(Nullable`1 value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at System.Windows.CLRPropertyListener.set_Value(Object value)
   at System.Windows.PropertyAccessPathStep.set_Value(Object value)
   at System.Windows.Data.BindingExpression.UpdateValue().

The similar exception is raised for float or System.Double.

I have found an old issue similar to this: http://ironpython.codeplex.com/workitem/16831?ProjectName=ironpython

Any workaround would be nice for this bug :-)

--
-- Lukáš
_______________________________________________ Users mailing list [hidden email] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Reply | Threaded
Open this post in threaded view
|

Re: Silverlight - Cannot save value from target back to source

Dino Viehland

Does this only happen in debug mode?  Do you have a class or a method named like Mountains.filtered.set (in other words do you have any idea of what this code is)?   Or are you maybe deriving from a class named Mountains which has a set method? 

 

Ultimately what I’m getting at is it’d be good to run this on the desktop CLR and get the same method created.  So if you can isolate the code then run it on the desktop you could run w/ the –X:SaveAssemblies option.  That will write out the IL we generate to disk as a Snippets.scripting.dll and then you can run peverify on that and see if the generated code is actually unverifiable (or if maybe there’s a CLR bug related to verification).

 

If there is actually unverifiable code then we have a bug we need to fix.  If we have verifiable code or some difference between when we’re using RefEmit and DynamicMethods then maybe the CLR has a bug that needs to be fixed.

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Lukas Cenovsky
Sent: Friday, September 03, 2010 9:04 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Silverlight - Cannot save value from target back to source

 

I am trying to debug this bug and I need some help.

I have built IronPython 2.6.1 - Silverlight debug binaries. I have pointed VS 2010 symbols folder to the folder with these binaries.

I run the Silverlight app in the debug mode (debug=true in index.html), attach VS 2010 debugger, select Thrown for Common Language Runtime Exceptions and Managed Debugging Assistants in Debug - Exceptions dialog.

All symbols are loaded, so I click on the checkbox button on the page. The following exception occurs:

System.Security.VerificationException occurred
  Message=Operation could destabilize the runtime.
  StackTrace:
       at Mountains.filtered(Nullable`1 value)
  InnerException:


No source available.This is the Call stack:

>    Snippets.scripting!Mountains.filtered.set(bool? value) + 0x23 bytes   
     [Native to Managed Transition]   
     [Managed to Native Transition]   
     System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value) + 0x23 bytes   
     System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value) + 0x10 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x3b2 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueIfNecessary() + 0x27 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.TargetPropertyChanged(System.Windows.DependencyObject sender, System.Windows.DependencyProperty dp) + 0x2b bytes   
     System.Windows.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x17 bytes   
     System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x51 bytes   
     System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5c bytes   
     System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf6 bytes   
     System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet) + 0x1da bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnToggle() + 0x8d bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnClick() + 0xf bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) + 0x8e bytes   
     System.Windows.dll!System.Windows.Controls.Control.OnMouseLeftButtonUp(System.Windows.Controls.Control ctrl, System.EventArgs e) + 0x31 bytes   
     System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, string eventName) + 0x234 bytes   
     [Appdomain Transition]   

I click Step Into and another exception occurs:

System.Reflection.TargetInvocationException occurred
  Message=Exception has been thrown by the target of an invocation.
  StackTrace:
       at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  InnerException: System.TypeInitializationException
       Message=The type initializer for 'Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost' threw an exception.
       TypeName=Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost
       InnerException: System.TypeLoadException
            Message=Could not load type 'System.MarshalByRefObject' from assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
            StackTrace:
                 at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost..cctor()
            InnerException:


Stepping further shows the System.Windows.Data error I posted below.

Any ideas/hints? Thank you.

--
-- Lukáš


On 2.9.2010 20:39, Lukas Cenovsky wrote:

 Following my binding experiments in WPF, I tried to convert the sample into Silverlight and I hit another binding errors there.

When I bind anything else than string, I receive an error when the target value is changed and the source should be updated. This happens in all IronPython versions (2.6.1 on .Net 2.0 and 4, 2.7a1).

Here is the code I use (the whole source is attached):

    @property
    @clrtype.accepts()
    @clrtype.returns(System.Nullable[System.Boolean])
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(System.Nullable[System.Boolean])
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')

As you can see I tried to use System.Nullable[System.Boolean] instead of bool but it did not help. I also tried to use converter and convert the value to this type (System.Nullable[System.Boolean](value)) but that did not help either. All resulted in the following exception for bool type.

System.Windows.Data Error: Cannot save value from target back to source. BindingExpression: Path='filtered' DataItem='Mountains' (HashCode=2058916); target element is 'System.Windows.Controls.CheckBox' (Name=''); target property is 'IsChecked' (type 'System.Nullable`1[System.Boolean]').. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.VerificationException: Operation could destabilize the runtime.
   at Mountains.filtered(Nullable`1 value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at System.Windows.CLRPropertyListener.set_Value(Object value)
   at System.Windows.PropertyAccessPathStep.set_Value(Object value)
   at System.Windows.Data.BindingExpression.UpdateValue().

The similar exception is raised for float or System.Double.

I have found an old issue similar to this: http://ironpython.codeplex.com/workitem/16831?ProjectName=ironpython

Any workaround would be nice for this bug :-)

--
-- Lukáš

 
 
_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

 


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
Reply | Threaded
Open this post in threaded view
|

Re: Silverlight - Cannot save value from target back to source

Lukas Cenovsky
I do not have any Mountains.filtered.set method - I think clrtype metaclass adds it. You can see the part I wrote (filtered property) below or in the attachment where I put the whole testing sources.

Running the same code in the desktop CLR works fine (wpf.py).

--
-- Lukáš


On 3.9.2010 19:11, Dino Viehland wrote:

Does this only happen in debug mode?  Do you have a class or a method named like Mountains.filtered.set (in other words do you have any idea of what this code is)?   Or are you maybe deriving from a class named Mountains which has a set method? 

 

Ultimately what I’m getting at is it’d be good to run this on the desktop CLR and get the same method created.  So if you can isolate the code then run it on the desktop you could run w/ the –X:SaveAssemblies option.  That will write out the IL we generate to disk as a Snippets.scripting.dll and then you can run peverify on that and see if the generated code is actually unverifiable (or if maybe there’s a CLR bug related to verification).

 

If there is actually unverifiable code then we have a bug we need to fix.  If we have verifiable code or some difference between when we’re using RefEmit and DynamicMethods then maybe the CLR has a bug that needs to be fixed.

 

From: [hidden email] [[hidden email]] On Behalf Of Lukas Cenovsky
Sent: Friday, September 03, 2010 9:04 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Silverlight - Cannot save value from target back to source

 

I am trying to debug this bug and I need some help.

I have built IronPython 2.6.1 - Silverlight debug binaries. I have pointed VS 2010 symbols folder to the folder with these binaries.

I run the Silverlight app in the debug mode (debug=true in index.html), attach VS 2010 debugger, select Thrown for Common Language Runtime Exceptions and Managed Debugging Assistants in Debug - Exceptions dialog.

All symbols are loaded, so I click on the checkbox button on the page. The following exception occurs:

System.Security.VerificationException occurred
  Message=Operation could destabilize the runtime.
  StackTrace:
       at Mountains.filtered(Nullable`1 value)
  InnerException:


No source available.This is the Call stack:

>    Snippets.scripting!Mountains.filtered.set(bool? value) + 0x23 bytes   
     [Native to Managed Transition]   
     [Managed to Native Transition]   
     System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value) + 0x23 bytes   
     System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value) + 0x10 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x3b2 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueIfNecessary() + 0x27 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.TargetPropertyChanged(System.Windows.DependencyObject sender, System.Windows.DependencyProperty dp) + 0x2b bytes   
     System.Windows.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x17 bytes   
     System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x51 bytes   
     System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5c bytes   
     System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf6 bytes   
     System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet) + 0x1da bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnToggle() + 0x8d bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnClick() + 0xf bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) + 0x8e bytes   
     System.Windows.dll!System.Windows.Controls.Control.OnMouseLeftButtonUp(System.Windows.Controls.Control ctrl, System.EventArgs e) + 0x31 bytes   
     System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, string eventName) + 0x234 bytes   
     [Appdomain Transition]   

I click Step Into and another exception occurs:

System.Reflection.TargetInvocationException occurred
  Message=Exception has been thrown by the target of an invocation.
  StackTrace:
       at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  InnerException: System.TypeInitializationException
       Message=The type initializer for 'Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost' threw an exception.
       TypeName=Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost
       InnerException: System.TypeLoadException
            Message=Could not load type 'System.MarshalByRefObject' from assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
            StackTrace:
                 at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost..cctor()
            InnerException:


Stepping further shows the System.Windows.Data error I posted below.

Any ideas/hints? Thank you.

--
-- Lukáš


On 2.9.2010 20:39, Lukas Cenovsky wrote:

 Following my binding experiments in WPF, I tried to convert the sample into Silverlight and I hit another binding errors there.

When I bind anything else than string, I receive an error when the target value is changed and the source should be updated. This happens in all IronPython versions (2.6.1 on .Net 2.0 and 4, 2.7a1).

Here is the code I use (the whole source is attached):

    @property
    @clrtype.accepts()
    @clrtype.returns(System.Nullable[System.Boolean])
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(System.Nullable[System.Boolean])
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')

As you can see I tried to use System.Nullable[System.Boolean] instead of bool but it did not help. I also tried to use converter and convert the value to this type (System.Nullable[System.Boolean](value)) but that did not help either. All resulted in the following exception for bool type.

System.Windows.Data Error: Cannot save value from target back to source. BindingExpression: Path='filtered' DataItem='Mountains' (HashCode=2058916); target element is 'System.Windows.Controls.CheckBox' (Name=''); target property is 'IsChecked' (type 'System.Nullable`1[System.Boolean]').. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.VerificationException: Operation could destabilize the runtime.
   at Mountains.filtered(Nullable`1 value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at System.Windows.CLRPropertyListener.set_Value(Object value)
   at System.Windows.PropertyAccessPathStep.set_Value(Object value)
   at System.Windows.Data.BindingExpression.UpdateValue().

The similar exception is raised for float or System.Double.

I have found an old issue similar to this: http://ironpython.codeplex.com/workitem/16831?ProjectName=ironpython

Any workaround would be nice for this bug :-)

--
-- Lukáš

 
 
_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

 

_______________________________________________ Users mailing list [hidden email] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

src.zip (17K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Silverlight - Cannot save value from target back to source

Lukas Cenovsky
I've filled an issue for this bug: http://ironpython.codeplex.com/workitem/28823

--
-- Lukáš


On 3.9.2010 19:39, Lukas Cenovsky wrote:
I do not have any Mountains.filtered.set method - I think clrtype metaclass adds it. You can see the part I wrote (filtered property) below or in the attachment where I put the whole testing sources.

Running the same code in the desktop CLR works fine (wpf.py).

--
-- Lukáš


On 3.9.2010 19:11, Dino Viehland wrote:

Does this only happen in debug mode?  Do you have a class or a method named like Mountains.filtered.set (in other words do you have any idea of what this code is)?   Or are you maybe deriving from a class named Mountains which has a set method? 

 

Ultimately what I’m getting at is it’d be good to run this on the desktop CLR and get the same method created.  So if you can isolate the code then run it on the desktop you could run w/ the –X:SaveAssemblies option.  That will write out the IL we generate to disk as a Snippets.scripting.dll and then you can run peverify on that and see if the generated code is actually unverifiable (or if maybe there’s a CLR bug related to verification).

 

If there is actually unverifiable code then we have a bug we need to fix.  If we have verifiable code or some difference between when we’re using RefEmit and DynamicMethods then maybe the CLR has a bug that needs to be fixed.

 

From: [hidden email] [[hidden email]] On Behalf Of Lukas Cenovsky
Sent: Friday, September 03, 2010 9:04 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Silverlight - Cannot save value from target back to source

 

I am trying to debug this bug and I need some help.

I have built IronPython 2.6.1 - Silverlight debug binaries. I have pointed VS 2010 symbols folder to the folder with these binaries.

I run the Silverlight app in the debug mode (debug=true in index.html), attach VS 2010 debugger, select Thrown for Common Language Runtime Exceptions and Managed Debugging Assistants in Debug - Exceptions dialog.

All symbols are loaded, so I click on the checkbox button on the page. The following exception occurs:

System.Security.VerificationException occurred
  Message=Operation could destabilize the runtime.
  StackTrace:
       at Mountains.filtered(Nullable`1 value)
  InnerException:


No source available.This is the Call stack:

>    Snippets.scripting!Mountains.filtered.set(bool? value) + 0x23 bytes   
     [Native to Managed Transition]   
     [Managed to Native Transition]   
     System.Windows.dll!System.Windows.CLRPropertyListener.Value.set(object value) + 0x23 bytes   
     System.Windows.dll!System.Windows.PropertyAccessPathStep.Value.set(object value) + 0x10 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValue() + 0x3b2 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.UpdateValueIfNecessary() + 0x27 bytes   
     System.Windows.dll!System.Windows.Data.BindingExpression.TargetPropertyChanged(System.Windows.DependencyObject sender, System.Windows.DependencyProperty dp) + 0x2b bytes   
     System.Windows.dll!System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x17 bytes   
     System.Windows.dll!System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyProperty dp) + 0x51 bytes   
     System.Windows.dll!System.Windows.DependencyObject.RaisePropertyChangeNotifications(System.Windows.DependencyProperty dp, object oldValue, object newValue) + 0x5c bytes   
     System.Windows.dll!System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.DependencyProperty property, System.Windows.EffectiveValueEntry oldEntry, ref System.Windows.EffectiveValueEntry newEntry, System.Windows.DependencyObject.ValueOperation operation) + 0xf6 bytes   
     System.Windows.dll!System.Windows.DependencyObject.SetValueInternal(System.Windows.DependencyProperty dp, object value, bool allowReadOnlySet) + 0x1da bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnToggle() + 0x8d bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ToggleButton.OnClick() + 0xf bytes   
     System.Windows.dll!System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs e) + 0x8e bytes   
     System.Windows.dll!System.Windows.Controls.Control.OnMouseLeftButtonUp(System.Windows.Controls.Control ctrl, System.EventArgs e) + 0x31 bytes   
     System.Windows.dll!MS.Internal.JoltHelper.FireEvent(System.IntPtr unmanagedObj, System.IntPtr unmanagedObjArgs, int argsTypeIndex, string eventName) + 0x234 bytes   
     [Appdomain Transition]   

I click Step Into and another exception occurs:

System.Reflection.TargetInvocationException occurred
  Message=Exception has been thrown by the target of an invocation.
  StackTrace:
       at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
       at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  InnerException: System.TypeInitializationException
       Message=The type initializer for 'Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost' threw an exception.
       TypeName=Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost
       InnerException: System.TypeLoadException
            Message=Could not load type 'System.MarshalByRefObject' from assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
            StackTrace:
                 at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.DebugeeHost..cctor()
            InnerException:


Stepping further shows the System.Windows.Data error I posted below.

Any ideas/hints? Thank you.

--
-- Lukáš


On 2.9.2010 20:39, Lukas Cenovsky wrote:

 Following my binding experiments in WPF, I tried to convert the sample into Silverlight and I hit another binding errors there.

When I bind anything else than string, I receive an error when the target value is changed and the source should be updated. This happens in all IronPython versions (2.6.1 on .Net 2.0 and 4, 2.7a1).

Here is the code I use (the whole source is attached):

    @property
    @clrtype.accepts()
    @clrtype.returns(System.Nullable[System.Boolean])
    def filtered(self):
        return self._filtered

    @filtered.setter
    @clrtype.accepts(System.Nullable[System.Boolean])
    @clrtype.returns()
    def filtered(self, value):
        self._filtered = value
        self.OnPropertyChanged('filtered')

As you can see I tried to use System.Nullable[System.Boolean] instead of bool but it did not help. I also tried to use converter and convert the value to this type (System.Nullable[System.Boolean](value)) but that did not help either. All resulted in the following exception for bool type.

System.Windows.Data Error: Cannot save value from target back to source. BindingExpression: Path='filtered' DataItem='Mountains' (HashCode=2058916); target element is 'System.Windows.Controls.CheckBox' (Name=''); target property is 'IsChecked' (type 'System.Nullable`1[System.Boolean]').. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.VerificationException: Operation could destabilize the runtime.
   at Mountains.filtered(Nullable`1 value)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index)
   at System.Windows.CLRPropertyListener.set_Value(Object value)
   at System.Windows.PropertyAccessPathStep.set_Value(Object value)
   at System.Windows.Data.BindingExpression.UpdateValue().

The similar exception is raised for float or System.Double.

I have found an old issue similar to this: http://ironpython.codeplex.com/workitem/16831?ProjectName=ironpython

Any workaround would be nice for this bug :-)

--
-- Lukáš

 
 
_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

 

_______________________________________________ Users mailing list [hidden email] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________ Users mailing list [hidden email] http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


_______________________________________________
Users mailing list
[hidden email]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com