Skip to main content

JSF 2.0 composite components with method-valued attributes

64 replies [Last post]
nzinoviev
Offline
Joined: 2008-06-11

Hello,

I wonder if method-expression passing through a composite component attribute is supposed to work. I just want be able to specify an "action" method which would be passed to a command button. Unfortunately, the code works only if the attribute has the name "action". And I wanted to get this method from a controller. Here's a code sample:

<?xml version='1.0' encoding='UTF-8' ?>

it is used later like:

This text below will also not be displayed.

it is used later like

The problem is that if I rename the attribute to say 'act' - it stops working, I get a

StandardWrapperValve[FacesServlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw
exception java.lang.IllegalStateException: java.lang.IllegalAccessException:
Class javax.faces.component.StateHolderSaver can not access a member of
class com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression
with modifiers "public"

at javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:112)
at javax.faces.component.UIComponentBase.restoreAttachedState(UIComponentBase.java:1488)
at javax.faces.component.UICommand.restoreState(UICommand.java:340)
at javax.faces.component.html.HtmlCommandButton.restoreState(HtmlCommandButton.java:861)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1200)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1234)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1234)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIComponentBase.processRestoreState(UIComponentBase.java:1215)
at javax.faces.component.UIViewRoot.processRestoreState(UIViewRoot.java:844)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:174)
at com.sun.faces.application.view.ViewHandlingStrategy.restoreView(ViewHandlingStrategy.java:130)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.restoreView(FaceletViewHandlingStrategy.java:271)
at com.sun.faces.application.view.MultiViewHandler.restoreView(MultiViewHandler.java:168)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:174)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:107)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.IllegalAccessException: Class javax.faces.component.StateHolderSaver can not access a member of class com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLo
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.Class.newInstance0(Class.java:349)
at java.lang.Class.newInstance(Class.java:308)
at javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:106)
... 50 more
|#]

(I am running glassfish 2.1)

My first guess was I have wrong method signature (BTW when it is just String a() I get
a class not found exception - author page error, may be one cannot use a String as a shortcut here?). But looking at the code in jsf-ri/src/com/sun/faces/application/view/MultiViewHandler.java...
well it seems there's a lot of things done if attribute name is 'special', but if not - well even targets are ignored (although it looks like if targets is empty nothing happens at all). May be it's just a missing line or two? BTW: Also I am not sure the whole thing works for "String a( )",
may be method arguments are not set to empty Class array then. But I may be wrong here.

Actually, I wanted to use a 'controller' and do something like:

and of course then I cannot choose the name of the attribute.

Also it's a bit strange Jim's controller example uses only attribute-properties and
no attribute-methods. I guess turning switchlist example into a controller based one,
as Ed originally suggested, would be a lot of clue here.

Thanks a lot in advance!

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
nzinoviev
Offline
Joined: 2008-06-11

Finally I decided to try the current version (it would work in future anyway).
To be honest, first I tried a version built from svn sources but ran into a problem
with method value expressions, then I tried Mar 13 nightly and found that .parent returned the direct parent component not necessary the composite one (for instance h:panelGroup) - I do not think this is worth mentioning in detail because it seems fixed. Then I found theres Mar 15 nightly and tried that one. Parent works fine, but I still have problems with method expressions, I guess something simple broke, here are the details, I'll try to investigate further..

the exception:
javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: /resources/navbutton/nav.xhtml @57,122 action="#{compositeComponent.attrs.navigation.goNav}": The class 'ezcomp.NavigationHandler' does not have the property 'goNav'.
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:95)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:795)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1279)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: javax.el.PropertyNotFoundException: /resources/navbutton/nav0.xhtml @64,122 action="#{compositeComponent.attrs.navigation.goNav}": The class 'ezcomp.NavigationHandler' does not have the property 'goNav'.
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:110)
at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:251)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)

to reproduce it change nav sample to:
basic-ezcomp/nav0.xhtml



and basic-ezcomp/resources/navbutton/nav.xhtml to



nzinoviev
Offline
Joined: 2008-06-11

I think the problem is caused by changes in line 199 of jsf-ri/src/com/sun/faces/facelets/tag/TagAttributeImpl.java
result = new AttributeLookupMethodExpression(getValueExpression(ctx, MethodExpression.class));
getValueExpression()
now uses
ExpressionFactory f = ctx.getExpressionFactory();
return new TagValueExpression(this, f.createValueExpression(ctx,
this.value, type));
probably that should be TagMethodExpression..
or may be it should not be wrapped in TagValueExpression at all...

b_b
Offline
Joined: 2009-05-18

I have create new thread for this question
http://forums.java.net/jive/thread.jspa?threadID=61675&tstart=0
--------------------------------------------------------

Is it possible to send only bean class to composite component as attribute and set method attributes in composite component? I have found Ed Burns comment on Jim Driscoll blog http://weblogs.java.net/blog/driscoll/archive/2008/12/jsf_20_wiring_u_1..... He claims that this is possible.

EXAMPLE:

The interface declaration would then look like:

displayName="Switchlist Component"
shortDescription="A basic example of the composite component feature">









I have try it but as attribute value in composite component I get actual class name (like ezcomp.InOutBean@15b1773). I think it is better to send backing bean class only to composite component and set method names and field values there.

Thanks in advance.
Sorry if I ask on wrong place.

Message was edited by: b_b

nzinoviev
Offline
Joined: 2008-06-11

It just appeared to me.
There may be a serious problem.
When using in a page, the user knows the structure and can append parent if needed although it may be inconvenient -- there's one file per compositeComponent and so compositeComponent.attrs should ultimately refer to attributes of that component no matter where it occurs.
Now what about renderUsingPage children problem -- then one has no control over the used expressions. Suppose I have ez:wrapper and a ez:wrapper1 which implementation uses <..renderUsingPageChildren/>
now the outer component component uses


looks like one has to use parent.parent in case of wrapper1, which is absolutely impossible to guess!

Actually, why there's any difference in using h:panelGroup or ez:wrapper ??!

compositeComponent.parent is a very useful feature but it has a different purpose.

I hope I'm missing some trick here and the above will work fine, but...

nzinoviev
Offline
Joined: 2008-06-11

One even more crazy idea: if you want expressions like compositeComponent.attrs to work as is in the final tree, since composite component interfaces have names - may be it is better to use them instead? This will work since implementation of a composite component cannot use the same component. So for ez:nav we would use
ez:nav.attrs.label instead of compositeComponent.attrs.label this would mean: find nearest parent with name ez:nav and take it's attribute called 'label'. May be it's even more readable, except the "ez:" we have to add to deal with name clashes (may be we do not have to?). And then name on the interface gets some meaning...
May be nav.clientId or nav.attrs.label would be equally readable...
(One may also wonder why we have to specify "attrs" at all, why not reserve parent and clientId names... or just use .attrs.parent notation only if there's an attribute with name 'parent'). Sorry for this criticizm.

nzinoviev
Offline
Joined: 2008-06-11

Or better compositeComponent.ez:nav.attrs of course we should have a way to distinguish between composite component attributes and all the other things in context.
Anyway, it looks like a kind of ancestor-or-self::name expression would solve the problem.
I wonder if EL wouldn't chalk at ':' in ".ez:nav."?.. Of course one can always use ['ez:nav'].
Probably, it could be made non-namespace aware if "ez:" is not specified, this would work in 99% of cases and be almost intuitive.. (#{compositeComponent.nav.attrs.label})
Other solution is to rewrite compositeComponent expressions on the parsing phase:
#{compositeComponent.attrs.label} to #{compositeComponent.ancestorOrSelf.nav.attrs.label})

rlubke
Offline
Joined: 2003-08-21

The issue you logged [1] in reference to this forum entry has been resolved. The fix will be available in tonight's nightly build.

[1] https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=1017

nzinoviev
Offline
Joined: 2008-06-11

Thank you very much. The explanation is not quite clear at the beginning but it all becomes clear after reading about the example.
I wonder if targets attributes are of any use now? Well, may be there are special cases.
I never quite understood the reason for them except that may be they provide some clue to the system.

I have an obvious question now that we have compositeComponent.parent
(how long do we have it? BTW: it would be very nice to know a place where compositeComponent properties are documented cause that is the kind of magic one doesn't want to miss),so suppose I have my:column component which I know is always used inside my:table component. Of course, I cannot impose such a restriction, but still
am I right that inside the my:column implementation I can access parent attributes via
compositeComponent.parent.attrs ? I remember I was considering this would be very useful because my table uses a controller object which otherwise I have to attach to all the columns manually (there's my orphaned thread somewhere here on writting a custom h:dataTable analog via composite components). Probably, it still doesn't help to render my:column header facets at the my:column header and their bodies inside my:table body. The only solution I can think of is rendering my:column in two different modes base on some external variable set by my:table..

nzinoviev
Offline
Joined: 2008-06-11

Well, by looking at the jsf-ri/src/com/sun/faces/el/CompositeComponentAttributesELResolver.java
I found that parent and attrs are the only properties now.

rlubke
Offline
Joined: 2003-08-21

Actually never mind. I've got a fix for this and will push new bits to j.net shortly.

nzinoviev
Offline
Joined: 2008-06-11

I just tried the one from nightly, it seems that the problem has been solved.
I'll try to do a more tough testing tomorrow.
One note -- it looks like glassfish admin gui is broken again.

rlubke
Offline
Joined: 2003-08-21

> One note -- it looks like glassfish admin gui is
> broken again.

Specifics on what is broken would be useful here as well as what version of GF.

nzinoviev
Offline
Joined: 2008-06-11

I am using Glassfish 2.1, I just tried the latest build of jsf 2.0, still get this exception for adminui application:

[#|2009-03-06T17:06:23.498+0300|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=76;_ThreadName=httpWorkerThread-4848-1;_RequestID=3f8c6b91-62aa-4942-b5c2-
|WebModule[] StandardWrapper.Throwable
java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:800)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:304)
at javax.faces.webapp.FacesServlet.init(FacesServlet.java:166)
at com.sun.enterprise.tools.admingui.servlet.DelayedInitFacesServlet.init(DelayedInitFacesServlet.java:81)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:848)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]

Ryan Lubke

On 3/6/09 6:27 AM, webtier@javadesktop.org wrote:
> I am using Glassfish 2.1, I just tried the latest build of jsf 2.0, still get this exception for adminui application:
>
How are you upgrading JSF in GFv2?
>
> [#|2009-03-06T17:06:23.498+0300|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=76;_ThreadName=httpWorkerThread-4848-1;_RequestID=3f8c6b91-62aa-4942-b5c2-
> |WebModule[] StandardWrapper.Throwable
> java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
> at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:800)
> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:304)
> at javax.faces.webapp.FacesServlet.init(FacesServlet.java:166)
> at com.sun.enterprise.tools.admingui.servlet.DelayedInitFacesServlet.init(DelayedInitFacesServlet.java:81)
> at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1194)
> at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:848)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
> |#]
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=335529
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

I guess in Jan I used istaller-jar, now its not available, so I am just copying 2 jar files to lib directory. The problems is that it wasn't working in Jan, then used to be working about a month ago (I remember reading about corresponding fix somewhere) and two weeks ago it broke again. That's why I concluded that there's something in the jsf 2.0 sources.

Ryan Lubke

On 3/6/09 10:03 AM, webtier@javadesktop.org wrote:
> I guess in Jan I used istaller-jar, now its not available, so I am just copying 2 jar files to lib directory. The problems is that it wasn't working in Jan, then used to be working about a month ago (I remember reading about corresponding fix somewhere) and two weeks ago it broke again. That's why I concluded that there's something in the jsf 2.0 sources.
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
See the release notes for the steps we recommend you take to upgrade to
Mojarra 2.0.0 in V2.

https://javaserverfaces.dev.java.net/nonav/rlnotes/2.0.0/releasenotes.html

> http://forums.java.net/jive/thread.jspa?messageID=335578
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

Well, I saw those, my domain.xml contains

Ryan Lubke

