I was hitting it because I wasn't passing "this". I was using DefaultConfiguration as the default field value for config in the PatternLayout.Builder class.
On 25 May 2014 21:46, Remko Popma <[email protected]> wrote: > I meant: ...where you were hitting the constructor loop you mentioned > earlier. > > > On Monday, May 26, 2014, Remko Popma <[email protected]> wrote: > >> I see, so you need this for property substitution in the header/footer. >> In that case you probably need the real config. If it works to pass "this" >> when creating the layout in the DefaultConfiguration constructor, then >> great. (I just assumed that this is where you hit the constructor eternal >> loop.) >> >> >> Sent from my iPhone >> >> On 2014/05/26, at 11:27, Matt Sicker <[email protected]> wrote: >> >> Well, it looks like the only place config is used is if header or footer >> are non-null. There it is used in order to get its StrSubstitutor. >> Otherwise, config is always checked for null. So DefaultConfiguration could >> probably use NullConfiguration, or it could even use null. >> >> Either way, wouldn't it work to use "this" during the >> DefaultConfiguration constructor? That would make the PatternLayout it's >> creating have the most correct configuration set. >> >> >> On 25 May 2014 21:03, Remko Popma <[email protected]> wrote: >> >> Ok, so until now, DefaultConfiguration uses a PatternLayout with a null >> Configuration. But now you're considering a change that requires that >> PatternLayout has a non-null Configuration. >> >> I guess it depends on how you intend to use the PatternLayout's >> Configuration. If all that's needed is for it to be non-null, we could pass >> a NullConfiguration to PatternLayout.createLayout in the >> DefaultConfiguration constructor (passing "this" won't work). >> Is that enough, or does the PatternLayout's Configuration need to be the >> "real" config? >> >> That's why I'm asking why you need this. >> >> Sent from my iPhone >> >> On 2014/05/26, at 10:13, Matt Sicker <[email protected]> wrote: >> >> DefaultConfiguration needs a Layout, and it uses PatternLayout for that. >> In PatternLayout, I don't want its Configuration to be null due to the >> field being used elsewhere by PatternLayout. Thus, to include a >> DefaultConfiguration in PatternLayout, and then a PatternLayout in >> DefaultConfiguration, I have to leak the this reference during construction >> to avoid creating an infinite loop of constructors. >> >> >> On 25 May 2014 20:10, Remko Popma <[email protected]> wrote: >> >> I had a look at the code and it may not be easy to make changes. Can we >> go back a step and can you explain what you're trying to achieve? (What do >> you want to change & why?) >> >> Sent from my iPhone >> >> On 2014/05/26, at 9:08, Matt Sicker <[email protected]> wrote: >> >> Actually, that still leaves the problem of specifying a Configuration for >> the DefaultConfigurationLayout. PatternLayout is final right now, and the >> default pattern is "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - >> %msg%n". >> >> >> On 25 May 2014 19:03, Matt Sicker <[email protected]> wrote: >> >> That sounds like a better idea. Let me see how well it works out in code. >> >> >> On 25 May 2014 18:52, Remko Popma <[email protected]> wrote: >> >> Perhaps DefaultConfigurationLayout would be a better name for such alayout, >> actually. >> >> >> On Monday, May 26, 2014, Remko Popma <[email protected]> wrote: >> >> How about having a DefaultLayout for use *only* by DefaultConfiguration? >> The formatters used by this layout can be hard-coded: level, timestamp, >> message. >> Thoughts? >> >> Sent from my iPhone >> >> On 2014/05/26, at 8:38, Matt Sicker <[email protected]> wrote: >> >> -- Matt Sicker <[email protected]>
