In general, it shouldn't be a problem to mix and match Cayenne objects with other object types. The integration tries hard to distinguish between objects it should analyze in a cayenne-specific manner, and those that should just pass through.
Just looked at the line of code and at the point of failure. I'm guessing that you're calling "resources.getContainerMessages()" from inside a page class? If that's the case, just use resources.getMessages(). getContainerMessages() is useful for component building, if you have a component that is building an model from an object passed to it by its parent, and you want to be able to override the defaults in the parent's messages. But a page has no parent, so getContainerMessages() is null. Robert On Feb 23, 2012, at 2/235:42 PM , Richard Frovarp wrote: > On 02/23/2012 05:30 PM, Robert Zeigler wrote: >> Hey Richard, >> >> What version are you using of: >> the integration module >> Tapestry >> Cayenne >> >> ? >> >> Also, can you tell me what the actual exception was? >> >> Robert >> > tapestry5-cayenne-core (and -server) 0.4 > Tapestry 5.2.6 > > Line of code that threw the exception: > > model = beanModelSource.create(BaseObject.class, true, > resources.getContainerMessages()); > > And the exception to where it hit my code: > > java.lang.NullPointerException > org.apache.tapestry5.internal.TapestryInternalUtils.defaultLabel(TapestryInternalUtils.java:304) > org.apache.tapestry5.internal.beaneditor.PropertyModelImpl.<init>(PropertyModelImpl.java:52) > org.apache.tapestry5.internal.beaneditor.BeanModelImpl.add(BeanModelImpl.java:126) > org.apache.tapestry5.internal.beaneditor.BeanModelImpl.add(BeanModelImpl.java:78) > org.apache.tapestry5.internal.services.BeanModelSourceImpl.create(BeanModelSourceImpl.java:184) > org.apache.tapestry5.internal.services.BeanModelSourceImpl.createEditModel(BeanModelSourceImpl.java:153) > com.googlecode.tapestry5cayenne.services.CayenneBeanModelSource.create(CayenneBeanModelSource.java:59) > edu.ndsu.eci.research.form_generator.pages.Index.initializer(Index.java:45) > > This isn't something I would want backed by Cayenne. I would probably stick > it in JCR or something, but there would be pieces of the application I would > want to use Cayenne. I have not had a chance to look at how to not use the > Cayenne piece for parts of the application. > > Full stack trace: > > java.lang.NullPointerException > org.apache.tapestry5.internal.TapestryInternalUtils.defaultLabel(TapestryInternalUtils.java:304) > org.apache.tapestry5.internal.beaneditor.PropertyModelImpl.<init>(PropertyModelImpl.java:52) > org.apache.tapestry5.internal.beaneditor.BeanModelImpl.add(BeanModelImpl.java:126) > org.apache.tapestry5.internal.beaneditor.BeanModelImpl.add(BeanModelImpl.java:78) > org.apache.tapestry5.internal.services.BeanModelSourceImpl.create(BeanModelSourceImpl.java:184) > org.apache.tapestry5.internal.services.BeanModelSourceImpl.createEditModel(BeanModelSourceImpl.java:153) > com.googlecode.tapestry5cayenne.services.CayenneBeanModelSource.create(CayenneBeanModelSource.java:59) > edu.ndsu.eci.research.form_generator.pages.Index.initializer(Index.java:45) > edu.ndsu.eci.research.form_generator.pages.Index.<init>(Index.java) > org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.<init>(InternalComponentResourcesImpl.java:146) > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.<init>(ComponentPageElementImpl.java:593) > org.apache.tapestry5.internal.structure.ComponentPageElementImpl.<init>(ComponentPageElementImpl.java:609) > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:93) > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:38) > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:82) > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:79) > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063) > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:77) > org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:182) > org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:174) > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1063) > org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:173) > org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:81) > org.apache.tapestry5.internal.services.NonPoolingRequestPageCacheImpl.get(NonPoolingRequestPageCacheImpl.java:74) > org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:55) > org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2326) > org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) > org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) > org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) > org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321) > com.googlecode.tapestry5cayenne.services.CayenneRequestFilter.service(CayenneRequestFilter.java:47) > edu.ndsu.eci.research.form_generator.services.AppModule$1.service(AppModule.java:100) > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984) > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974) > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80) > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272) > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26) > org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928) > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org