On 2/24/09 8:29 PM, Lincoln Baxter, III wrote:
> I'm getting this exception now as well, since updating to the 2/20
> snapshot. I had previously been using the January 29 2009 snapshot.
We've published a new snapshot that resolves issue 999.
Feel free to give it a shot.
>
> On Sat, 2009-02-21 at 12:35 -0800, webtier@javadesktop.org wrote:
>> Ok, the facet problem seems fixed. But my application uses
>> client side state saving. So I get the following exception:
>>
>> java.io.NotSerializableException: com.sun.faces.application.view.FacesBeanInfo
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
>> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>> at java.util.HashMap.writeObject(HashMap.java:1001)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>> at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:251)
>> at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:131)
>> at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:112)
>> at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:149)
>> at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
>> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:315)
>> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
>> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
>> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
>> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
>> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
>> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
>> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>>
>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
>> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
>> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
>>
>>
>>
>> It seems that com.sun.faces.application.view.FacesBeanInfo
>> has been recently introduced...
>> Inspired by jsf-ri/src/com/sun/faces/facelets/tag/composite/CompositeComponentBeanInfo.java
>> (which extends FacesBeanInfo and implements Externalizable),
>> I changed FacesBeanInfo to:
>> package com.sun.faces.application.view;
>>
>> import java.beans.BeanDescriptor;
>> import java.beans.BeanInfo;
>> import java.beans.SimpleBeanInfo;
>>
>>
>> import java.io.Externalizable;
>> import java.io.ObjectOutput;
>> import java.io.IOException;
>> import java.io.ObjectInput;
>>
>>
>> public class FacesBeanInfo extends SimpleBeanInfo implements BeanInfo, Externalizable {
>>
>> private BeanDescriptor descriptor = null;
>>
>>
>> @Override
>> public BeanDescriptor getBeanDescriptor() {
>> return descriptor;
>> }
>>
>> public void setBeanDescriptor(BeanDescriptor newDescriptor) {
>> descriptor = newDescriptor;
>> }
>>
>>
>> // ----------------------------------------------Methods From Externalizable
>>
>>
>> public void writeExternal(ObjectOutput out) throws IOException {
>>
>> out.writeObject(getBeanDescriptor().getBeanClass());
>> out.writeObject(getBeanDescriptor().getDisplayName());
>> out.writeObject(getBeanDescriptor().getName());
>> out.writeObject(getBeanDescriptor().getShortDescription());
>> out.writeObject(getBeanDescriptor().isExpert());
>> out.writeObject(getBeanDescriptor().isHidden());
>> out.writeObject(getBeanDescriptor().isPreferred());
>>
>> java.util.Enumeration enumeration = getBeanDescriptor().attributeNames();
>> while(enumeration.hasMoreElements())
>> {
>> out.writeObject(Boolean.TRUE);
>>
>> String name = enumeration.nextElement();
>> out.writeObject(name);
>> out.writeObject(getBeanDescriptor().getValue(name));
>> }
>> out.writeObject(Boolean.FALSE);
>> }
>>
>>
>> public void readExternal(ObjectInput in)
>> throws IOException, ClassNotFoundException {
>>
>> setBeanDescriptor(new BeanDescriptor((Class) in.readObject()));
>> this.getBeanDescriptor().setDisplayName((String)in.readObject());
>> this.getBeanDescriptor().setName((String)in.readObject());
>> this.getBeanDescriptor().setShortDescription((String)in.readObject());
>> this.getBeanDescriptor().setExpert((Boolean)in.readObject());
>> this.getBeanDescriptor().setHidden((Boolean)in.readObject());
>> this.getBeanDescriptor().setPreferred((Boolean)in.readObject());
>>
>> while((Boolean)in.readObject())
>> {
>> String name = (String)in.readObject();
>> this.getBeanDescriptor().setValue(name, in.readObject());
>> }
>>
>> }
>> }
>>
>> (I found that it is important to save BeanDescriptor attributes (values))
>> This seems to solve the problem. But I'm not sure this is the right thing to do:
>> for instance, CompositeComponentBeanInfo saves only getBeanDescriptor().getBeanClass() and does not save BeanDescriptor values...
>>
>> I guess this problem could be reproduced by svitching ez-comp sample to client side state saving, but I haven't tried that.
>> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>>
>> http://forums.java.net/jive/thread.jspa?messageID=333220
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:webtier-unsubscribe@glassfish.dev.java.net
>> For additional commands, e-mail:webtier-help@glassfish.dev.java.net
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

Lincoln Baxter, III

I'm getting this exception now as well, since updating to the 2/20
snapshot. I had previously been using the January 29 2009 snapshot.

On Sat, 2009-02-21 at 12:35 -0800, webtier@javadesktop.org wrote:

