[ https://issues.apache.org/jira/browse/MYFACES-3745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13730328#comment-13730328 ]
Leonardo Uribe commented on MYFACES-3745: ----------------------------------------- That one is a long story. Even if both constructors looks similar, they are not the same. One is used when the top facelet is about to be built, and the second one is used as a wrapper to isolate the resolution of each facelet. By historical reasons the call to: faces.getAttributes().put(FaceletContext.FACELET_CONTEXT_KEY, this); was done there and came from facelets 1.1.x. But later I decided to do it right and move that call to the points where the constructor is called, to ensure the right context is available at each time. The line was never removed but the cleanup was done long time ago. In conclusion the constructors are not inconsistent as the title of the improvement (not bug) claims, but the line can be removed safely. > org.apache.myfaces.view.facelets.impl.DefaultFaceletContext constructors are > inconsistent > ----------------------------------------------------------------------------------------- > > Key: MYFACES-3745 > URL: https://issues.apache.org/jira/browse/MYFACES-3745 > Project: MyFaces Core > Issue Type: Bug > Components: JSR-314 > Affects Versions: 2.0.18, 2.1.12 > Reporter: Paul Nicolucci > Priority: Minor > Attachments: MyFaces-3745.patch > > Original Estimate: 1h > Remaining Estimate: 1h > > In MYFACES-3246 the following constructor was updated: > DefaultFaceletContext(FacesContext faces, AbstractFacelet facelet, > FaceletCompositionContext mctx) > It no longer does the following: > //Set FACELET_CONTEXT_KEY on FacesContext attribute map, to > //reflect the current facelet context instance > faces.getAttributes().put(FaceletContext.FACELET_CONTEXT_KEY, this); > Setting the FACELET_CONTEXT_KEY is now done where ever the > DefaultFaceletContext is created for instance in DefaultFacelet. > DefaultFaceletContext ctxWrapper = new > DefaultFaceletContext((DefaultFaceletContext)ctx, this, false); > ctx.getFacesContext().getAttributes().put(FaceletContext.FACELET_CONTEXT_KEY, > ctxWrapper); > However, the other constructor which is actually being called above still > sets the FACELET_CONTEXT_KEY and so it is set in the constructor and then set > again directly after creation. > //Update FACELET_CONTEXT_KEY on FacesContext attribute map, to > //reflect the current facelet context instance > ctx.getFacesContext().getAttributes().put(FaceletContext.FACELET_CONTEXT_KEY, > this); > I think this was just an oversight when fixing this bug. But I think we > should clean this up and I'll provide the trivial patch that can be applied. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira