It'd be nice to understand where this issue is coming from as it wasn't in 
2.9.4 rather than jumping to a quick fix imo. I'll dig a bit myself
~P

> Date: Tue, 14 Aug 2012 17:32:29 +0200
> From: si...@devhost.se
> To: lucene-net-dev@lucene.apache.org
> Subject: Re: Lucene.Net 3.0.3 and medium trust
> 
> Hi,
> 
> It got worse. Building a custom AttributeFactory can only handle a few 
> cases, I needed to subclass _every_ TokenStream/TokenFilter to override 
> all attribute-handling methods (AddAttribute, GetAttribute, etc), and 
> all analyzers to use these streams, to use a dictionary with strong 
> references just for medium trust... I gave up before doing that. ;)
> 
> Is there any use cases where we need to garbage collect attributes 
> before the stream/attribute source is closed? Changing to a normal 
> dictionary seems like a quick fix.
> 
> // Simon
> 
> 
> On 2012-08-14 17:21, Christopher Currens wrote:
> > It must be something we've missed, as we want to target medium trust
> > locations in the future.  I can't think of anything off the top of my
> > head that would require medium trust, though, let alone unmanaged
> > code.  I'll dive into this.
> >
> >
> > Thanks,
> > Christopher
> >
> > On Mon, Aug 13, 2012 at 10:01 PM, Simon Svensson <si...@devhost.se> wrote:
> >> Hi,
> >>
> >> I'm having trouble upgrading a web application running under medium trust
> >> from 2.9.4 to 3.0.3. Code that previously worked now throws a
> >> SecurityException.
> >>
> >> [SecurityException: Request for the permission of type
> >> 'System.Security.Permissions.SecurityPermission, mscorlib, Version=4.0.0.0,
> >> Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
> >>     Lucene.Net.Support.WeakKey`1..ctor(T key) +0
> >>     Lucene.Net.Support.WeakDictionary`2.get_Item(TKey key) +113
> >>     Lucene.Net.Util.DefaultAttributeFactory.GetClassForInterface() +178
> >>     Lucene.Net.Util.DefaultAttributeFactory.CreateAttributeInstance() +95
> >>     Lucene.Net.Util.AttributeSource.AddAttribute() +375
> >>     Lucene.Net.Analysis.CharTokenizer..ctor(TextReader input) +126
> >>     Lucene.Net.Analysis.WhitespaceTokenizer..ctor(TextReader in) +37
> >>
> >>
> >> The DefaultAttributeFactory, via WeakReference, requires
> >> SecurityPermissionFlag.UnmanagedCode which is not present under medium
> >> trust. There's an AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY which I could
> >> to replace the DefaultAttributeFactory, but it's readonly. I'm rewriting my
> >> code to call the constructor overload (on tokenizers) accepting an
> >> AttributeFactory, but this means that I cannot use any existing Analyzer
> >> since they don't provide an extension points to change the 
> >> AttributeFactory.
> >>
> >> Is medium trust [using default classes] dropped in 3.0.3, or is this
> >> something we've missed?
> >>
> >> // Simon
> 
                                          

Reply via email to