> Ok, the facet problem seems fixed. But my application uses
> client side state saving. So I get the following exception:
>
> java.io.NotSerializableException: com.sun.faces.application.view.FacesBeanInfo
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.HashMap.writeObject(HashMap.java:1001)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:251)
> at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:131)
> at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:112)
> at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:149)
> at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:315)
> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
>
>
>
> It seems that com.sun.faces.application.view.FacesBeanInfo
> has been recently introduced...
> Inspired by jsf-ri/src/com/sun/faces/facelets/tag/composite/CompositeComponentBeanInfo.java
> (which extends FacesBeanInfo and implements Externalizable),
> I changed FacesBeanInfo to:
> package com.sun.faces.application.view;
>
> import java.beans.BeanDescriptor;
> import java.beans.BeanInfo;
> import java.beans.SimpleBeanInfo;
>
>
> import java.io.Externalizable;
> import java.io.ObjectOutput;
> import java.io.IOException;
> import java.io.ObjectInput;
>
>
> public class FacesBeanInfo extends SimpleBeanInfo implements BeanInfo, Externalizable {
>
> private BeanDescriptor descriptor = null;
>
>
> @Override
> public BeanDescriptor getBeanDescriptor() {
> return descriptor;
> }
>
> public void setBeanDescriptor(BeanDescriptor newDescriptor) {
> descriptor = newDescriptor;
> }
>
>
> // ----------------------------------------------Methods From Externalizable
>
>
> public void writeExternal(ObjectOutput out) throws IOException {
>
> out.writeObject(getBeanDescriptor().getBeanClass());
> out.writeObject(getBeanDescriptor().getDisplayName());
> out.writeObject(getBeanDescriptor().getName());
> out.writeObject(getBeanDescriptor().getShortDescription());
> out.writeObject(getBeanDescriptor().isExpert());
> out.writeObject(getBeanDescriptor().isHidden());
> out.writeObject(getBeanDescriptor().isPreferred());
>
> java.util.Enumeration enumeration = getBeanDescriptor().attributeNames();
> while(enumeration.hasMoreElements())
> {
> out.writeObject(Boolean.TRUE);
>
> String name = enumeration.nextElement();
> out.writeObject(name);
> out.writeObject(getBeanDescriptor().getValue(name));
> }
> out.writeObject(Boolean.FALSE);
> }
>
>
> public void readExternal(ObjectInput in)
> throws IOException, ClassNotFoundException {
>
> setBeanDescriptor(new BeanDescriptor((Class) in.readObject()));
> this.getBeanDescriptor().setDisplayName((String)in.readObject());
> this.getBeanDescriptor().setName((String)in.readObject());
> this.getBeanDescriptor().setShortDescription((String)in.readObject());
> this.getBeanDescriptor().setExpert((Boolean)in.readObject());
> this.getBeanDescriptor().setHidden((Boolean)in.readObject());
> this.getBeanDescriptor().setPreferred((Boolean)in.readObject());
>
> while((Boolean)in.readObject())
> {
> String name = (String)in.readObject();
> this.getBeanDescriptor().setValue(name, in.readObject());
> }
>
> }
> }
>
> (I found that it is important to save BeanDescriptor attributes (values))
> This seems to solve the problem. But I'm not sure this is the right thing to do:
> for instance, CompositeComponentBeanInfo saves only getBeanDescriptor().getBeanClass() and does not save BeanDescriptor values...
>
> I guess this problem could be reproduced by svitching ez-comp sample to client side state saving, but I haven't tried that.
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333220
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
[att1.html]

Ryan Lubke

On 2/24/09 8:29 PM, Lincoln Baxter, III wrote:
> I'm getting this exception now as well, since updating to the 2/20
> snapshot. I had previously been using the January 29 2009 snapshot.
Yes, this is due to a new feature that was added at the time of the
build. We've logged an issue (999) to track it.
>
> On Sat, 2009-02-21 at 12:35 -0800, webtier@javadesktop.org wrote:
>> Ok, the facet problem seems fixed. But my application uses
>> client side state saving. So I get the following exception:
>>
>> java.io.NotSerializableException: com.sun.faces.application.view.FacesBeanInfo
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
>> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>> at java.util.HashMap.writeObject(HashMap.java:1001)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
>> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
>> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
>> at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:251)
>> at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:131)
>> at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:112)
>> at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:149)
>> at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
>> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:315)
>> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
>> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
>> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
>> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
>> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
>> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
>> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
>> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>>
>> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
>> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
>> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
>> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
>> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
>> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
>> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
>> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
>> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
>>
>>
>>
>> It seems that com.sun.faces.application.view.FacesBeanInfo
>> has been recently introduced...
>> Inspired by jsf-ri/src/com/sun/faces/facelets/tag/composite/CompositeComponentBeanInfo.java
>> (which extends FacesBeanInfo and implements Externalizable),
>> I changed FacesBeanInfo to:
>> package com.sun.faces.application.view;
>>
>> import java.beans.BeanDescriptor;
>> import java.beans.BeanInfo;
>> import java.beans.SimpleBeanInfo;
>>
>>
>> import java.io.Externalizable;
>> import java.io.ObjectOutput;
>> import java.io.IOException;
>> import java.io.ObjectInput;
>>
>>
>> public class FacesBeanInfo extends SimpleBeanInfo implements BeanInfo, Externalizable {
>>
>> private BeanDescriptor descriptor = null;
>>
>>
>> @Override
>> public BeanDescriptor getBeanDescriptor() {
>> return descriptor;
>> }
>>
>> public void setBeanDescriptor(BeanDescriptor newDescriptor) {
>> descriptor = newDescriptor;
>> }
>>
>>
>> // ----------------------------------------------Methods From Externalizable
>>
>>
>> public void writeExternal(ObjectOutput out) throws IOException {
>>
>> out.writeObject(getBeanDescriptor().getBeanClass());
>> out.writeObject(getBeanDescriptor().getDisplayName());
>> out.writeObject(getBeanDescriptor().getName());
>> out.writeObject(getBeanDescriptor().getShortDescription());
>> out.writeObject(getBeanDescriptor().isExpert());
>> out.writeObject(getBeanDescriptor().isHidden());
>> out.writeObject(getBeanDescriptor().isPreferred());
>>
>> java.util.Enumeration enumeration = getBeanDescriptor().attributeNames();
>> while(enumeration.hasMoreElements())
>> {
>> out.writeObject(Boolean.TRUE);
>>
>> String name = enumeration.nextElement();
>> out.writeObject(name);
>> out.writeObject(getBeanDescriptor().getValue(name));
>> }
>> out.writeObject(Boolean.FALSE);
>> }
>>
>>
>> public void readExternal(ObjectInput in)
>> throws IOException, ClassNotFoundException {
>>
>> setBeanDescriptor(new BeanDescriptor((Class) in.readObject()));
>> this.getBeanDescriptor().setDisplayName((String)in.readObject());
>> this.getBeanDescriptor().setName((String)in.readObject());
>> this.getBeanDescriptor().setShortDescription((String)in.readObject());
>> this.getBeanDescriptor().setExpert((Boolean)in.readObject());
>> this.getBeanDescriptor().setHidden((Boolean)in.readObject());
>> this.getBeanDescriptor().setPreferred((Boolean)in.readObject());
>>
>> while((Boolean)in.readObject())
>> {
>> String name = (String)in.readObject();
>> this.getBeanDescriptor().setValue(name, in.readObject());
>> }
>>
>> }
>> }
>>
>> (I found that it is important to save BeanDescriptor attributes (values))
>> This seems to solve the problem. But I'm not sure this is the right thing to do:
>> for instance, CompositeComponentBeanInfo saves only getBeanDescriptor().getBeanClass() and does not save BeanDescriptor values...
>>
>> I guess this problem could be reproduced by svitching ez-comp sample to client side state saving, but I haven't tried that.
>> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>>
>> http://forums.java.net/jive/thread.jspa?messageID=333220
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:webtier-unsubscribe@glassfish.dev.java.net
>> For additional commands, e-mail:webtier-help@glassfish.dev.java.net
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

