Vincent,
When I start my application I get a NPE, see below, with this instruction (in CheckStartup.doIt):
List<Payslip> payslips = getHibernateTemplate(context).find("from Payslip");
The value of the argument "propertyName" sent to AbstractComponentDescriptor.getPropertyDescriptor is "_org.popsuite.hr.model.Contract.payslipsIndexBackref".
Indeed there is no such property name in the model (or in view and frontend configuration files). I put Contract model below.
Regards
Pierre
<bean
id="Contract"
class="org.jspresso.framework.model.descriptor.entity.basic.BasicEntityDescriptor">
<constructor-arg value="org.popsuite.hr.model.Contract" />
<!--
<property name="ancestorDescriptors">
<list>
<ref local="identifiableContract" />
</list>
</property>
-->
<property name="propertyDescriptors">
<list>
<bean parent="refType">
<property name="name" value="worker" />
<property name="referencedDescriptor" ref="Worker" />
<property name="reverseRelationEnd" ref="Worker-contracts" />
<property name="mandatory" value="true" />
</bean>
<bean parent="refType">
<property name="name" value="job" />
<property name="referencedDescriptor" ref="Job" />
</bean>
<bean parent="refType">
<property name="name" value="refPeriodType" />
<property name="referencedDescriptor" ref="ReferencePeriodType" />
</bean>
<bean parent="refType">
<property name="name" value="effectivity" />
<property name="referencedDescriptor" ref="DateInterval" />
</bean>
<bean parent="calendarType">
<property name="name" value="start" />
<property name="delegateWritable" value="true"/>
<property name="delegateClassName" value="org.popsuite.hr.model.extension.ContractExtension" />
</bean>
<bean parent="calendarType">
<property name="name" value="end" />
<property name="delegateWritable" value="true"/>
<property name="delegateClassName" value="org.popsuite.hr.model.extension.ContractExtension" />
</bean>
<bean parent="refType">
<property name="name" value="grossWage" />
<property name="referencedDescriptor" ref="Money" />
<property name="delegateWritable" value="true"/>
<property name="delegateClassName" value="org.popsuite.hr.model.extension.ContractMapper" />
</bean>
<bean parent="refType">
<property name="name" value="forJspressoMapping_GrossWage" />
<property name="referencedDescriptor" ref="Money" />
<property name="sqlName" value="GROSS_WAGE"/>
<property name="i18nNameKey" value="contract.gross.wage"/>
</bean>
<bean parent="refType">
<property name="name" value="paymentDay" />
<property name="referencedDescriptor" ref="PaymentDay" />
</bean>
<ref local="Contract-payslips" />
</list>
</property>
<property name="serviceDelegateClassNames">
<map>
<entry key="org.popsuite.hr.model.service.ContractService"
value="org.popsuite.hr.model.service.ContractServiceDelegate" />
</map>
</property>
<property name="serviceDelegateBeanNames">
<map>
<entry key="org.popsuite.hr.model.service.PayrollService"
value="contractPayrollServiceDelegate" />
</map>
</property>
</bean>
<bean
id="Contract-payslips"
parent="collectionType">
<property name="name" value="payslips" />
<property name="composition" value="true" />
<property name="referencedDescriptor" >
<bean
parent="collection">
<property name="collectionInterface" value="java.util.List" />
<property name="elementDescriptor" ref="Payslip" />
</bean>
</property>
</bean>
==================================================================================================
java.lang.NullPointerException
at org.jspresso.framework.model.descriptor.basic.AbstractComponentDescriptor.getPropertyDescriptor(AbstractComponentDescriptor.java:245)
at org.jspresso.framework.model.component.basic.AbstractComponentInvocationHandler.straightGetProperty(AbstractComponentInvocationHandler.java:573)
at org.jspresso.framework.model.component.basic.AbstractComponentInvocationHandler.straightSetProperty(AbstractComponentInvocationHandler.java:1080)
at org.jspresso.framework.model.component.basic.AbstractComponentInvocationHandler.straightSetProperties(AbstractComponentInvocationHandler.java:1074)
at org.jspresso.framework.model.component.basic.AbstractComponentInvocationHandler.invoke(AbstractComponentInvocationHandler.java:173)
at org.jspresso.framework.model.entity.basic.BasicEntityInvocationHandler.invoke(BasicEntityInvocationHandler.java:92)
at $Proxy25.straightSetProperties(Unknown Source)
at org.jspresso.framework.application.backend.persistence.hibernate.ControllerAwareEntityProxyInterceptor.onLoad(ControllerAwareEntityProxyInterceptor.java:163)
at org.hibernate.event.def.DefaultPreLoadEventListener.onPreLoad(DefaultPreLoadEventListener.java:41)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:148)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877)
at org.hibernate.loader.Loader.doQuery(Loader.java:752)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:930)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:921)
at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:913)
at org.popsuite.hr.development.CheckStartup.doIt(CheckStartup.java:55)
at org.popsuite.hr.development.CheckStartup.execute(CheckStartup.java:22)
at org.jspresso.framework.application.backend.AbstractBackendController.execute(AbstractBackendController.java:143)
at org.jspresso.framework.application.frontend.controller.AbstractFrontendController.executeBackend(AbstractFrontendController.java:653)
at org.jspresso.framework.application.frontend.controller.AbstractFrontendController.execute(AbstractFrontendController.java:230)
at org.jspresso.framework.application.frontend.controller.swing.DefaultSwingController.execute(DefaultSwingController.java:279)
at org.jspresso.framework.application.frontend.controller.swing.DefaultSwingController$3.actionPerformed(DefaultSwingController.java:602)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at org.jvnet.substance.utils.RolloverButtonListener.mouseReleased(RolloverButtonListener.java:109)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at org.jspresso.framework.util.swing.WaitCursorEventQueue.dispatchEvent(WaitCursorEventQueue.java:56)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at org.jspresso.framework.util.swing.WaitCursorEventQueue.dispatchEvent(WaitCursorEventQueue.java:56)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception occurred during event dispatching:
java.lang.NullPointerException
at java.text.StringCharacterIterator.<init>(StringCharacterIterator.java:58)
at java.text.StringCharacterIterator.<init>(StringCharacterIterator.java:47)
at org.jspresso.framework.util.html.HtmlHelper.escapeForHTML(HtmlHelper.java:97)
at org.jspresso.framework.application.frontend.controller.swing.DefaultSwingController.handleException(DefaultSwingController.java:347)
at org.jspresso.framework.application.frontend.controller.AbstractFrontendController.execute(AbstractFrontendController.java:234)
at org.jspresso.framework.application.frontend.controller.swing.DefaultSwingController.execute(DefaultSwingController.java:279)
at org.jspresso.framework.application.frontend.controller.swing.DefaultSwingController$3.actionPerformed(DefaultSwingController.java:602)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at org.jvnet.substance.utils.RolloverButtonListener.mouseReleased(RolloverButtonListener.java:109)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at org.jspresso.framework.util.swing.WaitCursorEventQueue.dispatchEvent(WaitCursorEventQueue.java:56)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at org.jspresso.framework.util.swing.WaitCursorEventQueue.dispatchEvent(WaitCursorEventQueue.java:56)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
