Hi Alex, I have fixed this potential NPE in SVN trunk.
Can't you directly pass your Component's context to the Application constructor instead of having to recreate it manually via the internal 'createContext()' method? Best regards, Jerome -----Message d'origine----- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Alex Milowski Envoyé : mardi 13 mai 2008 02:52 À : [email protected] Objet : Issues with Directory and "Custom" contexts I'm loading applications directly from jar files and constructing their context. I ran into a problem where an application that uses the Directory restlet would generate a null pointer exception. That is, if I construct the context as: Context appContext = new Context(getLogger()); then I get this stack trace: java.lang.NullPointerException at com.noelios.restlet.application.ApplicationClientDispatcher.parentHandle(App licationClientDispatcher.java:105) at com.noelios.restlet.application.ApplicationClientDispatcher.doHandle(Applica tionClientDispatcher.java:90) at com.noelios.restlet.TemplateDispatcher.handle(TemplateDispatcher.java:101) at org.restlet.Uniform.handle(Uniform.java:95) at org.restlet.Uniform.get(Uniform.java:83) at com.noelios.restlet.local.DirectoryResource.<init>(DirectoryResource.java:17 0) at com.noelios.restlet.Engine.createDirectoryResource(Engine.java:292) at org.restlet.Directory.findTarget(Directory.java:159) at org.restlet.Finder.handle(Finder.java:316) at org.restlet.Filter.doHandle(Filter.java:137) at org.restlet.Filter.handle(Filter.java:180) at org.restlet.Filter.doHandle(Filter.java:137) at com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:117) at org.restlet.Filter.handle(Filter.java:180) at org.restlet.Filter.doHandle(Filter.java:137) at org.restlet.Filter.handle(Filter.java:180) at com.noelios.restlet.ChainHelper.handle(ChainHelper.java:140) at com.noelios.restlet.application.ApplicationHelper.handle(ApplicationHelper.j ava:103) at org.restlet.Application.handle(Application.java:305) I can solve this by constructing the application context from the component as: Context appContext = Engine.getInstance().createHelper(MyComponent.this).createContext(getLogger( ).getName()); This seems rather non-obvious.... :( --Alex Milowski