Ryan Lubke

webtier@javadesktop.org wrote:
> Thanks a lot for your answers, sometimes I use ui:remove, but at some point commenting out seemed to work too, it's nice to be warned. Can you comment on the facet issue above, it used to work and now it does not, seems like something is still broken. I've just afraid my last post got lost somehow, sometimes this forum sorts messages in a strange way.
>
Ok, we've fixed the facet problem and pushed new 'nightly' bits to java.net.

> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333084
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

Ok, the facet problem seems fixed. But my application uses
client side state saving. So I get the following exception:

java.io.NotSerializableException: com.sun.faces.application.view.FacesBeanInfo
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.HashMap.writeObject(HashMap.java:1001)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:251)
at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:131)
at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:112)
at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:149)
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:315)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

It seems that com.sun.faces.application.view.FacesBeanInfo
has been recently introduced...
Inspired by jsf-ri/src/com/sun/faces/facelets/tag/composite/CompositeComponentBeanInfo.java
(which extends FacesBeanInfo and implements Externalizable),
I changed FacesBeanInfo to:
package com.sun.faces.application.view;

import java.beans.BeanDescriptor;
import java.beans.BeanInfo;
import java.beans.SimpleBeanInfo;

import java.io.Externalizable;
import java.io.ObjectOutput;
import java.io.IOException;
import java.io.ObjectInput;

public class FacesBeanInfo extends SimpleBeanInfo implements BeanInfo, Externalizable {

private BeanDescriptor descriptor = null;

@Override
public BeanDescriptor getBeanDescriptor() {
return descriptor;
}

public void setBeanDescriptor(BeanDescriptor newDescriptor) {
descriptor = newDescriptor;
}

// ----------------------------------------------Methods From Externalizable

public void writeExternal(ObjectOutput out) throws IOException {

out.writeObject(getBeanDescriptor().getBeanClass());
out.writeObject(getBeanDescriptor().getDisplayName());
out.writeObject(getBeanDescriptor().getName());
out.writeObject(getBeanDescriptor().getShortDescription());
out.writeObject(getBeanDescriptor().isExpert());
out.writeObject(getBeanDescriptor().isHidden());
out.writeObject(getBeanDescriptor().isPreferred());

java.util.Enumeration enumeration = getBeanDescriptor().attributeNames();
while(enumeration.hasMoreElements())
{
out.writeObject(Boolean.TRUE);

String name = enumeration.nextElement();
out.writeObject(name);
out.writeObject(getBeanDescriptor().getValue(name));
}
out.writeObject(Boolean.FALSE);
}

public void readExternal(ObjectInput in)
throws IOException, ClassNotFoundException {

setBeanDescriptor(new BeanDescriptor((Class) in.readObject()));
this.getBeanDescriptor().setDisplayName((String)in.readObject());
this.getBeanDescriptor().setName((String)in.readObject());
this.getBeanDescriptor().setShortDescription((String)in.readObject());
this.getBeanDescriptor().setExpert((Boolean)in.readObject());
this.getBeanDescriptor().setHidden((Boolean)in.readObject());
this.getBeanDescriptor().setPreferred((Boolean)in.readObject());

while((Boolean)in.readObject())
{
String name = (String)in.readObject();
this.getBeanDescriptor().setValue(name, in.readObject());
}

}
}

(I found that it is important to save BeanDescriptor attributes (values))
This seems to solve the problem. But I'm not sure this is the right thing to do:
for instance, CompositeComponentBeanInfo saves only getBeanDescriptor().getBeanClass() and does not save BeanDescriptor values...

I guess this problem could be reproduced by svitching ez-comp sample to client side state saving, but I haven't tried that.

Ryan Lubke

I've logged an issue [1] to track this. Hope to get to it early this week.

[1] https://javaserverfaces.dev.java.net/issues/show_bug.cgi?id=999

webtier@javadesktop.org wrote:
> Ok, the facet problem seems fixed. But my application uses
> client side state saving. So I get the following exception:
>
> java.io.NotSerializableException: com.sun.faces.application.view.FacesBeanInfo
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at java.util.HashMap.writeObject(HashMap.java:1001)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:251)
> at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:131)
> at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:112)
> at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:149)
> at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:221)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:315)
> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
>
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
>
>
>
> It seems that com.sun.faces.application.view.FacesBeanInfo
> has been recently introduced...
> Inspired by jsf-ri/src/com/sun/faces/facelets/tag/composite/CompositeComponentBeanInfo.java
> (which extends FacesBeanInfo and implements Externalizable),
> I changed FacesBeanInfo to:
> package com.sun.faces.application.view;
>
> import java.beans.BeanDescriptor;
> import java.beans.BeanInfo;
> import java.beans.SimpleBeanInfo;
>
>
> import java.io.Externalizable;
> import java.io.ObjectOutput;
> import java.io.IOException;
> import java.io.ObjectInput;
>
>
> public class FacesBeanInfo extends SimpleBeanInfo implements BeanInfo, Externalizable {
>
> private BeanDescriptor descriptor = null;
>
>
> @Override
> public BeanDescriptor getBeanDescriptor() {
> return descriptor;
> }
>
> public void setBeanDescriptor(BeanDescriptor newDescriptor) {
> descriptor = newDescriptor;
> }
>
>
> // ----------------------------------------------Methods From Externalizable
>
>
> public void writeExternal(ObjectOutput out) throws IOException {
>
> out.writeObject(getBeanDescriptor().getBeanClass());
> out.writeObject(getBeanDescriptor().getDisplayName());
> out.writeObject(getBeanDescriptor().getName());
> out.writeObject(getBeanDescriptor().getShortDescription());
> out.writeObject(getBeanDescriptor().isExpert());
> out.writeObject(getBeanDescriptor().isHidden());
> out.writeObject(getBeanDescriptor().isPreferred());
>
> java.util.Enumeration enumeration = getBeanDescriptor().attributeNames();
> while(enumeration.hasMoreElements())
> {
> out.writeObject(Boolean.TRUE);
>
> String name = enumeration.nextElement();
> out.writeObject(name);
> out.writeObject(getBeanDescriptor().getValue(name));
> }
> out.writeObject(Boolean.FALSE);
> }
>
>
> public void readExternal(ObjectInput in)
> throws IOException, ClassNotFoundException {
>
> setBeanDescriptor(new BeanDescriptor((Class) in.readObject()));
> this.getBeanDescriptor().setDisplayName((String)in.readObject());
> this.getBeanDescriptor().setName((String)in.readObject());
> this.getBeanDescriptor().setShortDescription((String)in.readObject());
> this.getBeanDescriptor().setExpert((Boolean)in.readObject());
> this.getBeanDescriptor().setHidden((Boolean)in.readObject());
> this.getBeanDescriptor().setPreferred((Boolean)in.readObject());
>
> while((Boolean)in.readObject())
> {
> String name = (String)in.readObject();
> this.getBeanDescriptor().setValue(name, in.readObject());
> }
>
> }
> }
>
> (I found that it is important to save BeanDescriptor attributes (values))
> This seems to solve the problem. But I'm not sure this is the right thing to do:
> for instance, CompositeComponentBeanInfo saves only getBeanDescriptor().getBeanClass() and does not save BeanDescriptor values...
>
> I guess this problem could be reproduced by svitching ez-comp sample to client side state saving, but I haven't tried that.
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333220
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

