Ok I have this annoying problem with NullPointerException inside a size() method that is called on Set object. Method looks like this (after serveral mutations...):
Asset.java
Code:
private Set attributeValues;
public Set getAttributeValues() {
TreeSet sorted = new TreeSet();
// log.debug("##" + attributeValues);
if (attributeValues == null) {
log.debug("### attributeValues NULL");
}
if (this.attributeValues != null){
if (!this.attributeValues.isEmpty()) {
sorted.addAll(this.attributeValues);
}
}
return sorted;
}
public void setAttributeValues(Set attributeValues) {
this.attributeValues = attributeValues;
}
Hibernate version: 2.0.6
Mapping documents:Asset.hbm.xml
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.bsi.ams.model">
<class name="Asset" table="asset">
<meta attribute="sync-DAO">false</meta>
<id
name="Id"
type="integer"
column="id"
unsaved-value="0"
>
<generator class="sequence">
<param name="sequence">asset_id_seq</param>
</generator>
</id>
<property
name="AssetId"
column="asset_id"
type="integer"
not-null="true"
insert="false"
/>
<property
name="UpdatedOn"
column="updated_on"
type="timestamp"
not-null="true"
length="8"
/>
<property
name="UpdatedBy"
column="updated_by"
type="string"
not-null="true"
length="3"
/>
<property
name="Current"
column="is_current"
type="boolean"
not-null="false"
length="1"
insert="false"
/>
<property
name="Version"
column="version"
type="integer"
not-null="true"
insert="false"
/>
<many-to-one
name="Type"
column="type_id"
class="Type"
not-null="false"
>
</many-to-one>
<property
name="Code"
column="code"
type="string"
not-null="true"
length="255"
/>
<property
name="RemovedOn"
column="removed_on"
type="timestamp"
not-null="false"
length="8"
/>
<property
name="Manager"
column="manager"
type="string"
not-null="true"
length="3"
/>
<property
name="OwnershipType"
column="ownership_type"
type="string"
not-null="true"
length="20"
/>
<many-to-one
name="Owner"
column="owner_id"
class="Owner"
not-null="false"
>
</many-to-one>
<many-to-one
name="Office"
column="office_id"
class="Office"
not-null="false"
>
</many-to-one>
<property
name="OwnershipBegin"
column="ownership_begin"
type="timestamp"
not-null="false"
length="8"
/>
<property
name="OwnershipEnd"
column="ownership_end"
type="timestamp"
not-null="false"
length="8"
/>
<set name="AttributeValues" inverse="true" lazy="true" where="is_current='true'">
<key column="asset_id"/>
<one-to-many class="AttributeValue"/>
</set>
<set name="Events" inverse="true" where="is_current='true'">
<key column="asset_id"/>
<one-to-many class="Event"/>
</set>
<set name="Notes" inverse="true">
<key column="asset_id"/>
<one-to-many class="Note"/>
</set>
</class>
</hibernate-mapping>
AttributeValue.hbm.xml
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="com.bsi.ams.model">
<class
name="AttributeValue"
table="attribute_value"
>
<meta attribute="sync-DAO">false</meta>
<id
name="Id"
type="integer"
column="id"
unsaved-value="0"
>
<generator class="sequence">
<param name="sequence">attribute_value_id_seq</param>
</generator>
</id>
<property
name="AttrValueId"
type="integer"
column="attribute_value_id"
not-null="false"
insert="false"
/>
<property
name="UpdatedOn"
column="updated_on"
type="timestamp"
not-null="true"
length="8"
/>
<property
name="UpdatedBy"
column="updated_by"
type="string"
not-null="true"
length="3"
/>
<property
name="Current"
column="is_current"
type="boolean"
not-null="false"
length="1"
insert="false"
/>
<property
name="Version"
column="version"
type="integer"
not-null="true"
insert="false"
/>
<property
name="ValBoolean"
column="val_boolean"
type="boolean"
not-null="false"
length="1"
/>
<property
name="ValInt"
column="val_int"
type="java.lang.Integer"
not-null="false"
length="4"
/>
<property
name="ValString"
column="val_string"
type="string"
not-null="false"
/>
<property
name="ValDate"
column="val_date"
type="timestamp"
not-null="false"
length="8"
/>
<many-to-one
name="Attribute"
column="attribute_id"
class="Attribute"
not-null="false"
>
</many-to-one>
<many-to-one
name="Asset"
column="asset_id"
class="Asset"
not-null="false"
>
</many-to-one>
<many-to-one
name="ValElement"
column="val_element"
class="AttributeValgroupElement"
not-null="false"
>
</many-to-one>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():Code:
public class AssetDAOHibernate extends HibernateDaoSupport implements AssetDAO {
public Office getOffice(Integer officeId)
{
return (Office)getHibernateTemplate().load(Office.class, officeId);
}
}
Full stack trace of any exception that occurs:
Quote:
12:40:16,174 INFO [STDOUT] 12:40:16,168 DEBUG [HibernateTransactionManager] Initiating transaction rollback after commit exception
org.springframework.orm.hibernate.HibernateSystemException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues; nested exception is net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
Caused by:
net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:99)
at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:253)
at net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2502)
at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2486)
at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2281)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2260)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:507)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy118.getOffice(Unknown Source)
at com.bsi.ams.web.controller.AddAssetStage1Controller.onBindAndValidate(AddAssetStage1Controller.java:94)
at org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:376)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:248)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:317)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor879.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:96)
... 55 more
Caused by: java.lang.NullPointerException
at net.sf.hibernate.collection.Set.isEmpty(Set.java:115)
at com.bsi.ams.model.Asset.getAttributeValues(Asset.java:695)
... 59 more
12:40:16,175 INFO [STDOUT] 12:40:16,175 DEBUG [HibernateTransactionManager] Rolling back Hibernate transaction on Session [net.sf.hibernate.impl.SessionImpl@8ed7ea]
12:40:16,176 INFO [STDOUT] 12:40:16,176 DEBUG [HibernateTransactionManager] Triggering afterCompletion synchronization
12:40:16,176 INFO [STDOUT] 12:40:16,176 DEBUG [TransactionSynchronizationManager] Clearing transaction synchronization
12:40:16,176 INFO [STDOUT] 12:40:16,176 DEBUG [TransactionSynchronizationManager] Removed value [org.springframework.jdbc.datasource.ConnectionHolder@df8456] for key [org.jboss.resource.adapter.jdbc.WrapperDataSource@43d9cf] from thread [http-127.0.0.1-8080-1]
12:40:16,177 INFO [STDOUT] 12:40:16,177 DEBUG [DataSourceUtils] Resetting isolation level of JDBC Connection [org.jboss.resource.adapter.jdbc.WrappedConnection@33f0cf] to 2
12:40:16,177 INFO [STDOUT] 12:40:16,177 DEBUG [HibernateTransactionManager] Not closing pre-bound Hibernate Session [net.sf.hibernate.impl.SessionImpl@8ed7ea] after transaction
12:40:16,179 INFO [STDOUT] 12:40:16,177 ERROR [ErrorController] Unexpected exception:
org.springframework.orm.hibernate.HibernateSystemException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues; nested exception is net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
Caused by:
net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:99)
at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:253)
at net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2502)
at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2486)
at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2281)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2260)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:507)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy118.getOffice(Unknown Source)
at com.bsi.ams.web.controller.AddAssetStage1Controller.onBindAndValidate(AddAssetStage1Controller.java:94)
at org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:376)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:248)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:317)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor879.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:96)
... 55 more
Caused by: java.lang.NullPointerException
at net.sf.hibernate.collection.Set.isEmpty(Set.java:115)
at com.bsi.ams.model.Asset.getAttributeValues(Asset.java:695)
... 59 more
12:40:16,184 INFO [STDOUT] 12:40:16,182 DEBUG [DispatcherServlet] Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name '/errors/error500'; model is {error={errorExceptionMsg=Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues; nested exception is net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
Stack trace exception:
org.springframework.orm.hibernate.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:597)
org.springframework.orm.hibernate.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:604)
org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:515)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy118.getOffice(Unknown Source)
com.bsi.ams.web.controller.AddAssetStage1Controller.onBindAndValidate(AddAssetStage1Controller.java:94)
org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:376)
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:248)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:317)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:613)
}}
org.springframework.orm.hibernate.HibernateSystemException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues; nested exception is net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
Caused by:
net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:99)
at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:253)
at net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2502)
at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2486)
at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2281)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2260)
at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:61)
at org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:507)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy118.getOffice(Unknown Source)
at com.bsi.ams.web.controller.AddAssetStage1Controller.onBindAndValidate(AddAssetStage1Controller.java:94)
at org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:376)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:248)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.Ap
12:40:16,185 INFO [STDOUT] plicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:317)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor879.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:96)
... 55 more
Caused by: java.lang.NullPointerException
at net.sf.hibernate.collection.Set.isEmpty(Set.java:115)
at com.bsi.ams.model.Asset.getAttributeValues(Asset.java:695)
... 59 more
12:40:16,186 INFO [STDOUT] 12:40:16,186 DEBUG [DefaultListableBeanFactory] No bean named '/errors/error500' found in org.springframework.beans.factory.support.DefaultListableBeanFactory@7ed3e0: defining beans [dataSource,sessionFactory,hibernateInterceptor,characterEncodingFilter,eventTypeDAO,eventTypeServiceTarget,eventTypeService,assetDAO,assetServiceTarget,assetService,eventStateDAO,eventStateServiceTarget,eventStateService,ownerDAO,ownerServiceTarget,ownerService,officeServiceTarget,officeService,sectionDAO,sectionServiceTarget,sectionService,typeDAO,typeServiceTarget,typeService,unitDAO,unitServiceTarget,unitService,attributeDAO,attributeServiceTarget,attributeService,noteDAO,noteServiceTarget,noteService,transactionManager]; root of factory hierarchy
12:40:16,187 INFO [STDOUT] 12:40:16,187 DEBUG [ResourceBundleViewResolver] Cached view [/errors/error500_pl]
12:40:16,187 INFO [STDOUT] 12:40:16,187 DEBUG [InternalResourceViewResolver] Cached view [/errors/error500]
12:40:16,187 INFO [STDOUT] 12:40:16,187 DEBUG [DispatcherServlet] Rendering view [org.springframework.web.servlet.view.JstlView: name '/errors/error500'; URL [/WEB-INF/jsp//errors/error500.jsp]] in DispatcherServlet with name 'ams'
12:40:16,188 INFO [STDOUT] 12:40:16,187 DEBUG [JstlView] Rendering view with name '/errors/error500' with model {error={errorExceptionMsg=Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues; nested exception is net.sf.hibernate.PropertyAccessException: Exception occurred inside getter of com.bsi.ams.model.Asset.AttributeValues
Stack trace exception:
org.springframework.orm.hibernate.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:597)
org.springframework.orm.hibernate.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:604)
org.springframework.orm.hibernate.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:515)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632)
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy118.getOffice(Unknown Source)
com.bsi.ams.web.controller.AddAssetStage1Controller.onBindAndValidate(AddAssetStage1Controller.java:94)
org.springframework.web.servlet.mvc.BaseCommandController.bindAndValidate(BaseCommandController.java:376)
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:248)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.springframework.orm.hibernate.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:170)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:317)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:613)
}} and static attributes {}
Name and version of the database you are using:psql (PostgreSQL) 8.2.5
The generated SQL (show_sql=true):Quote:
12:55:36,971 INFO [STDOUT] Hibernate: select attributev0_.asset_id as asset_id__, attributev0_.id as id__, attributev0_.id as id10_, attributev0_.attribute_value_id as attribut2_10_, attributev0_.updated_on as updated_on10_, attributev0_.updated_by as updated_by10_, attributev0_.is_current as is_current10_, attributev0_.version as version10_, attributev0_.val_boolean as val_bool7_10_, attributev0_.val_int as val_int10_, attributev0_.val_string as val_string10_, attributev0_.val_date as val_date10_, attributev0_.attribute_id as attribu11_10_, attributev0_.asset_id as asset_id10_, attributev0_.val_element as val_ele13_10_, attribute1_.id as id0_, attribute1_.attribute_id as attribut2_0_, attribute1_.updated_on as updated_on0_, attribute1_.updated_by as updated_by0_, attribute1_.is_current as is_current0_, attribute1_.version as version0_, attribute1_.parent as parent0_, attribute1_.name as name0_, attribute1_.is_required as is_requi9_0_, attribute1_.is_unique as is_unique0_, attribute1_.data_type as data_type0_, attribute1_.is_active as is_active0_, attribute1_.unit_id as unit_id0_, attribute1_.type_id as type_id0_, attribute2_.id as id1_, attribute2_.attribute_id as attribut2_1_, attribute2_.updated_on as updated_on1_, attribute2_.updated_by as updated_by1_, attribute2_.is_current as is_current1_, attribute2_.version as version1_, attribute2_.parent as parent1_, attribute2_.name as name1_, attribute2_.is_required as is_requi9_1_, attribute2_.is_unique as is_unique1_, attribute2_.data_type as data_type1_, attribute2_.is_active as is_active1_, attribute2_.unit_id as unit_id1_, attribute2_.type_id as type_id1_, unit3_.id as id2_, unit3_.name as name2_, unit3_.display_name as display_3_2_, unit3_.is_active as is_active2_, type4_.id as id3_, type4_.name as name3_, type4_.description as descript3_3_, type4_.is_active as is_active3_, type4_.section_id as section_id3_, section5_.id as id4_, section5_.name as name4_, section5_.description as descript3_4_, section5_.is_active as is_active4_, attributev6_.id as id5_, attributev6_.attribute_id as attribut2_5_, unit7_.id as id6_, unit7_.name as name6_, unit7_.display_name as display_3_6_, unit7_.is_active as is_active6_, attributev8_.id as id7_, attributev8_.attribute_id as attribut2_7_, attributev9_.id as id8_, attributev9_.val_int as val_int8_, attributev9_.val_string as val_string8_, attributev9_.val_boolean as val_bool4_8_, attributev9_.val_date as val_date8_, attributev9_.valgroup_id as valgroup6_8_, attributev9_.parent as parent8_, attributev10_.id as id9_, attributev10_.attribute_id as attribut2_9_ from attribute_value attributev0_ left outer join attribute attribute1_ on attributev0_.attribute_id=attribute1_.id left outer join attribute attribute2_ on attribute1_.parent=attribute2_.id left outer join unit unit3_ on attribute2_.unit_id=unit3_.id left outer join type type4_ on attribute2_.type_id=type4_.id left outer join section section5_ on type4_.section_id=section5_.id left outer join attribute_valgroup attributev6_ on attribute2_.id=attributev6_.attribute_id left outer join unit unit7_ on attribute1_.unit_id=unit7_.id left outer join attribute_valgroup attributev8_ on attribute1_.id=attributev8_.attribute_id left outer join attribute_valgroup_element attributev9_ on attributev0_.val_element=attributev9_.id left outer join attribute_valgroup attributev10_ on attributev9_.valgroup_id=attributev10_.id where attributev0_.asset_id=? and attributev0_.is_current='true'
Debug level Hibernate log excerpt: