Hi Clovis, I just uploaded a patch to MYFACES-3051 that should solve your problem. I built the bundle locally and uploaded it to [1].
Could you please try this bundle in your project and check if it works? Thanks a lot! Regards, Jakob [1] http://people.apache.org/~jakobk/artifacts/myfaces-bundle-2.0.5-SNAPSHOT-3051-patch.jar 2011/2/22 Jakob Korherr <[email protected]>: > Hi Leo, > > I agree that with you that the proposed fix via the additional export > packages is quick and dirty. > > However, I think MYFACES-3051 could solve this problem anyway, but I'm > not totally sure. I will provide a patch for it later today, then we > can test it. > > Regards, > Jakob > > 2011/2/22 Leonardo Uribe <[email protected]>: >> Hi >> >> The problem presented here is related to the custom OSGi setup used. In >> theory, the default ResourceHandler implementation uses the Thread Context >> Class Loader (TCCL) to load its resources. That includes everything inside >> META-INF/resources and for MyFaces everything inside >> META-INF/internal-resources, but across jar files. OSGi by default does not >> set the TCCL, but MyFaces expects that, so the problem finally appears. >> >> The first consideration is the fix on the manifest proposed is questionable. >> At start META-INF/resources/javax.faces is not a java package!. Why should >> MyFaces export that as a package?. That just does not make sense. Even if it >> works, it is a quick fix that does not solves the main problem. >> >> The problem is similar to the one with OSGi and SPI interfaces (scan files >> through META-INF/services in different jars using a discovery mechanism). To >> solve this problem in a friendly way, MyFaces has a new interface called >> org.apache.myfaces.spi.ServiceProviderFinder, so users can implement this >> interface to help MyFaces to find the files through bundles. >> >> Here there are two solutions: >> >> 1. Install a TCCL that could scan through bundles the resources. >> 2. Create a custom ResourceHandler implementation that implement OSGi >> specific rules. >> >> It is possible to apply the hack proposed (add the additional entries on >> myfaces bundle manifest). I don't see any side effect of doing that, but >> note it is not a full solution (so in principle it is safe to apply the >> changes proposed). >> >> regards, >> >> Leonardo Uribe >> >> 2011/2/22 Jakob Korherr <[email protected]> >> >>> Hi Clovis, >>> >>> I agree that this issue (MYFACES-3044) should be fixed and not closed >>> as invalid. Thus I just reopened it. >>> >>> However, before I commit your proposed solution, are there any >>> objections? Leonardo? >>> >>> Regards, >>> Jakob >>> >>> 2011/2/22 Mark Struberg <[email protected]>: >>> > Hi Clovis! >>> > >>> > Please note that there is a new myfaces-2.0.4 out since last week. Afaik >>> this got a bit love in regards to the OSGi part. >>> > >>> > If you like to submit patches, then please open a Jira and provide a svn >>> diff against the latest trunk from >>> > >>> > svn co https://svn.apache.org/repos/asf/myfaces/current20 myfaces-trunk >>> > >>> > current20 contains all svn references you need to build the latest >>> MyFaces2 version. >>> > >>> > LieGrue, >>> > strub >>> > >>> > --- On Tue, 2/22/11, [email protected] < >>> [email protected]> wrote: >>> > >>> >> From: [email protected] <[email protected]> >>> >> Subject: NullPointerException with OSGi Bundle >>> >> To: [email protected] >>> >> Date: Tuesday, February 22, 2011, 8:05 AM >>> >> Hello, >>> >> >>> >> using the OSGi Bundle of MyFaces >>> >> (myfaces-bundle-2.0.3.jar), I get first a >>> >> warning: >>> >> WARNING: Resource referenced by resourceName jsf.js and >>> >> libraryName >>> >> javax.faces not found in call to >>> >> ResourceHandler.createResource. It will >>> >> be silenty ignored. >>> >> >>> >> and then a NullPointerException: >>> >> javax.faces.FacesException: java.lang.NullPointerException >>> >> at >>> >> org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap( >>> >> ExceptionHandlerImpl.java:241) >>> >> at >>> >> org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle( >>> >> ExceptionHandlerImpl.java:156) >>> >> at >>> >> org.apache.myfaces.lifecycle.LifecycleImpl.render( >>> >> LifecycleImpl.java:258) >>> >> at >>> >> javax.faces.webapp.FacesServlet.service(FacesServlet.java:191) >>> >> ... >>> >> Caused by: java.lang.NullPointerException >>> >> at >>> >> >>> org.apache.myfaces.shared_impl.renderkit.html.util.ResourceUtils.renderDefaultJsfJsInlineIfNecessary( >>> >> ResourceUtils.java:204) >>> >> at >>> >> >>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd( >>> >> HtmlTextRendererBase.java:69) >>> >> at >>> >> javax.faces.component.UIComponentBase.encodeEnd( >>> >> UIComponentBase.java:519) >>> >> at >>> >> javax.faces.component.UIComponent.encodeAll( >>> >> UIComponent.java:626) >>> >> at >>> >> javax.faces.component.UIComponent.encodeAll( >>> >> UIComponent.java:622) >>> >> at >>> >> javax.faces.component.UIComponent.encodeAll( >>> >> UIComponent.java:622) >>> >> at >>> >> javax.faces.component.UIComponent.encodeAll( >>> >> UIComponent.java:622) >>> >> at >>> >> >>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView( >>> >> FaceletViewDeclarationLanguage.java:1320) >>> >> at >>> >> org.apache.myfaces.application.ViewHandlerImpl.renderView( >>> >> ViewHandlerImpl.java:263) >>> >> at >>> >> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute( >>> >> RenderResponseExecutor.java:85) >>> >> at >>> >> org.apache.myfaces.lifecycle.LifecycleImpl.render( >>> >> LifecycleImpl.java:239) >>> >> ... 23 more >>> >> >>> >> I submitted a bug, but it was closed, as this is the >>> >> expected behavior. I >>> >> was able to solve the problem by adding >>> >> META-INF.internal-resources.javax.faces >>> >> and >>> >> META-INF.services >>> >> to the exported packages in MANIFEST.MF. but I'd like to >>> >> know anyway how I >>> >> can avoid the NullPointerException without patching myself >>> >> the file >>> >> myfaces-bundle-2.0.3.jar. >>> >> >>> >> (The application I used is the first example from the book >>> >> >>> >> "JavaServerFaces 2.0, The complete reference" from Ed Burns >>> >> & Chris >>> >> Schalk) >>> >> >>> >> Thanks in advance >>> >> >>> >> Clovis Seragiotto >>> >> >>> >> ______________________________________ >>> >> Raiffeisen Bausparkasse Gesellschaft m.b.H., 1050 Wien, >>> >> Wiedner Hauptstraße 94, Firmenbuchnummer 116309v, >>> >> Handelsgericht Wien, DVR 0066257, UID ATU15350206 >>> >> >>> >> Diese E-Mail kann vertrauliche und geschuetzte >>> >> Informationen enthalten. Wenn diese E-Mail nicht für Sie >>> >> bestimmt ist, bitten wir Sie, uns unverzueglich zu >>> >> informieren und sie zu loeschen. >>> >> >>> >> This e-mail message may contain information, which is >>> >> confidential and protected. If you are not the intended >>> >> recipient of this message, we ask you to inform us >>> >> immediately and delete the message afterwards. >>> >> >>> > >>> > >>> > >>> > >>> >>> >>> >>> -- >>> Jakob Korherr >>> >>> blog: http://www.jakobk.com >>> twitter: http://twitter.com/jakobkorherr >>> work: http://www.irian.at >>> >> > > > > -- > Jakob Korherr > > blog: http://www.jakobk.com > twitter: http://twitter.com/jakobkorherr > work: http://www.irian.at > -- Jakob Korherr blog: http://www.jakobk.com twitter: http://twitter.com/jakobkorherr work: http://www.irian.at