Ryan Lubke

We've check in a fix for this and have pushed new bits to java.net.

Thanks,
-rl

webtier@javadesktop.org wrote:
> I managed to reproduce this with nav button + wrapper
> (I removed html tags as they seem to ruin the post):
>
>
>

> h1 Page 1 /h1
>
>

>
>

>
> Even with ez:nav commented out!
> but wrapper now contains h:outputLink:
>
>
>
>

>
> above
> a link
>
> below
>

>
>
> here's the stacktrace:
>
>
> (I'll post the component tree in the next post)
> java.io.IOException: Unable to find composite component parent for component j_id19
> at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:75)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
> at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=332852
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

Ok, I picked that up, works fine, I'll try to check it with my whole application.
One funny thing:



works but


does not - I get a javax.el.PropertyNotFoundException: The class 'ezcomp.NavigationHandler' does not have the property 'goNav2'.

Probably that's expected, because it tries to render comment text.
I've seen in your samples that you escape such cases by ommiting
'#'. Am I right that this worked (?) yesturday because of the bugs?

Well, I am not sure whether it's worth starting to discuss whether expressions in comments should be rendered.. Probably, that's the only way to generate a complicated comment. But I guess using the expression inside a xml comment
is the only example of a thing not achievable by h:outputText...

Sorry,you can ignore this for now, I'm sure you have a lot of more important things to do.

javax.el.PropertyNotFoundException: The class 'ezcomp.NavigationHandler' does not have the property 'goNav2'.
at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:579)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:281)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
at com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:211)
at com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:152)
at com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:72)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:76)
at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:186)
at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:71)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)

Ryan Lubke

webtier@javadesktop.org wrote:
> Ok, I picked that up, works fine, I'll try to check it with my whole application.
> One funny thing:
>
>
>

> works but
>
>

>
> does not - I get a javax.el.PropertyNotFoundException: The class 'ezcomp.NavigationHandler' does not have the property 'goNav2'.
>
> Probably that's expected, because it tries to render comment text.
> I've seen in your samples that you escape such cases by ommiting
> '#'. Am I right that this worked (?) yesturday because of the bugs?
>
Correct.
> Well, I am not sure whether it's worth starting to discuss whether expressions in comments should be rendered.. Probably, that's the only way to generate a complicated comment. But I guess using the expression inside a xml comment
> is the only example of a thing not achievable by h:outputText...
>
I would recommend using to comment components out within a view.
> Sorry,you can ignore this for now, I'm sure you have a lot of more important things to do.
>
> javax.el.PropertyNotFoundException: The class 'ezcomp.NavigationHandler' does not have the property 'goNav2'.
> at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:579)
> at javax.el.BeanELResolver.getValue(BeanELResolver.java:281)
> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175)
> at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
> at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
> at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
> at com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:211)
> at com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:152)
> at com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:72)
> at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:76)
> at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:186)
> at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:71)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
> at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333006
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

Ryan Lubke

webtier@javadesktop.org wrote:
> I wonder if it's okay that String doesn't work when opposed to java.lang.String..
>
> Finally I managed to get this running in my program, even for a controller case!
>
> But I ran into the following crazy issue :
>
> I am using a facelet-component with the same attribute name right above the composite component (seems to be some name clash):
>
>
>

>
> unless I comment those lines out the following
> does not work
>
>
>
>

>
> I get:
> #{compositeComponent.attrs.act}: java.lang.NullPointerException
> javax.faces.FacesException: #{compositeComponent.attrs.act}: java.lang.NullPointerException
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:110)
> at javax.faces.component.UICommand.broadcast(UICommand.java:387)
> at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
> at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
> at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> Caused by: javax.faces.el.MethodNotFoundException: java.lang.NullPointerException
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:104)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
> ... 34 more
> Caused by: java.lang.NullPointerException
> at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:263)
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
> ... 35 more
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
Just checked in a fix for this stacktrace.

> http://forums.java.net/jive/thread.jspa?messageID=332732
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

Ryan Lubke

webtier@javadesktop.org wrote:
> It looks like there's still no nightly (it's still Feb 04)
>
> https://javaserverfaces.dev.java.net/servlets/ProjectDocumentList?folder...
>

I've manually pushed a nightly build to java.net. Hopefully we'll have
the automation sorted
out today.

Thanks!
> I'm puzzled because there is one for JSF 1.2.
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=332640
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

I think we still have a composite attributes problem: I changed nav button to








