Results 1 to 9 of 9

Thread: Changes on domain obj are committed without calling update

  1. #1
    Join Date
    Sep 2004
    Posts
    15

    Default Changes on domain obj are committed without calling update

    Hi All,

    i'm new to Spring but I like it very much. I started to use the DAO Support with Hibernate a while back and now converting from WebWork to Spring MVC since the Spring MVC offers a bit more flexibility - especially the FormWizard stuff. Now a very strange problems occurs while using OpenSessionInView Filter.
    If an error occurs in my form (which uses a FormCommand and a nestest domain object), the changes are commited to the database when errors occur (which leads to re-display the form with error messages)!!! But an Hibernate update query is fired and it updates the database with the (in this case) empty form field value.
    But in the error/redisplay case i do not call a save or update method of my service object (or underlying dao).

    If i deactivate OpenSessionInView filter the error case behaviour is fine, but if i call the save-method of my DAO i get LazyInitException (no open session). Which is a very strange error, i can't find the cause. When i'm calling the save method of the dao the session is still open.
    I'd prefer not having an open session in my view, but i don't know hot to do it properly. Init all those relations by manually calling getters seems to be kludgy to me.
    Anyway, I can't get it work properly without OpenSessInViewFilter. I guess it would work if i would use the FormCommand object to update the domain object. but that's double work.

    It would be very cool if you guys could give me a hint what's going wrong (why are updates to the database made when dao.update(obj) is NOT called. The DAOs/Service beans worked perfectly with WebWork btw!

    Is there a "better" documentaion of the MVC implementation? I found it very hard to learn by the examples. I could use WebWork efficiently after 1 day - and after 3 days still trying to find out how the Spring MVC works.

    Here's the code of the FormController:
    Code:
    public class UserFormController extends SimpleFormController {
    
        private static final Log log = LogFactory.getLog(UserFormController.class);
        
        private UserService userService = null;
        
        protected Object formBackingObject(HttpServletRequest request) throws ServletException {
            log.error("formBackingObject called");
            User user = userService.getUser(RequestUtils.getRequiredStringParameter(request, "username"));
            return new UserForm(user);
        }
    
        public ModelAndView onSubmit(Object command) throws ServletException {
            log.error("onSubmit called");
            User user = ((UserForm) command).getUser();
    
            userService.saveUser(user);
            return new ModelAndView(new RedirectView("/admin/user/view"), "username", user.getHandle());
        }
    
        public void setUserService(UserService userService) {
            log.error("setUserService called called");
            this.userService = userService;
        }
    }

    FormBackingObject:
    Code:
    public class UserForm {
        
        private User user;
        private String repeatedPassword;
        private boolean newUser;
        
    	public UserForm(User user) {
    		this.user = user;
    		this.newUser = false;
    	}
    
    	public UserForm() {
    		this.user = new User();
    		this.newUser = true;
    	}
    
        public User getUser() {
            return this.user;
        }
    
        public boolean isNewUser() {
    		return newUser;
    	}
    
        
        public void setRepeatedPassword(String repeatedPassword) {
    		this.repeatedPassword = repeatedPassword;
    	}
    
    	public String getRepeatedPassword() {
    		return repeatedPassword;
    	}    
        
    }
    UserFormValidator:
    Code:
    public class UserFormValidator implements Validator {
    
        public boolean supports(Class clazz) {
    		return UserForm.class.isAssignableFrom(clazz);
    	}
    
        public void validate(Object obj, Errors errors) {
    	    ValidationUtils.rejectIfEmpty(errors, "user.fullname", "FIRST_NAME_REQUIRED", "First name is required.");
    	    ValidationUtils.rejectIfEmpty(errors, "user.email", "FIRST_NAME_REQUIRED", "Email is required.");
    	}
    }
    UserServiceImpl:
    Code:
    public class UserServiceImpl implements UserService {
    
            private UserDao userDao;
            private RoleDao roleDao;
    
            public void setUserDao(UserDao userDao) {
                this.userDao = userDao;
            }
    
            public void setRoleDao(RoleDao roleDao) {
                this.roleDao = roleDao;
            }
    
    
            
            // TODO: throw exception
            public boolean authenticate(String username, String password) {
                User user = getUser(username);
                if (user == null || !user.getPassword().equals(password))
                    return false;
                return true;
            }
    
            
            public User getUser(Long id) {
                return userDao.loadUserById(id);
            }
    
            public List getUsers() {
                return userDao.loadAllUsers();
            }
            
            public User getUser(String username) {
                return userDao.loadUserByName(username);
            }
            
            public void saveUser(User user) {
                userDao.saveOrUpdateUser(user);
            }
    
            public void deactivateUser(User user) {
                //TODO: implement deactivate
            }
            public void reactivateUser(User user) {
                //TODO: implement reactivate
            }
            
            public List getRoles() {
                return roleDao.loadAllRoles();
            }
            
            public Role getRole(String name) {
                return roleDao.loadRoleByName(name);
            }
            
            public Role getRole(Long id) {
                return roleDao.loadRoleById(id);
            }
            
            public List getUnassignedRoles(User user) {
                return userDao.loadUnassignedRolesForUser(user);
            }
      
    }
    UserDaoImpl:
    Code:
     public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
    
         
         public List loadUnassignedRolesForUser(User user) throws DataAccessException {
             List uaRoles = new ArrayList();
             List roles = getHibernateTemplate().loadAll(Role.class);
             for (Iterator i = roles.iterator(); i.hasNext();) {
                 Role current = (Role) i.next();
                 // TODO: using contains could be dangerous, try to use named query
                 // but don't know how to obtain the hibernate dialect!?
                 if (!user.getRoles().contains(current)) {
                     uaRoles.add(current);
                 }
             }
             return uaRoles;
        }
     
             
         public User loadUserById(Long id) throws DataAccessException {
            return (User) getHibernateTemplate().load(User.class, id);
        }
    
        public User loadUserByName(String username) throws DataAccessException {
            return (User) getHibernateTemplate().find("select u from User u where u.handle = ?", username).get(0);
        }
    
        public List loadAllUsers() throws DataAccessException {
            return (List) getHibernateTemplate().loadAll(User.class);
        }
        
        public void saveOrUpdateUser(User user) throws DataAccessException {
            getHibernateTemplate().saveOrUpdate(user);
        }
        
    }
    Formbean defininition:
    Code:
    	<bean id="userValidator" class="com.thyrell.pm.user.web.UserFormValidator"/>
    	<bean id="editUserForm"  class="com.thyrell.pm.user.web.UserFormController">
    		<property name="userService"><ref bean="userService"/></property>
    		<property name="validator"><ref local="userValidator"/></property>
    		<property name="commandClass"><value>com.thyrell.pm.user.web.UserForm</value></property>
    		<property name="commandName"><value>userForm</value></property>
    		<property name="formView"><value>EditUserForm</value></property>
    		<property name="successView"><value>EditUserFormRedirect</value></property>
    	</bean>
    Dao/Service Definitions:
    Code:
    	<bean id="pmHibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor">
    		<property name="sessionFactory"><ref local="sessionFactory"/></property>
    	</bean> 
    
    	<bean id="pmTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
    
    <!--	<bean id="pmTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">-->
    <!--		<property name="sessionFactory"><ref local="sessionFactory"/></property>-->
    <!--	</bean>-->
    
    	<bean id="pmTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
    		<property name="transactionManager"><ref bean="pmTransactionManager" /></property>
    		<property name="transactionAttributeSource">
    			<value>
    				com.thyrell.pm.user.UserServiceImpl.*=PROPAGATION_REQUIRED,-DataAccessException
    				com.thyrell.pm.user.UserServiceImpl.get*=PROPAGATION_REQUIRED,readOnly
    			</value>
    		</property>
    	</bean>
    
    
    	<bean id="userDaoTarget" class="com.thyrell.pm.user.dao.UserDaoImpl">
    		<property name="sessionFactory"><ref local="sessionFactory" /></property>
    	</bean>
    	<bean id="userDao" class="org.springframework.aop.framework.ProxyFactoryBean">
    		<property name="proxyInterfaces"><value>com.thyrell.pm.user.dao.UserDao</value></property>
    		<property name="interceptorNames">
    		    <list>
        		  <value>pmHibernateInterceptor</value>
        		  <value>userDaoTarget</value>
        		</list>
    		</property>
    	</bean>
    
    	<bean id="roleDaoTarget" class="com.thyrell.pm.user.dao.RoleDaoImpl">
    		<property name="sessionFactory"><ref local="sessionFactory" /></property>
    	</bean>
    	<bean id="roleDao" class="org.springframework.aop.framework.ProxyFactoryBean">
    		<property name="proxyInterfaces"><value>com.thyrell.pm.user.dao.RoleDao</value></property>
    		<property name="interceptorNames">
    		    <list>
        		  <value>pmHibernateInterceptor</value>
        		  <value>roleDaoTarget</value>
        		</list>
    		</property>
    	</bean>
    
    
    
    	<bean id="userServiceTarget" class="com.thyrell.pm.user.UserServiceImpl">
    		<property name="userDao"><ref bean="userDao" /></property>
    		<property name="roleDao"><ref bean="roleDao" /></property>
    	</bean>
    	<bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
    		<property name="proxyInterfaces"><value>com.thyrell.pm.user.UserService</value></property>
    		<property name="interceptorNames">
    			<value>pmTransactionInterceptor,userServiceTarget</value>
    		</property>
    	</bean>
    Ah, yeah, the OpenSessionInViewFilter overridden (caus of the auto-flush thing):

    Code:
    public class FlushingSpringSessionInViewFilter extends OpenSessionInViewFilter &#123;
    
        public FlushingSpringSessionInViewFilter&#40;&#41; &#123;
        &#125;
    
        protected Session getSession&#40;SessionFactory sessionFactory&#41; throws DataAccessResourceFailureException &#123;
    	    Session session = SessionFactoryUtils.getSession&#40;sessionFactory, true&#41;;
    	    session.setFlushMode&#40;FlushMode.AUTO&#41;;
    	    return session;
    	&#125;
        
        protected void closeSession&#40;Session session, SessionFactory sessionFactory&#41; throws CleanupFailureDataAccessException &#123;
            if &#40;session != null && session.isOpen&#40;&#41; && session.isConnected&#40;&#41;&#41; &#123;
                try &#123;
                    session.flush&#40;&#41;;
                &#125; catch &#40;HibernateException e&#41; &#123;
                    throw new CleanupFailureDataAccessException&#40;"Failed to flush session before close&#58; " + e.getMessage&#40;&#41;, e&#41;;
                &#125;
            &#125;
            super.closeSession&#40;session, sessionFactory&#41;;
        &#125;
    &#125;


    Hope the long code listings help you nailing down the problem.

    Thanks a lot,
    Andi

  2. #2
    Join Date
    Aug 2004
    Location
    Montréal, Canada
    Posts
    845

    Default

    Andi,
    The long listing is very helpfull

    You are applying HibernateInterceptor (which is responsable for handling Hibernate Sessions) to DAOs but the Transactions are applied to the Service Methods. That means:

    a. when OpenSessionInView is not configured:
    When a service method S1 is called, a new transaction will be started, if S1 calls userDAO method D1 to retrieve a user, a new hibernate Session will be opened before the call is done and closed after the call. Now if S1 tries to touch some user's data that are lazily loaded, an Exception will be thrown since there is no session opened!!!

    To solve this problem, you should apply the HibernateInterceptor to Service methods.
    Omar Irbouh

    Spring Modules Team
    http://irbouh.blogspot.com/

  3. #3
    Join Date
    Sep 2004
    Posts
    15

    Default

    Hey Omar,

    thanks for the fast and helpful reply. This nailed it. I thought that the HibernateInterceptor is not closing the session (but OpenSessionInViewFilter is) and just opening one session per request. I'd looked at the config in the last instance before madness, caus it worked with WebWork Anyway it works fine now. I also switchted to OpenSessionInViewInterceptor which seems to be a more natural choice with Spring MVC.

    Btw: What would you use in case of the OpenSessionInViewInterceptor: single session mode or deferred close mode?
    http://www.springframework.org/docs/...terceptor.html

    I tend to singlesession=false but it's slower

    Thanks for your help. It works )
    -andi

  4. #4
    Join Date
    Sep 2004
    Posts
    15

    Default

    Damn, premature happiness ...

    it does not work properly. when i use singel session in the viewinterceptor, and transactioninterceptor and hibernate interceptor wired up as proposed. i get a read only exception when i try to persist the changes.

    if i set AUTO_FLUSH and singleSession=true the changes get persisted even if i don't call a service method (in case of form errors). that's very odd.

    if i use singelsession = false i get: can't associate collection with two sessions exception.

    argh, i'm really getting lost now. tried all combinations of the openSessioninviewInterceptor settings and with and w/o hibernate interceptor, with hibernate transactionmanager with JTA.... no cure.

    -andi

  5. #5
    Join Date
    Sep 2004
    Posts
    15

    Default

    OK, first I thought it could be a dirty hibernate session, but it was not (since update-dynamic/insert-dynamic = false).

    It seems that I found the problem, but i don't understand it. I changed the BO definitions to use the TransactionFactoryBean instead of ProxyFactoryBean with a transaction interceptor:

    Code:
    	<bean id="userServiceTarget" class="com.thyrell.pm.user.UserServiceImpl">
    		<property name="userDao"><ref bean="userDao" /></property>
    		<property name="roleDao"><ref bean="roleDao" /></property>
    	</bean>
    
    	<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    		<property name="target"><ref bean="userServiceTarget"/></property>
    		<property name="transactionManager"><ref bean="pmTransactionManager"/></property>
    		<property name="transactionAttributes">
    		    <props>
    		      <prop key="*">PROPAGATION_REQUIRED</prop>
    		    </props>
    		</property>
    	</bean>
    Open SessionInViewInterceptor ist now standard:
    Code:
    	<bean name="openSessionInViewInterceptor"  class="org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor">
           <property name="sessionFactory"><ref bean="sessionFactory"/></property>
    	</bean>
    This works as expected... so far. At least for the "change-user-details" usecase of my app.

    But i do not understand why using the transactionInterceptor (like in the very first post) does not work properly It would rock if you could explain this to me, i really don't get it....

    Thanks,
    Andi

  6. #6
    Join Date
    Aug 2004
    Location
    Montréal, Canada
    Posts
    845

    Default

    Andi,
    Could you please try the following configuration:
    Code:
       <bean id="pmHibernateInterceptor" class="org.springframework.orm.hibernate.HibernateInterceptor">
         <property name="sessionFactory"><ref bean="sessionFactory"/></property>
       </bean>
    
       <bean id="pmTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
         <property name="sessionFactory"><ref bean="sessionFactory"/></property>
       </bean>
    
       <bean id="pmTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
         <property name="transactionManager"><ref bean="pmTransactionManager"/></property>
         <property name="transactionAttributeSource">
           <value>
             com.thyrell.pm.user.UserServiceImpl.*=PROPAGATION_REQUIRED
           </value>
         </property>
       </bean>
    
       <bean id="userDao" class="com.thyrell.pm.user.dao.UserDaoImpl"> 
          <property name="sessionFactory"><ref local="sessionFactory" /></property> 
       </bean>
    
       <bean id="roleDaoTarget" class="com.thyrell.pm.user.dao.RoleDaoImpl"> 
          <property name="sessionFactory"><ref local="sessionFactory" /></property> 
       </bean> 
    
       <bean id="userServiceTarget" class="com.thyrell.pm.user.UserServiceImpl"> 
          <property name="userDao"><ref bean="userDao" /></property> 
          <property name="roleDao"><ref bean="roleDao" /></property> 
       </bean> 
    
      <bean id="userService" class="org.springframework.aop.framework.ProxyFactoryBean">
        <property name="proxyInterfaces">
         <value>com.thyrell.pm.user.UserService</value>
        </property>
        <property name="interceptorNames">
         <list>
          <value>pmTransactionInterceptor</value>
          <value>pmHibernateInterceptor</value>
          <value>userServiceTarget</value>
         </list>
        </property>
      </bean>
    I am too, very interested to know why using configuration TransactionInterceptor did not work.
    Omar Irbouh

    Spring Modules Team
    http://irbouh.blogspot.com/

  7. #7
    Join Date
    Sep 2004
    Posts
    15

    Default

    Hi Omar,

    thanks for your patience and help. i tried your changes. I get correct behaviour in case of an input error (i.e. empty field). Form is displayed with error messages and there is no UPDATE query sent to the database. Eveything fine. But then if it comes to persist the changes (onSubmit), i get the unloved "Write Operations not allowed in read only-mode exception" (see log1). Strange caus i did not set a readonly flag in the transaction interceptor.

    According to the API docs of OSIVInterceptor i should set FLUSH_AUTO in the OSIVInterceptor, which is, concerning the API docs, is not a good practice. Anyway... but now i'm back at the beginning. In case of a validation error (in the form) hibernate persists changes without calling a save/saveOrUpdate method (second log). That's really wired.

    Either I'm blind and i misunderstand something essential, or there is a bug somewhere.


    Code:
    2004-09-17 11&#58;41&#58;41,896 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - DispatcherServlet with name 'perfectmind' received request for &#91;/admin/user/edit.jspa&#93;
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Testing handler map &#91;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@36d047&#93; in DispatcherServlet with name 'perfectmind'
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&#93; - Looking up handler for &#91;/admin/user/edit.jspa&#93;
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Opening single Hibernate session in OpenSessionInViewInterceptor
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.orm.hibernate.SessionFactoryUtils&#93; - Opening Hibernate session
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - opened session
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Bound value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;41,916 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Testing handler adapter &#91;org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@18b1f8f&#93;
    2004-09-17 11&#58;41&#58;41,926 WARN &#91;com.thyrell.pm.user.web.UserFormController&#93; - formBackingObject called
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;org.springframework.transaction.interceptor.TransactionInterceptor&#93; - Don't need to create transaction for method 'getUser' in class &#91;com.thyrell.pm.user.UserService&#93;&#58; this method isn't transactional
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Found thread-bound session for Hibernate interceptor
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - find&#58; select u from User u where u.handle = ?
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;net.sf.hibernate.engine.QueryParameters&#93; - parameters&#58; &#91;bullgod&#93;
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;net.sf.hibernate.engine.QueryParameters&#93; - named parameters&#58; &#123;&#125;
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;net.sf.hibernate.hql.QueryTranslator&#93; - HQL&#58; select u from com.thyrell.pm.model.User u where u.handle = ?
    2004-09-17 11&#58;41&#58;41,926 DEBUG &#91;net.sf.hibernate.hql.QueryTranslator&#93; - SQL&#58; select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - about to open&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.SQL&#93; - select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    Hibernate&#58; select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - preparing statement
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - binding 'bullgod' to parameter&#58; 1
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - processing result set
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '3' as column&#58; USER_UID
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - result row&#58; 3
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Initializing object from ResultSet&#58; 3
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Hydrating entity&#58; com.thyrell.pm.model.User#3
    2004-09-17 11&#58;41&#58;41,936 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-09-16 22&#58;59&#58;36' as column&#58; TIMEOFLA2_
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-08-30 17&#58;13&#58;17' as column&#58; TIMEOFCR3_
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'bullgod' as column&#58; USERNAME
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'bullgod' as column&#58; y5_
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'andi@bullgod.de' as column&#58; EMAIL
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Andreas Aderhold' as column&#58; FULLNAME
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '1' as column&#58; DEFAULT_8_
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Version&#58; 2004-09-16 22&#58;59&#58;36.0
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - done processing result set &#40;1 rows&#41;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - done closing&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - closing statement
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - total objects hydrated&#58; 1
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolving associations for &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - loading &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - attempting to resolve &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - object not resolved in any cache &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.persister.EntityPersister&#93; - Materializing entity&#58; &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - about to open&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;41&#58;41,946 DEBUG &#91;net.sf.hibernate.SQL&#93; - select contact0_.CONTACT_UID as CONTACT_1_0_, contact0_.TIMEOFLASTUPDATE as TIMEOFLA2_0_, contact0_.TIMEOFCREATION as TIMEOFCR3_0_, contact0_.CONTACTTYPE as CONTACTT4_0_, contact0_.DESCRIPTION as DESCRIPT5_0_, contact0_.HIDDEN as HIDDEN0_, contact0_.FIRSTNAME as FIRSTNAME0_, contact0_.TITLE as TITLE0_, contact0_.LASTNAME as LASTNAME0_, contact0_.STREET as STREET0_, contact0_.ZIPCODE as ZIPCODE0_, contact0_.CITY as CITY0_, contact0_.STATE as STATE0_, contact0_.COUTNTRY as COUTNTRY0_, contact0_.ICQ as ICQ0_, contact0_.AIM as AIM0_, contact0_.MSN as MSN0_, contact0_.YAHOO as YAHOO0_, contact0_.JABBER as JABBER0_, contact0_.PHONE as PHONE0_, contact0_.FAX as FAX0_, contact0_.CELL as CELL0_, contact0_.EMAIL as EMAIL0_, contact0_.USER_UID as USER_UID0_ from CONTACTS contact0_ where contact0_.CONTACT_UID=?
    Hibernate&#58; select contact0_.CONTACT_UID as CONTACT_1_0_, contact0_.TIMEOFLASTUPDATE as TIMEOFLA2_0_, contact0_.TIMEOFCREATION as TIMEOFCR3_0_, contact0_.CONTACTTYPE as CONTACTT4_0_, contact0_.DESCRIPTION as DESCRIPT5_0_, contact0_.HIDDEN as HIDDEN0_, contact0_.FIRSTNAME as FIRSTNAME0_, contact0_.TITLE as TITLE0_, contact0_.LASTNAME as LASTNAME0_, contact0_.STREET as STREET0_, contact0_.ZIPCODE as ZIPCODE0_, contact0_.CITY as CITY0_, contact0_.STATE as STATE0_, contact0_.COUTNTRY as COUTNTRY0_, contact0_.ICQ as ICQ0_, contact0_.AIM as AIM0_, contact0_.MSN as MSN0_, contact0_.YAHOO as YAHOO0_, contact0_.JABBER as JABBER0_, contact0_.PHONE as PHONE0_, contact0_.FAX as FAX0_, contact0_.CELL as CELL0_, contact0_.EMAIL as EMAIL0_, contact0_.USER_UID as USER_UID0_ from CONTACTS contact0_ where contact0_.CONTACT_UID=?
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - preparing statement
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - binding '1' to parameter&#58; 1
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - processing result set
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - result row&#58; 1
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Initializing object from ResultSet&#58; 1
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Hydrating entity&#58; com.thyrell.pm.model.Contact#1
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-09-03 12&#58;40&#58;52' as column&#58; TIMEOFLA2_0_
    2004-09-17 11&#58;41&#58;41,956 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-08-30 17&#58;13&#58;17' as column&#58; TIMEOFCR3_0_
    2004-09-17 11&#58;41&#58;42,136 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Meine privaten Kontaktdaten' as column&#58; DESCRIPT5_0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.BooleanType&#93; - returning 'false' as column&#58; HIDDEN0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Andreas' as column&#58; FIRSTNAME0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Herr' as column&#58; TITLE0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Aderhold' as column&#58; LASTNAME0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Rheinstraße 38' as column&#58; STREET0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '68642' as column&#58; ZIPCODE0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Bürstadt' as column&#58; CITY0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'HE' as column&#58; STATE0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.LocaleType&#93; - returning 'de_DE' as column&#58; COUTNTRY0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '76660606' as column&#58; ICQ0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'herineth' as column&#58; AIM0_
    2004-09-17 11&#58;41&#58;42,146 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '' as column&#58; MSN0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'herineth' as column&#58; YAHOO0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '' as column&#58; JABBER0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '06245-905296' as column&#58; PHONE0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '06245-905246' as column&#58; FAX0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '0174-2026787' as column&#58; CELL0_
    2004-09-17 11&#58;41&#58;42,156 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'privat@bullgod.de' as column&#58; EMAIL0_
    2004-09-17 11&#58;41&#58;42,166 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '3' as column&#58; USER_UID0_
    2004-09-17 11&#58;41&#58;42,166 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Version&#58; 2004-09-03 12&#58;40&#58;52.0
    2004-09-17 11&#58;41&#58;42,166 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - done processing result set &#40;1 rows&#41;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - done closing&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - closing statement
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - total objects hydrated&#58; 1
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolving associations for &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - loading &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - attempting to resolve &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolved object in session cache &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - done materializing entity &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.contacts#3&#93;
    2004-09-17 11&#58;41&#58;42,176 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.userRoles#3&#93;
    2004-09-17 11&#58;41&#58;42,196 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.roles#3&#93;
    2004-09-17 11&#58;41&#58;42,196 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.previousPasswords#3&#93;
    2004-09-17 11&#58;41&#58;42,196 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - adding entity to second-level cache &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Caching&#58; 3
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.hibernate.cache.EhCache&#93; - key&#58; 3
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.store.MemoryStore&#93; - com.thyrell.pm.model.UserCache&#58; MemoryStore hit for 3
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 now&#58; 1095414102236
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Creation Time&#58; 1095413910951 Next To Last Access Time&#58; 1095414083459
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 mostRecentTime&#58; 1095414083459
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Age to Idle&#58; 120000 Age Idled&#58; 18777
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User&#58; Is element with key 3 expired?&#58; false
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Item was already cached&#58; 3
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - done materializing entity &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - initializing non-lazy collections
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Not closing pre-bound Hibernate session after interceptor
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.beans.CachedIntrospectionResults&#93; - Using cached introspection results for class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Creating new nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.beans.CachedIntrospectionResults&#93; - Using cached introspection results for class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;41&#58;42,236 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.model.User.setEmail&#40;java.lang.String&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;41&#58;42,276 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.model.User.setEmail&#40;java.lang.String&#41;&#93; with value &#91;andi@bullgod.de&#93;
    2004-09-17 11&#58;41&#58;42,276 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,276 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,276 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.model.User.setFullname&#40;java.lang.String&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.model.User.setFullname&#40;java.lang.String&#41;&#93; with value &#91;Andi&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Converting String to &#91;class java.lang.Long&#93; using property editor &#91;org.springframework.beans.propertyeditors.CustomNumberEditor@3650ed&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.user.web.UserForm.setId&#40;java.lang.Long&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.user.web.UserForm.setId&#40;java.lang.Long&#41;&#93; with value of type &#91;java.lang.Long&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.validation.ValidationUtils&#93; - Invoking validator &#91;com.thyrell.pm.user.web.UserFormValidator@1ed1dbe&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.Long com.thyrell.pm.user.web.UserForm.getId&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getFullname&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;41&#58;42,286 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,306 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,306 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,306 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,306 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getEmail&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;41&#58;42,306 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;41&#58;42,356 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;41&#58;42,356 DEBUG &#91;org.springframework.validation.ValidationUtils&#93; - Validator found no errors
    2004-09-17 11&#58;41&#58;42,356 DEBUG &#91;com.thyrell.pm.user.web.UserFormController&#93; - No errors -> processing submit
    2004-09-17 11&#58;41&#58;42,356 WARN &#91;com.thyrell.pm.user.web.UserFormController&#93; - onSubmit called
    2004-09-17 11&#58;41&#58;42,356 DEBUG &#91;org.springframework.transaction.interceptor.TransactionInterceptor&#93; - Don't need to create transaction for method 'saveUser' in class &#91;com.thyrell.pm.user.UserService&#93;&#58; this method isn't transactional
    2004-09-17 11&#58;41&#58;42,437 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;42,437 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Found thread-bound session for Hibernate interceptor
    2004-09-17 11&#58;41&#58;42,437 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;42,447 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; bound to thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;42,447 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Not closing pre-bound Hibernate session after interceptor
    2004-09-17 11&#58;41&#58;42,447 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - HandlerExceptionResolver returned ModelAndView &#91;ModelAndView&#58; reference to view with name 'dataAccessFailure'; model is &#123;exception=org.springframework.dao.InvalidDataAccessApiUsageException&#58; Write operations are not allowed in read-only mode &#40;FlushMode.NEVER&#41; - turn your Session into FlushMode.AUTO respectively remove 'readOnly' marker from transaction definition&#125;&#93; for exception
    2004-09-17 11&#58;41&#58;42,447 WARN &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Handler execution resulted in exception - forwarding to resolved error view
    org.springframework.dao.InvalidDataAccessApiUsageException&#58; Write operations are not allowed in read-only mode &#40;FlushMode.NEVER&#41; - turn your Session into FlushMode.AUTO respectively remove 'readOnly' marker from transaction definition
    	at org.springframework.orm.hibernate.HibernateTemplate.checkWriteOperationAllowed&#40;HibernateTemplate.java&#58;901&#41;
    	at org.springframework.orm.hibernate.HibernateTemplate$13.doInHibernate&#40;HibernateTemplate.java&#58;319&#41;
    	at org.springframework.orm.hibernate.HibernateTemplate.execute&#40;HibernateTemplate.java&#58;176&#41;
    	at org.springframework.orm.hibernate.HibernateTemplate.saveOrUpdate&#40;HibernateTemplate.java&#58;317&#41;
    	at com.thyrell.pm.user.dao.UserDaoImpl.saveOrUpdateUser&#40;Unknown Source&#41;
    	at com.thyrell.pm.user.UserServiceImpl.saveUser&#40;Unknown Source&#41;
    	at sun.reflect.NativeMethodAccessorImpl.invoke0&#40;Native Method&#41;
    	at sun.reflect.NativeMethodAccessorImpl.invoke&#40;NativeMethodAccessorImpl.java&#58;39&#41;
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke&#40;DelegatingMethodAccessorImpl.java&#58;25&#41;
    	at java.lang.reflect.Method.invoke&#40;Method.java&#58;324&#41;
    	at org.springframework.aop.framework.AopProxyUtils.invokeJoinpointUsingReflection&#40;AopProxyUtils.java&#58;61&#41;
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint&#40;ReflectiveMethodInvocation.java&#58;149&#41;
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed&#40;ReflectiveMethodInvocation.java&#58;116&#41;
    	at org.springframework.orm.hibernate.HibernateInterceptor.invoke&#40;HibernateInterceptor.java&#58;163&#41;
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed&#40;ReflectiveMethodInvocation.java&#58;138&#41;
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke&#40;TransactionInterceptor.java&#58;56&#41;
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed&#40;ReflectiveMethodInvocation.java&#58;138&#41;
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke&#40;JdkDynamicAopProxy.java&#58;152&#41;
    	at $Proxy0.saveUser&#40;Unknown Source&#41;
    	at com.thyrell.pm.user.web.UserFormController.onSubmit&#40;Unknown Source&#41;
    	at org.springframework.web.servlet.mvc.SimpleFormController.onSubmit&#40;SimpleFormController.java&#58;297&#41;
    	at org.springframework.web.servlet.mvc.SimpleFormController.onSubmit&#40;SimpleFormController.java&#58;272&#41;
    	at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission&#40;SimpleFormController.java&#58;223&#41;
    	at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal&#40;AbstractFormController.java&#58;237&#41;
    	at org.springframework.web.servlet.mvc.AbstractController.handleRequest&#40;AbstractController.java&#58;121&#41;
    	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle&#40;SimpleControllerHandlerAdapter.java&#58;44&#41;
    	at org.springframework.web.servlet.DispatcherServlet.doService&#40;DispatcherServlet.java&#58;495&#41;
    	at org.springframework.web.servlet.FrameworkServlet.service&#40;FrameworkServlet.java&#58;321&#41;
    	at javax.servlet.http.HttpServlet.service&#40;HttpServlet.java&#58;103&#41;
    	at com.caucho.server.dispatch.ServletFilterChain.doFilter&#40;ServletFilterChain.java&#58;113&#41;
    	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage&#40;PageFilter.java&#58;142&#41;
    	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter&#40;PageFilter.java&#58;58&#41;
    	at com.caucho.server.dispatch.FilterFilterChain.doFilter&#40;FilterFilterChain.java&#58;84&#41;
    	at com.caucho.server.cache.CacheFilterChain.doFilter&#40;CacheFilterChain.java&#58;177&#41;
    	at com.caucho.server.webapp.WebAppFilterChain.doFilter&#40;WebAppFilterChain.java&#58;177&#41;
    	at com.caucho.server.dispatch.ServletInvocation.service&#40;ServletInvocation.java&#58;221&#41;
    	at com.caucho.server.http.HttpRequest.handleRequest&#40;HttpRequest.java&#58;263&#41;
    	at com.caucho.server.port.TcpConnection.run&#40;TcpConnection.java&#58;331&#41;
    	at com.caucho.util.ThreadPool.runTasks&#40;ThreadPool.java&#58;464&#41;
    	at com.caucho.util.ThreadPool.run&#40;ThreadPool.java&#58;408&#41;
    	at java.lang.Thread.run&#40;Thread.java&#58;534&#41;
    2004-09-17 11&#58;41&#58;42,447 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Will render view in DispatcherServlet with name 'perfectmind'
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Rendering view with name 'dataAccessFailure' with model &#123;exception=org.springframework.dao.InvalidDataAccessApiUsageException&#58; Write operations are not allowed in read-only mode &#40;FlushMode.NEVER&#41; - turn your Session into FlushMode.AUTO respectively remove 'readOnly' marker from transaction definition&#125; and static attributes &#123;&#125;
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Added model object 'exception' of type &#91;org.springframework.dao.InvalidDataAccessApiUsageException&#93; to request in InternalResourceView 'dataAccessFailure' 
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Forwarded to resource &#91;/template/dataAccessFailure.jsp&#93; in InternalResourceView 'dataAccessFailure'
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Removed value &#91;org.springframework.orm.hibernate.SessionHolder@1b59919&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@1ce663c&#93; from thread &#91;thread-pool-34&#93;
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Closing single Hibernate session in OpenSessionInViewInterceptor
    2004-09-17 11&#58;41&#58;42,457 DEBUG &#91;org.springframework.orm.hibernate.SessionFactoryUtils&#93; - Closing Hibernate session
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - closing session
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - disconnecting session
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - transaction completion
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Successfully completed request
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;org.springframework.web.context.support.XmlWebApplicationContext&#93; - Publishing event in context &#91;XmlWebApplicationContext for namespace 'perfectmind-servlet'&#93;&#58; RequestHandledEvent&#58; url=&#91;/admin/user/edit.jspa&#93;; time=&#91;661ms&#93;; client=&#91;192.168.0.2&#93;; method=&#91;POST&#93;; servlet=&#91;perfectmind&#93;; session=&#91;agaKYleoLqhe&#93;; user=&#91;null&#93;; status=&#91;OK&#93;
    2004-09-17 11&#58;41&#58;42,557 DEBUG &#91;org.springframework.web.context.support.XmlWebApplicationContext&#93; - Publishing event in context &#91;Root XmlWebApplicationContext&#93;&#58; RequestHandledEvent&#58; url=&#91;/admin/user/edit.jspa&#93;; time=&#91;661ms&#93;; client=&#91;192.168.0.2&#93;; method=&#91;POST&#93;; servlet=&#91;perfectmind&#93;; session=&#91;agaKYleoLqhe&#93;; user=&#91;null&#93;; status=&#91;OK&#93;

  8. #8
    Join Date
    Sep 2004
    Posts
    15

    Default

    continued....

    FLUSH_AUTO:

    Code:
    2004-09-17 11&#58;50&#58;48,762 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - DispatcherServlet with name 'perfectmind' received request for &#91;/admin/user/edit.jspa&#93;
    2004-09-17 11&#58;50&#58;48,762 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Testing handler map &#91;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@fd1810&#93; in DispatcherServlet with name 'perfectmind'
    2004-09-17 11&#58;50&#58;48,762 DEBUG &#91;org.springframework.web.servlet.handler.SimpleUrlHandlerMapping&#93; - Looking up handler for &#91;/admin/user/edit.jspa&#93;
    2004-09-17 11&#58;50&#58;48,762 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Opening single Hibernate session in OpenSessionInViewInterceptor
    2004-09-17 11&#58;50&#58;48,762 DEBUG &#91;org.springframework.orm.hibernate.SessionFactoryUtils&#93; - Opening Hibernate session
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - opened session
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Bound value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Testing handler adapter &#91;org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@19a0feb&#93;
    2004-09-17 11&#58;50&#58;48,772 WARN &#91;com.thyrell.pm.user.web.UserFormController&#93; - formBackingObject called
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;org.springframework.transaction.interceptor.TransactionInterceptor&#93; - Don't need to create transaction for method 'getUser' in class &#91;com.thyrell.pm.user.UserService&#93;&#58; this method isn't transactional
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; bound to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;48,772 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Found thread-bound session for Hibernate interceptor
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; bound to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; bound to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - find&#58; select u from User u where u.handle = ?
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.engine.QueryParameters&#93; - parameters&#58; &#91;bullgod&#93;
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.engine.QueryParameters&#93; - named parameters&#58; &#123;&#125;
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - flushing session
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushing entities and processing referenced collections
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Processing unreferenced collections
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Scheduling collection removes/&#40;re&#41;creates/updates
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushed&#58; 0 insertions, 0 updates, 0 deletions to 0 objects
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushed&#58; 0 &#40;re&#41;creations, 0 updates, 0 removals to 0 collections
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Dont need to execute flush
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.hql.QueryTranslator&#93; - HQL&#58; select u from com.thyrell.pm.model.User u where u.handle = ?
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.hql.QueryTranslator&#93; - SQL&#58; select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    2004-09-17 11&#58;50&#58;48,782 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - about to open&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;48,802 DEBUG &#91;net.sf.hibernate.SQL&#93; - select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    Hibernate&#58; select user0_.USER_UID as USER_UID, user0_.TIMEOFLASTUPDATE as TIMEOFLA2_, user0_.TIMEOFCREATION as TIMEOFCR3_, user0_.USERNAME as USERNAME, user0_.`PASSWORD` as y5_, user0_.EMAIL as EMAIL, user0_.FULLNAME as FULLNAME, user0_.DEFAULT_CONTACT_UID as DEFAULT_8_ from USERS user0_ where &#40;user0_.USERNAME=? &#41;
    2004-09-17 11&#58;50&#58;48,802 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - preparing statement
    2004-09-17 11&#58;50&#58;48,802 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - binding 'bullgod' to parameter&#58; 1
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - processing result set
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '3' as column&#58; USER_UID
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - result row&#58; 3
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Initializing object from ResultSet&#58; 3
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Hydrating entity&#58; com.thyrell.pm.model.User#3
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-09-16 22&#58;59&#58;36' as column&#58; TIMEOFLA2_
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-08-30 17&#58;13&#58;17' as column&#58; TIMEOFCR3_
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'bullgod' as column&#58; USERNAME
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'bullgod' as column&#58; y5_
    2004-09-17 11&#58;50&#58;48,812 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'andi@bullgod.de' as column&#58; EMAIL
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Andreas Aderhold' as column&#58; FULLNAME
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '1' as column&#58; DEFAULT_8_
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Version&#58; 2004-09-16 22&#58;59&#58;36.0
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - done processing result set &#40;1 rows&#41;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - done closing&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - closing statement
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - total objects hydrated&#58; 1
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolving associations for &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - loading &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - attempting to resolve &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - object not resolved in any cache &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.persister.EntityPersister&#93; - Materializing entity&#58; &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - about to open&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;48,822 DEBUG &#91;net.sf.hibernate.SQL&#93; - select contact0_.CONTACT_UID as CONTACT_1_0_, contact0_.TIMEOFLASTUPDATE as TIMEOFLA2_0_, contact0_.TIMEOFCREATION as TIMEOFCR3_0_, contact0_.CONTACTTYPE as CONTACTT4_0_, contact0_.DESCRIPTION as DESCRIPT5_0_, contact0_.HIDDEN as HIDDEN0_, contact0_.FIRSTNAME as FIRSTNAME0_, contact0_.TITLE as TITLE0_, contact0_.LASTNAME as LASTNAME0_, contact0_.STREET as STREET0_, contact0_.ZIPCODE as ZIPCODE0_, contact0_.CITY as CITY0_, contact0_.STATE as STATE0_, contact0_.COUTNTRY as COUTNTRY0_, contact0_.ICQ as ICQ0_, contact0_.AIM as AIM0_, contact0_.MSN as MSN0_, contact0_.YAHOO as YAHOO0_, contact0_.JABBER as JABBER0_, contact0_.PHONE as PHONE0_, contact0_.FAX as FAX0_, contact0_.CELL as CELL0_, contact0_.EMAIL as EMAIL0_, contact0_.USER_UID as USER_UID0_ from CONTACTS contact0_ where contact0_.CONTACT_UID=?
    Hibernate&#58; select contact0_.CONTACT_UID as CONTACT_1_0_, contact0_.TIMEOFLASTUPDATE as TIMEOFLA2_0_, contact0_.TIMEOFCREATION as TIMEOFCR3_0_, contact0_.CONTACTTYPE as CONTACTT4_0_, contact0_.DESCRIPTION as DESCRIPT5_0_, contact0_.HIDDEN as HIDDEN0_, contact0_.FIRSTNAME as FIRSTNAME0_, contact0_.TITLE as TITLE0_, contact0_.LASTNAME as LASTNAME0_, contact0_.STREET as STREET0_, contact0_.ZIPCODE as ZIPCODE0_, contact0_.CITY as CITY0_, contact0_.STATE as STATE0_, contact0_.COUTNTRY as COUTNTRY0_, contact0_.ICQ as ICQ0_, contact0_.AIM as AIM0_, contact0_.MSN as MSN0_, contact0_.YAHOO as YAHOO0_, contact0_.JABBER as JABBER0_, contact0_.PHONE as PHONE0_, contact0_.FAX as FAX0_, contact0_.CELL as CELL0_, contact0_.EMAIL as EMAIL0_, contact0_.USER_UID as USER_UID0_ from CONTACTS contact0_ where contact0_.CONTACT_UID=?
    2004-09-17 11&#58;50&#58;48,872 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - preparing statement
    2004-09-17 11&#58;50&#58;48,882 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - binding '1' to parameter&#58; 1
    2004-09-17 11&#58;50&#58;48,902 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - processing result set
    2004-09-17 11&#58;50&#58;48,902 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - result row&#58; 1
    2004-09-17 11&#58;50&#58;48,902 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Initializing object from ResultSet&#58; 1
    2004-09-17 11&#58;50&#58;48,902 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - Hydrating entity&#58; com.thyrell.pm.model.Contact#1
    2004-09-17 11&#58;50&#58;48,912 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-09-03 12&#58;40&#58;52' as column&#58; TIMEOFLA2_0_
    2004-09-17 11&#58;50&#58;48,912 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - returning '2004-08-30 17&#58;13&#58;17' as column&#58; TIMEOFCR3_0_
    2004-09-17 11&#58;50&#58;48,912 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Meine privaten Kontaktdaten' as column&#58; DESCRIPT5_0_
    2004-09-17 11&#58;50&#58;48,912 DEBUG &#91;net.sf.hibernate.type.BooleanType&#93; - returning 'false' as column&#58; HIDDEN0_
    2004-09-17 11&#58;50&#58;48,912 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Andreas' as column&#58; FIRSTNAME0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Herr' as column&#58; TITLE0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Aderhold' as column&#58; LASTNAME0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Rheinstraße 38' as column&#58; STREET0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '68642' as column&#58; ZIPCODE0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'Bürstadt' as column&#58; CITY0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'HE' as column&#58; STATE0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.LocaleType&#93; - returning 'de_DE' as column&#58; COUTNTRY0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '76660606' as column&#58; ICQ0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'herineth' as column&#58; AIM0_
    2004-09-17 11&#58;50&#58;48,922 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '' as column&#58; MSN0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'herineth' as column&#58; YAHOO0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '' as column&#58; JABBER0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '06245-905296' as column&#58; PHONE0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '06245-905246' as column&#58; FAX0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning '0174-2026787' as column&#58; CELL0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - returning 'privat@bullgod.de' as column&#58; EMAIL0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - returning '3' as column&#58; USER_UID0_
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Version&#58; 2004-09-03 12&#58;40&#58;52.0
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - done processing result set &#40;1 rows&#41;
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - done closing&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - closing statement
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.loader.Loader&#93; - total objects hydrated&#58; 1
    2004-09-17 11&#58;50&#58;48,932 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolving associations for &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,942 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - loading &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,942 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - attempting to resolve &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,942 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - resolved object in session cache &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,942 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - done materializing entity &#91;com.thyrell.pm.model.Contact#1&#93;
    2004-09-17 11&#58;50&#58;48,942 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.contacts#3&#93;
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.userRoles#3&#93;
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.roles#3&#93;
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - creating collection wrapper&#58;&#91;com.thyrell.pm.model.User.previousPasswords#3&#93;
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - adding entity to second-level cache &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Caching&#58; 3
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.cache.EhCache&#93; - key&#58; 3
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.store.MemoryStore&#93; - com.thyrell.pm.model.UserCache&#58; MemoryStore hit for 3
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 now&#58; 1095414648952
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Creation Time&#58; 1095414423448 Next To Last Access Time&#58; 0
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 mostRecentTime&#58; 1095414423448
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Age to Idle&#58; 120000 Age Idled&#58; 225504
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - timeToIdleSeconds exceeded &#58; 3
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User&#58; Is element with key 3 expired?&#58; true
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User Memory cache hit, but element expired
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User cache - Miss
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.hibernate.cache.EhCache&#93; - Element for 3 is null
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 now&#58; 1095414648952
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Creation Time&#58; 1095414648952 Next To Last Access Time&#58; 0
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 mostRecentTime&#58; 1095414648952
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Age to Idle&#58; 120000 Age Idled&#58; 0
    2004-09-17 11&#58;50&#58;48,952 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User&#58; Is element with key 3 expired?&#58; false
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Cached&#58; 3
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - done materializing entity &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - initializing non-lazy collections
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; bound to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.orm.hibernate.HibernateInterceptor&#93; - Not closing pre-bound Hibernate session after interceptor
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.beans.CachedIntrospectionResults&#93; - Using cached introspection results for class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Creating new nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.beans.CachedIntrospectionResults&#93; - Using cached introspection results for class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;48,962 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.model.User.setEmail&#40;java.lang.String&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,002 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.model.User.setEmail&#40;java.lang.String&#41;&#93; with value &#91;andi@bullgod.de&#93;
    2004-09-17 11&#58;50&#58;49,002 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,012 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,012 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.model.User.setFullname&#40;java.lang.String&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,012 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.model.User.setFullname&#40;java.lang.String&#41;&#93; with value &#91;&#93;
    2004-09-17 11&#58;50&#58;49,012 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Converting String to &#91;class java.lang.Long&#93; using property editor &#91;org.springframework.beans.propertyeditors.CustomNumberEditor@181b3d4&#93;
    2004-09-17 11&#58;50&#58;49,033 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke write method &#91;public void com.thyrell.pm.user.web.UserForm.setId&#40;java.lang.Long&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,033 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Invoked write method &#91;public void com.thyrell.pm.user.web.UserForm.setId&#40;java.lang.Long&#41;&#93; with value of type &#91;java.lang.Long&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.validation.ValidationUtils&#93; - Invoking validator &#91;com.thyrell.pm.user.web.UserFormValidator@42a818&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.Long com.thyrell.pm.user.web.UserForm.getId&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getFullname&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,073 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getFullname&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getEmail&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.validation.ValidationUtils&#93; - Validator found 1 errors
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;com.thyrell.pm.user.web.UserFormController&#93; - Data binding errors&#58; 1
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Retrieved value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; bound to thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;49,083 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Flushing single Hibernate session in OpenSessionInViewInterceptor
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Eagerly flushing Hibernate session
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - flushing session
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Cascades&#93; - processing cascades for&#58; com.thyrell.pm.model.User
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Cascades&#93; - cascading to collection&#58; com.thyrell.pm.model.User.contacts
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Cascades&#93; - cascading to collection&#58; com.thyrell.pm.model.User.userRoles
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Cascades&#93; - cascading to collection&#58; com.thyrell.pm.model.User.roles
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Cascades&#93; - done processing cascades for&#58; com.thyrell.pm.model.User
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushing entities and processing referenced collections
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.persister.AbstractEntityPersister&#93; - com.thyrell.pm.model.User.fullname is dirty
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Updating entity&#58; &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;49,093 DEBUG &#91;net.sf.hibernate.engine.Versioning&#93; - Incrementing&#58; 2004-09-16 22&#58;59&#58;36.0 to 2004-09-17 11&#58;50&#58;49.093
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Collection found&#58; &#91;com.thyrell.pm.model.User.contacts#3&#93;, was&#58; &#91;com.thyrell.pm.model.User.contacts#3&#93;
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Collection found&#58; &#91;com.thyrell.pm.model.User.userRoles#3&#93;, was&#58; &#91;com.thyrell.pm.model.User.userRoles#3&#93;
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Collection found&#58; &#91;com.thyrell.pm.model.User.roles#3&#93;, was&#58; &#91;com.thyrell.pm.model.User.roles#3&#93;
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Collection found&#58; &#91;com.thyrell.pm.model.User.previousPasswords#3&#93;, was&#58; &#91;com.thyrell.pm.model.User.previousPasswords#3&#93;
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Processing unreferenced collections
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Scheduling collection removes/&#40;re&#41;creates/updates
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushed&#58; 0 insertions, 1 updates, 0 deletions to 2 objects
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - Flushed&#58; 0 &#40;re&#41;creations, 0 updates, 0 removals to 4 collections
    2004-09-17 11&#58;50&#58;49,163 DEBUG &#91;net.sf.hibernate.impl.Printer&#93; - listing entities&#58;
    2004-09-17 11&#58;50&#58;49,173 DEBUG &#91;net.sf.hibernate.impl.Printer&#93; - com.thyrell.pm.model.Contact&#123;phone=06245-905296, user=User#3, aim=herineth, type=Private, yahoo=herineth, cell=0174-2026787, address=Address&#123;country=de_DE, street=Rheinstraße 38, state=HE, city=Bürstadt, zipcode=68642&#125;, msn=, fax=06245-905246, jabber=, id=1, timeOfLastUpdate=2004-09-03 12&#58;40&#58;52, timeOfCreation=2004-08-30 17&#58;13&#58;17, hidden=false, description=Meine privaten Kontaktdaten, email=privat@bullgod.de, name=Name&#123;title=Herr, firstName=Andreas, lastName=Aderhold&#125;, icq=76660606&#125;
    2004-09-17 11&#58;50&#58;49,173 DEBUG &#91;net.sf.hibernate.impl.Printer&#93; - com.thyrell.pm.model.User&#123;password=bullgod, handle=bullgod, timeOfLastUpdate=2004-09-16 22&#58;59&#58;36, previousPasswords=uninitialized, contacts=uninitialized, timeOfCreation=2004-08-30 17&#58;13&#58;17, defaultContact=Contact#1, userRoles=uninitialized, email=andi@bullgod.de, roles=uninitialized, fullname=, id=3&#125;
    2004-09-17 11&#58;50&#58;49,173 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - executing flush
    2004-09-17 11&#58;50&#58;49,173 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Invalidating&#58; 3
    2004-09-17 11&#58;50&#58;49,173 DEBUG &#91;net.sf.hibernate.cache.EhCache&#93; - key&#58; 3
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.store.MemoryStore&#93; - com.thyrell.pm.model.UserCache&#58; MemoryStore hit for 3
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 now&#58; 1095414649183
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Creation Time&#58; 1095414648952 Next To Last Access Time&#58; 0
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 mostRecentTime&#58; 1095414648952
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Age to Idle&#58; 120000 Age Idled&#58; 231
    2004-09-17 11&#58;50&#58;49,183 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User&#58; Is element with key 3 expired?&#58; false
    2004-09-17 11&#58;50&#58;49,213 DEBUG &#91;net.sf.hibernate.persister.EntityPersister&#93; - Updating entity&#58; &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;49,223 DEBUG &#91;net.sf.hibernate.persister.EntityPersister&#93; - Existing version&#58; 2004-09-16 22&#58;59&#58;36.0 -> New version&#58; 2004-09-17 11&#58;50&#58;49.093
    2004-09-17 11&#58;50&#58;49,223 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - about to open&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;49,223 DEBUG &#91;net.sf.hibernate.SQL&#93; - update USERS set TIMEOFLASTUPDATE=?, `PASSWORD`=?, EMAIL=?, FULLNAME=?, DEFAULT_CONTACT_UID=? where USER_UID=? and TIMEOFLASTUPDATE=?
    Hibernate&#58; update USERS set TIMEOFLASTUPDATE=?, `PASSWORD`=?, EMAIL=?, FULLNAME=?, DEFAULT_CONTACT_UID=? where USER_UID=? and TIMEOFLASTUPDATE=?
    2004-09-17 11&#58;50&#58;49,223 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - preparing statement
    2004-09-17 11&#58;50&#58;49,273 DEBUG &#91;net.sf.hibernate.persister.EntityPersister&#93; - Dehydrating entity&#58; &#91;com.thyrell.pm.model.User#3&#93;
    2004-09-17 11&#58;50&#58;49,273 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - binding '2004-09-17 11&#58;50&#58;49' to parameter&#58; 1
    2004-09-17 11&#58;50&#58;49,273 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - binding 'bullgod' to parameter&#58; 2
    2004-09-17 11&#58;50&#58;49,273 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - binding 'andi@bullgod.de' to parameter&#58; 3
    2004-09-17 11&#58;50&#58;49,273 DEBUG &#91;net.sf.hibernate.type.StringType&#93; - binding '' to parameter&#58; 4
    2004-09-17 11&#58;50&#58;49,283 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - binding '1' to parameter&#58; 5
    2004-09-17 11&#58;50&#58;49,283 DEBUG &#91;net.sf.hibernate.type.LongType&#93; - binding '3' to parameter&#58; 6
    2004-09-17 11&#58;50&#58;49,283 DEBUG &#91;net.sf.hibernate.type.TimestampType&#93; - binding '2004-09-16 22&#58;59&#58;36' to parameter&#58; 7
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - done closing&#58; 0 open PreparedStatements, 0 open ResultSets
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;net.sf.hibernate.impl.BatcherImpl&#93; - closing statement
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - post flush
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Will render view in DispatcherServlet with name 'perfectmind'
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Rendering view with name 'EditUserForm' with model &#123;userForm=com.thyrell.pm.user.web.UserForm@16b9e62, org.springframework.validation.BindException.userForm=org.springframework.validation.BindException&#58; BindException&#58; 1 errors; Field error in object 'userForm' on field 'user.fullname'&#58; rejectedValue=&#91;&#93;; codes=&#91;required.userForm.user.fullname,required.user.fullname,required.fullname,required.java.lang.String,required&#93;; arguments=&#91;null&#93;; defaultMessage=&#91;Full name is required.&#93;&#125; and static attributes &#123;&#125;
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Added model object 'userForm' of type &#91;com.thyrell.pm.user.web.UserForm&#93; to request in InternalResourceView 'EditUserForm' 
    2004-09-17 11&#58;50&#58;49,343 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Added model object 'org.springframework.validation.BindException.userForm' of type &#91;org.springframework.validation.BindException&#93; to request in InternalResourceView 'EditUserForm' 
    2004-09-17 11&#58;50&#58;49,533 DEBUG &#91;org.springframework.context.support.ResourceBundleMessageSource&#93; - Creating MessageFormat for pattern &#91;Bitte ausfüllen&#93; and locale 'en_US'
    2004-09-17 11&#58;50&#58;49,533 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,533 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,533 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,543 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,543 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public java.lang.String com.thyrell.pm.model.User.getEmail&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.model.User&#93;
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - About to invoke read method &#91;public com.thyrell.pm.model.User com.thyrell.pm.user.web.UserForm.getUser&#40;&#41;&#93; on object of class &#91;com.thyrell.pm.user.web.UserForm&#93;
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.beans.BeanWrapperImpl&#93; - Using cached nested BeanWrapper for property 'user'
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.web.servlet.view.JstlView&#93; - Forwarded to resource &#91;/admin/user/editUser.jsp&#93; in InternalResourceView 'EditUserForm'
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.transaction.support.TransactionSynchronizationManager&#93; - Removed value &#91;org.springframework.orm.hibernate.SessionHolder@ee6ad6&#93; for key &#91;net.sf.hibernate.impl.SessionFactoryImpl@29ea31&#93; from thread &#91;thread-pool-37&#93;
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.orm.hibernate.support.OpenSessionInViewInterceptor&#93; - Closing single Hibernate session in OpenSessionInViewInterceptor
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;org.springframework.orm.hibernate.SessionFactoryUtils&#93; - Closing Hibernate session
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - closing session
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - disconnecting session
    2004-09-17 11&#58;50&#58;49,553 DEBUG &#91;net.sf.hibernate.impl.SessionImpl&#93; - transaction completion
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.hibernate.cache.ReadWriteCache&#93; - Releasing&#58; 3
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.hibernate.cache.EhCache&#93; - key&#58; 3
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.store.MemoryStore&#93; - com.thyrell.pm.model.UserCache&#58; MemoryStore hit for 3
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 now&#58; 1095414649563
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Creation Time&#58; 1095414649213 Next To Last Access Time&#58; 0
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 mostRecentTime&#58; 1095414649213
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.Cache&#93; - 3 Age to Idle&#58; 120000 Age Idled&#58; 350
    2004-09-17 11&#58;50&#58;49,563 DEBUG &#91;net.sf.ehcache.Cache&#93; - com.thyrell.pm.model.User&#58; Is element with key 3 expired?&#58; false
    2004-09-17 11&#58;50&#58;49,573 DEBUG &#91;org.springframework.web.servlet.DispatcherServlet&#93; - Successfully completed request
    2004-09-17 11&#58;50&#58;49,573 DEBUG &#91;org.springframework.web.context.support.XmlWebApplicationContext&#93; - Publishing event in context &#91;XmlWebApplicationContext for namespace 'perfectmind-servlet'&#93;&#58; RequestHandledEvent&#58; url=&#91;/admin/user/edit.jspa&#93;; time=&#91;811ms&#93;; client=&#91;192.168.0.2&#93;; method=&#91;POST&#93;; servlet=&#91;perfectmind&#93;; session=&#91;agaKYleoLqhe&#93;; user=&#91;null&#93;; status=&#91;OK&#93;
    2004-09-17 11&#58;50&#58;49,573 DEBUG &#91;org.springframework.web.context.support.XmlWebApplicationContext&#93; - Publishing event in context &#91;Root XmlWebApplicationContext&#93;&#58; RequestHandledEvent&#58; url=&#91;/admin/user/edit.jspa&#93;; time=&#91;811ms&#93;; client=&#91;192.168.0.2&#93;; method=&#91;POST&#93;; servlet=&#91;perfectmind&#93;; session=&#91;agaKYleoLqhe&#93;; user=&#91;null&#93;; status=&#91;OK&#93;

  9. #9
    Join Date
    Sep 2004
    Posts
    15

    Default

    OK, coming closer now... i guess. the errors seem to occur in ALL cases when i use transaction interceptor with this config:

    Code:
    	<bean id="pmTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        	<property name="transactionManager"><ref bean="pmTransactionManager"/></property>
    		<property name="transactionAttributeSource">
    			<value>
    com.thyrell.pm.user.UserServiceImpl.*=PROPAGATION_REQUIRED
    			</value>
    		</property>
    	</bean>
    Whereas it works with those:

    Code:
    	<bean id="pmTransactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
        	<property name="transactionManager"><ref bean="pmTransactionManager"/></property>
    		<property name="transactionAttributes">
    		    <props>
    		      <prop key="*">PROPAGATION_REQUIRED</prop>
    		    </props>
    		</property>
    	</bean>
    BUT only if I use HibernateTransactionManager. With JTA wether this nor the above config work. The only case i get it working with JTA is using TransactionProxyFactoryBean with no interceptors at all.

    Maybe it's a bug in TransactionInterceptor and the JtaTransactionManager or somewhere in between!?

    -andi

Similar Threads

  1. Avoiding UI-centric Domain Classes
    By dhainlin in forum Web
    Replies: 5
    Last Post: Mar 27th, 2006, 01:16 PM
  2. Replies: 2
    Last Post: Oct 10th, 2005, 05:12 PM
  3. Loosing my SecureContext
    By sklakken in forum Security
    Replies: 3
    Last Post: Jul 21st, 2005, 01:44 PM
  4. Replies: 1
    Last Post: Apr 29th, 2005, 05:39 PM
  5. Replies: 0
    Last Post: Jan 6th, 2005, 08:19 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •