I'm gonna go ahead and put a lock over GetComissionConcerns GetDecommissionConcerns anyway, although more insight into the situation could help with getting better to know why that happens. Do you have some http handlers that get hit in parallel with your application starting (your container getting composed)?
Does that happen only the very first time you start the application?
I guess it's very unlikely you add/remove lifetime concerns at any later point, right?


Krzysztof


On 2010-04-08 03:48, Jan Limpens wrote:
probably you are right - the exception also comes and goes on different spots - which defenitely makes it look like a threading issue. I just wonder what causes it.

it seems to get triggered by the view:

Exception: Exception on process view: themes\detailbykey
Last accessed variable: HasOptions
Stack Trace:
at Castle.MonoRail.Views.Brail.BooViewEngine.HandleException(String templateName, BrailBase view, Exception e) at Castle.MonoRail.Views.Brail.BooViewEngine.RenderView(String templateName, BrailBase view) at Castle.MonoRail.Views.Brail.BooViewEngine.Process(String templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) at Castle.MonoRail.Framework.Services.DefaultViewEngineManager.Process(String templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
   at Castle.MonoRail.Framework.Controller.ProcessView()
   at Castle.Proxies.ThemesControllerProxy.ProcessView_callback()
at Castle.Proxies.Invocations.Controller_ProcessView_4.InvokeMethodOnTarget()
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Facilities.AutomaticTransactionManagement.TransactionInterceptor.Intercept(IInvocation invocation)
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.ThemesControllerProxy.ProcessView()
   at Castle.MonoRail.Framework.Controller.RunActionAndRenderView()

Exception: Destination array was not long enough. Check destIndex and length, and the array's lower bounds.
  Stack Trace:
at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex)
   at Castle.Core.LifecycleStepCollection.GetCommissionSteps()
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.ApplyCommissionConcerns(Object instance) at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext context) at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext context) at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext context) at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context, Boolean track) at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext context) at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service, IDictionary additionalArguments) at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type service)
   at Castle.MicroKernel.DefaultKernel.get_Item(Type service)
at Castle.MonoRail.WindsorExtension.WindsorViewComponentFactory.Create(String name)
   at BrailView_default.$Run$closure$1.Invoke(TextWriter OutputStream)
at CompilerGenerated.__BrailView_default_Run$callable0$1_1__.Call(Object[] args) at Castle.MonoRail.Views.Brail.BrailViewComponentContext.RenderBody(TextWriter writer) at Castle.MonoRail.Framework.ViewComponent.RenderBody(TextWriter writer)
   at Shop.Web.Site.MVC.Components.TileComponent.Render()
   at BrailView_default.Run()
at Castle.MonoRail.Views.Brail.BrailBase.OutputSubView(String subviewName, TextWriter writer, IDictionary parameters) at Castle.MonoRail.Views.Brail.BrailViewComponentContext.RenderView(String name, TextWriter writer) at Castle.MonoRail.Framework.ViewComponent.RenderView(String name, TextWriter writer)
   at Shop.Web.Site.MVC.Components.ArticleTileComponent.Render()
   at BrailView_DetailByKey.$Run$closure$5.Invoke(TextWriter OutputStream)
   at CompilerGenerated.__DetailByKey$callable0$10_9__.Call(Object[] args)
at Castle.MonoRail.Views.Brail.BrailViewComponentContext.RenderSection(String sectionName, TextWriter writer) at Castle.MonoRail.Framework.ViewComponent.RenderSection(String sectionName, TextWriter writer) at Shop.Web.Site.MVC.Components.TableComponent.getRenderedSection(Object element)
   at Shop.Web.Site.MVC.Components.TableComponent.<Render>b__0(Object e)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