and the label does not show up.
If I move h:outputText outside the wrapper, it works fine.

The nav page now contains:




header-facet


and the wrapper is




above
a link


below

I was dreaming so long to get rid of facelets templates :-(

Ryan Lubke

On 3/6/09 11:17 AM, webtier@javadesktop.org wrote:
> I think we still have a composite attributes problem: I changed nav button to
>
>
>
>
>

>
>
>
>
>
>

>

>
>
> and the label does not show up.
> If I move h:outputText outside the wrapper, it works fine.
>
> The nav page now contains:
>
>
>
>
> header-facet
>

>

>
>
>

>
> and the wrapper is
>
>
>
>

>
>
>
>
> above
> a link
>
>
> below
>

>
At this point, trying to track the issues you're finding via the forums,
is somewhat counter
productive. Could you please log issues for the problems you're
finding? All you need to
do is gain observer status on the javaserverfaces project and then log
the issue using the
issue tracker.
>
> I was dreaming so long to get rid of facelets templates :-(
>
Keep in mind, this is still alpha software. Log the issues and we'll
fix the problem.

> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=335591
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

Thanks for the explanation!
I'm too - puzzled whether I have to start a new thread when I find an issue...

One thing. It just turned out to me that the same works fine for facets,
i.e. if I use
and insertFacet instead of rendersUsingPageChildren, it would work fine.

nzinoviev
Offline
Joined: 2008-06-11

BTW: I tried using a composite component with an attribute called "rendered"
like this:

and ran into
java.lang.IllegalArgumentException
at sun.reflect.GeneratedMethodAccessor1970.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1787)
at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1667)
at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.copyTagAttributesIntoComponentAttributes(CompositeComponentTagHandler.java:128)
at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyCompositeComponent(CompositeComponentTagHandler.java:189)
at com.sun.faces.facelets.tag.jsf.CompositeComponentTagHandler.applyNextHandler(CompositeComponentTagHandler.java:155)
at com.sun.faces.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:192)
at com.sun.faces.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:90)
at com.sun.faces.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:101)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:182)
at com.sun.faces.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:376)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:347)
at com.sun.faces.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:106)
at com.sun.faces.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:90)
at com.sun.faces.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:361)
at com.sun.faces.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:192)
at com.sun.faces.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:90)
at com.sun.faces.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:361)
at com.sun.faces.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:192)
at com.sun.faces.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:90)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
at com.sun.faces.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:90)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:80)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:285)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:331)
at com.sun.faces.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:310)
at com.sun.faces.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:181)
at com.sun.faces.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:159)
at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:80)
at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:132)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:543)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:288)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:152)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)

I even tried using it only on client side, but got the same exception. I ended up wrapping it with h:panelGroup with rendered attribute. You may want to improve error reporting...

rlubke
Offline
Joined: 2003-08-21

I've just checked in a fix for this and pushed new bits to the site.

However, in this case, rendered controls the rendering of the composite component within the using page. This will be true for the disabled attribute as well. So if specified, it will not be
exposed to the composite component internals. I've noted that we need to warn the developer when they specify attribute names that are considered reserved.

Given this, if you want to control the rendering of the header within the composite implementation, then I suggest using a different name (i.e. renderHeader).

nzinoviev
Offline
Joined: 2008-06-11

Looks like we're still having bugs with nested composite components.
If you change resources/navbutton/nav.xhtml to
(insert a wrapper around h:commandButton)

... xmlns:ez="http://java.sun.com/jsf/composite/navbutton">







you'll get the following exception:

javax.faces.FacesException: Unable to find named attribute 'act' in the using page composite component reference.
at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:265)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:803)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1247)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Ryan Lubke

On 2/24/09 5:38 PM, webtier@javadesktop.org wrote:
> Looks like we're still having bugs with nested composite components.
> If you change resources/navbutton/nav.xhtml to
> (insert a wrapper around h:commandButton)
>
> ... xmlns:ez="http://java.sun.com/jsf/composite/navbutton">
>
>
>
>

>
>
>
>
>

>

>
Keep in mind that all composite components are naming containers, as
such, your targets attribute is incorrect.
It should be targets=":navbutton"

So if you have:







It will work as expected.
> you'll get the following exception:
>
> javax.faces.FacesException: Unable to find named attribute 'act' in the using page composite component reference.
> at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:265)
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
> at javax.faces.component.UICommand.broadcast(UICommand.java:387)
> at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:803)
> at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1247)
> at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333665
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

This is strange, the thread got updated only now for feb 23-24 posts.
That's a pity I haven't seen ones from Feb 24.
Yeah, I'm using the new version with issue 999 fixed for a few days and it is working fine.

nzinoviev
Offline
Joined: 2008-06-11

Well, actually the trick doesn't work -- for:





I still get
javax.faces.FacesException: Unable to find named attribute 'act' in the using page composite component reference.
at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:265)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1237)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)

rlubke
Offline
Joined: 2003-08-21

I just gave this another shot and I don't see the error.

You're sure you're on the latest nightly?

nzinoviev
Offline
Joined: 2008-06-11

Now there seems to be a facet bug, it's not critical for me, but still is a bug:
add a facet to wrapper:




above
a link


below

now suppose nav1 page contains



header-facet




...

Now initially header-facet is shown, but when I click reload button it disappers,
if I click it again - it appears again - rather weird!

nzinoviev
Offline
Joined: 2008-06-11

Thanks a lot for your answers, sometimes I use ui:remove, but at some point commenting out seemed to work too, it's nice to be warned. Can you comment on the facet issue above, it used to work and now it does not, seems like something is still broken. I've just afraid my last post got lost somehow, sometimes this forum sorts messages in a strange way.

Ryan Lubke

webtier@javadesktop.org wrote:
> Thanks a lot for your answers, sometimes I use ui:remove, but at some point commenting out seemed to work too, it's nice to be warned. Can you comment on the facet issue above, it used to work and now it does not, seems like something is still broken. I've just afraid my last post got lost somehow, sometimes this forum sorts messages in a strange way.
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=333084
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>
No comments on the facet issue. I need to spend some time looking into it.

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

I tried building your first fix an hour ago, it didn't help (but I found that svn repo builds smoothly, while the source.zip does not complaining about (?) "injection" classes).
Now I tried the new nightly bits and it worked fine! Great!

I've also checked that method-signature="String f1()" now works fine too!
(Thanks to Jim :) )

nzinoviev
Offline
Joined: 2008-06-11

Probably that fix was to big.
I tried applying in to my application and get the following exception:
(exactly under the same circumstances (wrapping or enabling facelets component,
but the old workaround doesn't (?) help), but this works fine for nav + wrapper),
I hope stacktrace will be enough (I tried posting the view tree, but it turns into a mess):

Unable to find composite component parent for component j_id71
+- Stack Trace

java.io.IOException: Unable to find composite component parent for component j_id71
at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

Ryan Lubke

webtier@javadesktop.org wrote:
> Probably that fix was to big.
> I tried applying in to my application and get the following exception:
> (exactly under the same circumstances (wrapping or enabling facelets component,
> but the old workaround doesn't (?) help), but this works fine for nav + wrapper),
> I hope stacktrace will be enough (I tried posting the view tree, but it turns into a mess):
>
Unfortunately we'll need more info. The exception means for whatever reason
that no composite component is available, but without more context, it's
hard to understand why.
> Unable to find composite component parent for component j_id71
> +- Stack Trace
>
> java.io.IOException: Unable to find composite component parent for component j_id71
> at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:75)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
> at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
> at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
> at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
> at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
> http://forums.java.net/jive/thread.jspa?messageID=332781
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

I managed to reproduce this with nav button + wrapper
(I removed html tags as they seem to ruin the post):

h1 Page 1 /h1


Even with ez:nav commented out!
but wrapper now contains h:outputLink:




above
a link

below

here's the stacktrace:

(I'll post the component tree in the next post)
java.io.IOException: Unable to find composite component parent for component j_id19
at com.sun.faces.renderkit.html_basic.UsingPageChildrenRenderer.encodeChildren(UsingPageChildrenRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:234)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:106)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at com.sun.faces.renderkit.html_basic.CompositeRenderer.encodeChildren(CompositeRenderer.java:66)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1502)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1505)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:225)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:156)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:97)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

nzinoviev
Offline
Joined: 2008-06-11


javax_faces_location_HEAD


${title}


${title}

Page 1


javax.faces.component.COMPOSITE_FACET_NAME

above

a link

below

nzinoviev
Offline
Joined: 2008-06-11

Should I file a bug or use a separate thread for that?
Probably my next issue is nesting composite components into composite components.

As for the facelets issue - I found that if I use it below my use of composite-components
all works fine, so it seems to be some instantiation issue.

It also solves the outer composite component case!

So probably the issue is not facelets-components related.

nzinoviev
Offline
Joined: 2008-06-11

Actually, I failed to figure out how to report an issue via that issue tracker.
Sorry I ran out of time for today.
One thing: I narrowed the problem down easily:

add a following wrapper component to the nav example:

basic-ezcomp/resources/navbutton/wrapper.xhtml



xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:gc="http://java.sun.com/jsf/composite/components"
xmlns:g="/GteeTagLibrary">





above

below


then use it in the /basic-ezcomp/nav1.xhtml this way:

Page 1



you'll get the mentioned exception (see below)

Now if you do the following:

Page 1




the problem disappears!

the stacktrace:

javax.faces.el.MethodNotFoundException: java.lang.NullPointerException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:104)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.NullPointerException
at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:263)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 35 more

Ryan Lubke

webtier@javadesktop.org wrote:
> Actually, I failed to figure out how to report an issue via that issue tracker.
> Sorry I ran out of time for today.
> One thing: I narrowed the problem down easily:
>
> add a following wrapper component to the nav example:
>
> basic-ezcomp/resources/navbutton/wrapper.xhtml
>
>
>
> > xmlns:ui="http://java.sun.com/jsf/facelets"
> xmlns:c="http://java.sun.com/jsp/jstl/core"
> xmlns:f="http://java.sun.com/jsf/core"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:composite="http://java.sun.com/jsf/composite"
> xmlns:gc="http://java.sun.com/jsf/composite/components"
> xmlns:g="/GteeTagLibrary">
>
>
>
>

>
> above
>
> below
>

>
>
>
>
>
> then use it in the /basic-ezcomp/nav1.xhtml this way:
>

Page 1

>
>
>

>
> you'll get the mentioned exception (see below)
>
> Now if you do the following:
>
>

Page 1

>
>
>
>

>
> the problem disappears!
>
> the stacktrace:
>
> javax.faces.el.MethodNotFoundException: java.lang.NullPointerException
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:104)
> at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
> at javax.faces.component.UICommand.broadcast(UICommand.java:387)
> at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
> at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
> at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
> at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
> at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
> at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
> at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
> at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
> Caused by: java.lang.NullPointerException
> at com.sun.faces.facelets.tag.TagAttributeImpl$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:263)
> at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
> ... 35 more
> [Message sent by forum member 'nzinoviev' (nzinoviev)]
>
Thanks for the info. I've fixed the issue and pushed new 'nightly' bits
to the site for further feedback.

-rl
> http://forums.java.net/jive/thread.jspa?messageID=332740
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
> For additional commands, e-mail: webtier-help@glassfish.dev.java.net
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: webtier-unsubscribe@glassfish.dev.java.net
For additional commands, e-mail: webtier-help@glassfish.dev.java.net

nzinoviev
Offline
Joined: 2008-06-11

It seems that it still does not work if I wrap it with a simple composite component which contains
renderUsingPageChildren...

I got something like

javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: /resources/components/adjustableColumnHeader.xhtml @35,177 action="#{compositeComponent.attrs.tablebean.hideByCheckboxes}": Target Unreachable, 'tablebean' returned null
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:95)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:387)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1096)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:288)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:647)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:579)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: javax.el.PropertyNotFoundException: /resources/components/adjustableColumnHeader.xhtml @35,177 action="#{compositeComponent.attrs.tablebean.hideByCheckboxes}": Target Unreachable, 'tablebean' returned null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 35 more

But probably only a short usecase would help here..