at ProjectBase.Utils.CollectionExtensions.IsEmpty[T](IEnumerable`1 list) at ProjectBase.Utils.CollectionExtensions.IsNullOrEmpty[T](IEnumerable`1 list) at ProjectBase.Utils.CollectionExtensions.Split[T](IEnumerable`1 list, Int32 numberElementsPerList, Boolean padWithDefault)
   at Shop.Web.Site.MVC.Components.TableComponent.Render()
   at BrailView_DetailByKey.Run()
at Castle.MonoRail.Views.Brail.BooViewEngine.RenderView(String templateName, BrailBase view)

but it is also not the view's fault. Sometimes it renders sometimes it doesn't. And this view code worked very stable in the past. I am not using threading anywhere near this code, so I am a bit unsure of how to proceed. The logs are full of this exception and the service is unstable, so I am under a bit of pressure...

Any help would be greatly appreciated...

Jan


2010/4/1 Krzysztof Koźmic <[email protected] <mailto:[email protected]>>

    the only thing, from the top of my head, that comes to mind would be
    that it;s a threading issue -one thread returns commission steps,
    while an other one adds some more between the calls to array.Length
    and array.Copy



    2010/3/31 Jan Limpens <[email protected]
    <mailto:[email protected]>>:
    > never had that one before and I cannot reproduce it, so maybe
    somebody can
    > give me a hint on what to look for...
    >
    > [ArgumentException: Source array was not long enough. Check
    srcIndex and
    > length, and the array's lower bounds.]
    >
    >    System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array
    > destinationArray, Int32 destinationIndex, Int32 length, Boolean
    reliable) +0
    >    System.Collections.Generic.List`1.CopyTo(T[] array, Int32
    arrayIndex) +25
    >
    >    Castle.Core.LifecycleStepCollection.GetCommissionSteps() +95
    >
    >
    
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.ApplyCommissionConcerns(Object
    > instance) +83
    >
    >
    
Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext
    > context) +82
    >
    >
    >
    
Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext
    > context) +47
    >
    >
    
Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext
    > context) +46
> Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext
    > context, Boolean track) +212
    >
> Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
    > context) +401
    >    Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler
    handler, Type
    > service, IDictionary additionalArguments) +174
    >    Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler
    handler, Type
    > service) +47
    >
    >    Castle.MicroKernel.DefaultKernel.get_Item(Type service) +245
    >    Castle.MicroKernel.DefaultKernel.Resolve(Type service) +118
    >
    >
    
Castle.MonoRail.WindsorExtension.WindsorControllerFactory.CreateController(Type
    > controllerType) +46
    >
    >
    >
    
Castle.MonoRail.WindsorExtension.WindsorControllerFactory.CreateController(String
    > area, String controller) +301
    >
    >
    Castle.MonoRail.Framework.MonoRailHttpHandlerFactory.GetHandler(HttpContext
    > context, String requestType, String url, String pathTranslated) +691
    >
    >
    > [MonoRailException: Error creating controller Css]
    >
    >
    Castle.MonoRail.Framework.MonoRailHttpHandlerFactory.GetHandler(HttpContext
    > context, String requestType, String url, String pathTranslated)
    +1077
    >    System.Web.HttpApplication.MapHttpHandler(HttpContext
    context, String
    > requestType, VirtualPath path, String pathTranslated, Boolean
    useAppConfig)
    > +193
    >
    >
    >
    
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    > +93
    >    System.Web.HttpApplication.ExecuteStep(IExecutionStep step,
    Boolean&amp;
    > completedSynchronously) +155
    >
    >
    >
    > --
    > Jan
    >
    > --
    > You received this message because you are subscribed to the
    Google Groups
    > "Castle Project Users" group.
    > To post to this group, send email to
    [email protected]
    <mailto:[email protected]>.
    > To unsubscribe from this group, send email to
    > [email protected]
    <mailto:castle-project-users%[email protected]>.
    > For more options, visit this group at
    > http://groups.google.com/group/castle-project-users?hl=en.
    >

    --
    You received this message because you are subscribed to the Google
    Groups "Castle Project Users" group.
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:castle-project-users%[email protected]>.
    For more options, visit this group at
    http://groups.google.com/group/castle-project-users?hl=en.




--
Jan
--
You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Castle 
Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to