Code Monkey home page Code Monkey logo

full-hibernate-plugin-for-struts2's People

Watchers

 avatar

full-hibernate-plugin-for-struts2's Issues

SkipValidation Annotation is ignored

What steps will reproduce the problem?
1. Use the FHP
2. Use the @SkipValidation annotation with the mapped method

What is the expected output?
No validation by the FHP

What do you see instead?
The FHP still apply validation

Original issue reported on code.google.com by jyoshiriro on 20 Jan 2010 at 2:26

Java 5 not compatible

If you try to deploy an application with *Java5* you will get the following
StackTrace: 

java.lang.NoSuchMethodError: java/util/Properties.load(Ljava/io/Reader;)V

    com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:276)
    com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)

    com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
    com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)

    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:369)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:444)

    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:460)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:160)

    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.json.JSONInterceptor.intercept(JSONInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

Original issue reported on code.google.com by jyoshiriro on 1 Feb 2010 at 4:44

Stack overflow in injectHibernateCoreSessionByAnnotation

What steps will reproduce the problem?
1. Instantiate an object inside the action that contains an inner object i.e.:
public class TramiteActionGrid {
...

public BusquedaVecinoActuacion busquedaVecinoActuacion = new 
BuscadorExpAction().new BusquedaVecinoActuacion();
}


2. The definition of the class that contains the inner classes is as follows:

public class BuscadorExpAction extends ActionGeneric {

//defines an inner object inside
public BuscadorExpAction.BusquedaGeneralActuacion busquedaGralActuacion = new 
BuscadorExpAction.BusquedaGeneralActuacion();

....

//inner class definition
public class BusquedaGeneralActuacion extends ActionGeneric {
.....
}

//end of class definition
}


What is the expected output? What do you see instead?
The expected output is the plugin trying to inject the session/transaction 
without errors, I see an stack overflow error instead in 
"injectHibernateCoreSessionByAnnotation".


What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.2-GA.jar on Windows XP

Please provide any additional information below.
Probably related to issues 21 and 12, caused by the call to the recursive 
function injectHibernateCoreSessionByAnnotation.  The inner class has a 
reference to the parent object, that has a reference to the inner class, that 
has a reference to the parent object, that has a reference to the inner 
class,...,etc. :-)

Original issue reported on code.google.com by [email protected] on 11 Mar 2011 at 9:48

Group Validation Support

It would be nice to have validating groups support, as for now all the fields 
of the action annotated as @Valida are being validated which sometimes bring to 
performance issues. 

I suggest to have a @Groups annotation with array of groups (action methods 
will be optionally annotated), and in Struts2HibernateValidator while calling 
validate method on Validator instance pass the groups to it. This will limit 
validation to the validation group.

If required I can attach patches.

Original issue reported on code.google.com by [email protected] on 4 Jun 2011 at 9:18

java.lang.NullPointerException insert new record into database using hibernate3 & struts2

What steps will reproduce the problem?
1. import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.ami.bean.Tender;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

public class TenderDAOImpl implements TenderDAO{
    @SessionTarget
    Session session=null;

    @TransactionTarget
    Transaction transaction=null;


    /**
     * Used to save or update a user.
     */
    @Override
    public void saveUpdateTender(Tender tender) {
        try {
            /*System.out.println(t.getId()+t.getAttachment()+"getCdate"+t.getCdate()+"getEdate"+t.getEdate()+"getEmd()"+t.getEmd()+"getOdate()"+t.getOdate()+"getOrgname()"+t.getOrgname()+"getPredate()"+t.getPredate()+"getSdate()"+t.getSdate()+"getState()"+t.getState()+"getStatus"+t.getStatus()+"getTno"+t.getTno()+"getTrem"+t.getTrem()+"getTval"+t.getTval()+"getWdesc"+t.getWdesc()+"getTid"+t.getTid());*/
            System.out.println("sdhj");
            session.saveOrUpdate(tender);
        } catch (Exception e) {
            transaction.rollback();
            e.printStackTrace();
        }
    }
}
2.
3.

What is the expected output? What do you see instead?
insert record into database but null pointer exception occured at 
transaction.rollback(); line in above code


What version of the product are you using? On what operating system?
struts2.1.6,hibernate 3 and mysql-connector-java5.0.5 and window 7 homebasic 
64bit

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 1 Mar 2013 at 2:53

Hibernate Annotations Required

If I try to use only XML configuration in a project, the
*com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory*
class throw an Exception.

So there is impossible to use this plugin in a Struts2/Hibernate project
without using Hibernate Annotations


Fixed with 2.1 GA

Original issue reported on code.google.com by jyoshiriro on 20 Nov 2009 at 9:40

Running fhpSample3

What steps will reproduce the problem?
1. Running the application fhpSample3 
2.
3.

What is the expected output? What do you see instead?
Running application 

What version of the product are you using? On what operating system?
Same 

Please provide any additional information below.

Mapping of entities were missed out in hibernate.cfg.xml files. Add 
following mappings.. 

<mapping class="sample3.model.Friend" /> 
<mapping class="sample3.model.Phonenumbertype" /> 
<mapping class="sample3.model.Friendphonenumber" /> 


Original issue reported on code.google.com by [email protected] on 1 Aug 2009 at 7:27

Attachments:

java.lang.StackOverflowError on method SessionTransactionInjectorInterceptor.isCandidadeClass

First of all, thanks for the plug-in it really makes life easier :-)

What version of the product are you using? On what operating system?
I'm using 1.5 GA plugin version.

Please provide any additional information below.

The application throw an java.lang.StackOverflowError. Debbuging the app i
could see that the action class' annotated property is successfully
receiving a hibernate session object. 
Since i am not extending 'hibernate-default' (i need a custom interceptor
stack instead) i think that, maybe, the problem is related to the
configuration in struts.xml.

My action class extends a class that have the Session property.

Here goes my struts.xml interceptors configuration section

<interceptors>
            <interceptor name="login"
class="br.gov.trems.licitacao.controller.interceptor.LoginInterceptor" />
            <interceptor name="hibernateSession"
class="com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransaction
InjectorInterceptor"
/>
            <interceptor-stack name="custom">

                <interceptor-ref name="exception">
                    <param name="logEnabled">true</param>
                    <param name="logLevel">debug</param>
                    <param name="logCategory">util.Logger</param>
                </interceptor-ref>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="params"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload" />
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="params"/>
                <!--interceptor-ref name="conversionError"/-->
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel</param>
                </interceptor-ref>                
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel</param>
                </interceptor-ref>                                
                <interceptor-ref name="hibernateSession" />
<!-- Custom security interceptor -->
                <interceptor-ref name="login" />                
            </interceptor-stack>            
        </interceptors>

        <default-interceptor-ref name="custom" />

This is my action class source :

public class HomeAction extends BasicCrudAction {


    private PageParams notificacoes;    

    private NotificacaoDAO notificacaoDAO;

    private Usuario usuario;    

    private Notificacao notificacao;

    public HomeAction() {        
    }    

    @Override
    public String execute(){       

        notificacao.setUsuario(usuario);
        notificacao.setLido(new Boolean(false));
        notificacao.setData(null);

        notificacaoDAO =
DAOFactory.getFactory().createNotificacaoDAO(hibernateSession);
        lista = notificacaoDAO.list(notificacao, lista);

        return SUCCESS;
    }

}

The Session property belongs to BasicCrudAction, and the source code is the
following:

public abstract class BasicCrudAction extends ActionSupport implements
LoginAware, SessionAware, ModelDriven, Preparable {        

    private Map session;    

    protected PageParams lista = new PageParams();

    @SessionTarget
    protected Session hibernateSession;    

    public BasicCrudAction() {
    }

    public void setSession(Map session) {
        this.session = session;
        isReport();
    }

    public Session getHibernateSession() {
        return hibernateSession;
    }

    public void setHibernateSession(Session hibernateSession) {
        this.hibernateSession = hibernateSession;
    }


}

And finally the error message:

exception

javax.servlet.ServletException: Filter execution threw an exception
    org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.lang.StackOverflowError
    java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:345)
    java.util.LinkedHashMap$LinkedHashIterator.<init>(LinkedHashMap.java:345)
    java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
    java.util.LinkedHashMap$KeyIterator.<init>(LinkedHashMap.java:383)
    java.util.LinkedHashMap.newKeyIterator(LinkedHashMap.java:396)
    java.util.HashMap$KeySet.iterator(HashMap.java:874)
    java.util.HashSet.iterator(HashSet.java:153)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.isCandidadeClass(SessionTransactionInjectorInterceptor.java:351)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:374)

This last line repeats over fifth times.

Thanks.

Original issue reported on code.google.com by [email protected] on 15 Sep 2009 at 7:06

JUnit test

I was attempting to write a JUnit test for my DAO classes without having to run 
tru struts 2.  The ones I attempted to write failed because the session object 
is NULL.   Is it possible to write a Junit text with the plug-in? I havent seen 
any examples for Junit test cases. 
Please provide me with some guidance,
Thanks in advance.

Ronaldo. 

Original issue reported on code.google.com by [email protected] on 15 Sep 2010 at 1:12

Attachments:

StackOverFlowException with enums

Hello,

What steps will reproduce the problem?
1. If my model contains an enum, the
methoddetectAndCommitTransactionCreatedLater(...) fails with a
StackOverFlowException.

What version of the product are you using? On what operating system?
2.1 GA

Please provide any additional information below.
If i add to the method isCandidadeClass(Class testClass):
    if (testClass.isEnum())
        return false;
after (or before)
    if (testClass.isAnnotation())
        return false;
then it works...

Original issue reported on code.google.com by [email protected] on 27 Nov 2009 at 8:45

Session not Injected on validate()

In case of using Dao in validate process, the hibernate plugin doesn't inject 
Session (and i think Transaction. 

Here is a Sample to reproduce the problem:

UserDaoImpl:
-----------

public class UserDaoImpl implements UserDao {

    @SessionTarget
    Session session;

    @TransactionTarget
    Transaction transaction;


    @Override
    public User getUser(Long id) {
            if (session==null) {
                System.out.println("Session is null");
            }
        // TODO Auto-generated method stub
               User user = null;
        try {

            Criteria criteria = session.createCriteria(User.class).add(
                    Restrictions.eq("id", id_id));
            user = (User) criteria.uniqueResult();

        } catch (Exception e) {
            transaction.rollback();
            e.printStackTrace();
        }

        return user;
    }

-----

UserAction:
------
public class UserAction extends ActionSupport {

    private UserDAO userDao = new UserDaoImpl();
    private User user;


public String execute() {
 return "success";
}

public void validate() {
        clearFieldErrors();
                user  = userDao.getUser(1);
 ....

}
....
------------------

The Dao prints out "Session is null". NOTE: this is only sample code!




Original issue reported on code.google.com by [email protected] on 14 Dec 2012 at 10:17

Stack overflow in injectHibernateCoreSessionByAnnotation method

What steps will reproduce the problem?
1. creating singleton class ('RegistryContext') with static instance field
('private static RegistryContext instance;').

What is the expected output? What do you see instead?
injectHibernateCoreSessionByAnnotation recursion with stack overflow.

What version of the product are you using? On what operating system?
2.1.2 GA

Please provide any additional information below.
Overflow occurs because of the first field in my 'RegistryContext' 
singleton object is a singleton instance reference i.e. reference to 
itself.
You mentioned in 'issue 4'-reply that you would use an 'injection cash' in 
version 2.1 and in sources of 'SessionTransactionInjectorInterceptor' 
class I've found an 'injectionCacheMap' field, but it is never used in 
forward code.

Original issue reported on code.google.com by [email protected] on 17 Jan 2010 at 9:36

Struts2 filter doesnt start

When I try to run the application I get this exception:

SEVERE: Exception starting filter struts2
java.lang.Error: Unresolved compilation problems:
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is
indirectly referenced from required .class files
The method getRequest() from the type ServletActionContext refers to the
missing type HttpServletRequest

at
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjecto
rInterceptor.<init>(SessionTransactionInjectorInterceptor.java:275)



Original issue reported on code.google.com by jyoshiriro on 17 Dec 2009 at 3:11

Fail upon initialization

What steps will reproduce the problem?
1. Do clean install of struts 2.2.2. 
2. Install dependencies
3. Set hibernate.cfg.xml to connect to mysql database
4. Initialize

What is the expected output? What do you see instead?
Application fails on initialization. Stack trace:

2010-11-04 08:57:56,683 INFO  org.hibernate.cfg.Configuration.configure:1518 - 
configuring from resource: /hibernate.cfg.xml
2010-11-04 08:57:56,683 INFO  
org.hibernate.cfg.Configuration.getConfigurationInputStream:1495 - 
Configuration resource: /hibernate.cfg.xml
Could not build Full Hibernate Plugin's Session Factory
org.hibernate.MappingException: An AnnotationConfiguration instance is required 
to use <mapping class="com.vaannila.domain.User"/>
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1692)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1647)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1626)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1600)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1520)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:267)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:374)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:449)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:465)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:165)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)

What version of the product are you using? On what operating system?
fullhibernatecore-plugin-2.2.1

Please provide any additional information below.
I'm trying to use annotations like SessionTarget and TransactionTarget, but it 
appears to trying to use a session factory appropriate to xml files.

Original issue reported on code.google.com by [email protected] on 4 Nov 2010 at 1:03

detectAndCloseHibernateCoreSessionCreatedLater has no effect

detect*CreatedLater methods are used inside inject() method like this:
{{{ 
 detectAndCommitHibernateTransactionCreatedLater(action);
 detectAndCloseHibernateCoreSessionCreatedLater(action);
}}}
These methods are defined in the following way:
{{{
 private synchronized void
 detectAndRollbackHibernateTransactionCreatedLater(Object targetObject)
 throws Exception {
     try {
         if (readedObjectsByRequest.get(ServletActionContext.getRequest())
                     .contains(targetObject))
             return;

         readedObjectsByRequest.get(ServletActionContext.getRequest())
             .add(targetObject);

 -----------------------------------------

 private synchronized void
 detectAndCloseHibernateCoreSessionCreatedLater(Object targetObject)
 throws SecurityException, NoSuchMethodException,
        IllegalArgumentException, IllegalAccessException,
        InvocationTargetException, ClassNotFoundException {

     if (readedObjectsByRequest.get(ServletActionContext.getRequest())
                 .contains(targetObject))
         return;

     readedObjectsByRequest.get(ServletActionContext.getRequest())
         .add(targetObject);
}}}

Thus, when both methods are called in a row the one that comes second has no 
effect for it's target object was already stored in the readedObjectsByRequest 
map by the first method.

What steps will reproduce the problem?

One way of reaching this code path is closing an injected session.

{{{
public class MyAction extends AcctionSupport {
    @SessionTarget
    Session session;

    public String execute() {
        session.close();
        return SUCCESS;
    }
}
}}}

What is the expected output? What do you see instead?

I don't know what is readedObjectsByRequest used for. So, I can't say :)

Original issue reported on code.google.com by [email protected] on 5 Nov 2010 at 6:00

org.hibernate.validator.InvalidStateException: validation failed for: com.vaannila.domain.User

What steps will reproduce the problem?
1. Validation errors are not displayed on the screen
2. Tried both properties file message values and annotation based message
values both not getting displayed.
3. I followed all the steps as stated.

What is the expected output? What do you see instead?
Validation Error messages should appear on the jsp page.

What version of the product are you using? On what operating system?
Windows operating system, eclipse ide all versions of the jar file as stated.


Please provide any additional information below.

Domain object 
-------------

package com.vaannila.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

import org.hibernate.validator.NotEmpty;

@Entity
@Table(name = "USER")
public class User implements Serializable {

    private static final long serialVersionUID = 6295524232169619097L;

    private Long id;

    @NotEmpty(message = "Name Required")
    private String name;

    private String password;

    private String gender;

    private String country;

    private String aboutYou;

    private Boolean mailingList;

    @Id
    @GeneratedValue
    @Column(name = "USER_ID")
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Column(name = "USER_NAME")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Column(name = "USER_PASSWORD")
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Column(name = "USER_GENDER")
    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Column(name = "USER_COUNTRY")
    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    @Column(name = "USER_ABOUT_YOU")
    public String getAboutYou() {
        return aboutYou;
    }

    public void setAboutYou(String aboutYou) {
        this.aboutYou = aboutYou;
    }

    @Column(name = "USER_MAILING_LIST")
    public Boolean getMailingList() {
        return mailingList;
    }

    public void setMailingList(Boolean mailingList) {
        this.mailingList = mailingList;
    }

}



----------------------------------------------------

Action class
------------

package com.vaannila.web;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.validator.Valid;

import com.opensymphony.xwork2.ActionSupport;
import com.vaannila.dao.UserDAO;
import com.vaannila.dao.UserDAOImpl;
import com.vaannila.domain.User;

public class UserAction extends ActionSupport {

    private static final long serialVersionUID = -6659925652584240539L;

    @Valid
    private User user;
    private List<User> userList = new ArrayList<User>();

    public String add()
    {
        UserDAO userDAO = new UserDAOImpl();
        userDAO.saveUser(user);
        return SUCCESS;
    }

    public String list()
    {
        UserDAO userDAO = new UserDAOImpl();
        userList = userDAO.listUser();
        return SUCCESS;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }

}


---------------------------------------------

UserAction.properties
---------------------

user.name=User Name
user.password=Password
user.gender=Gender
user.country=Country
user.aboutYou=About You
user.mailingList=Mailing List


-------------------------------------------

org.hibernate.validator.InvalidStateException: validation failed for:
com.vaannila.domain.User
    at
org.hibernate.validator.event.ValidateEventListener.validate(ValidateEventListen
er.java:148)
    at
org.hibernate.validator.event.ValidateEventListener.onPreInsert(ValidateEventLis
tener.java:172)
    at
org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAc
tion.java:142)
    at
org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertActi
on.java:65)
    at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
    at
org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(Abstrac
tSaveEventListener.java:321)
    at
org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventL
istener.java:204)
    at
org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSa
veEventListener.java:130)
    at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequ
estedId(DefaultSaveOrUpdateEventListener.java:210)
    at
org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(
DefaultSaveEventListener.java:56)
    at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(Defau
ltSaveOrUpdateEventListener.java:195)
    at
org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSave
EventListener.java:50)
    at
org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultS
aveOrUpdateEventListener.java:93)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)
    at com.vaannila.dao.UserDAOImpl.saveUser(UserDAOImpl.java:40)
    at com.vaannila.web.UserAction.add(UserAction.java:24)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvoca
tion.java:440)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionIn
vocation.java:279)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:242)
    at
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(Defau
ltWorkflowInterceptor.java:163)
    at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(Convers
ionErrorInterceptor.java:122)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Parameters
Interceptor.java:195)
    at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(Static
ParametersInterceptor.java:148)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor
.java:93)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterce
ptor.java:235)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDriven
Interceptor.java:89)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(Scope
dModelDrivenInterceptor.java:128)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(Profilin
gActivationInterceptor.java:104)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(Debuggin
gInterceptor.java:267)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterc
eptor.java:126)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.ja
va:148)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterc
eptor.java:138)
    at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilt
erInterceptor.java:87)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigI
nterceptor.java:164)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.
java:128)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(Except
ionMappingInterceptor.java:176)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.j
ava:236)
    at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
    at
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperatio
ns.java:77)
    at
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(S
trutsPrepareAndExecuteFilter.java:76)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt
erChain.java:235)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.
java:206)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
33)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1
91)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109
)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Pr
otocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
Hibernate: select user0_.USER_ID as USER1_0_, user0_.USER_ABOUT_YOU as
USER2_0_, user0_.USER_COUNTRY as USER3_0_, user0_.USER_GENDER as USER4_0_,
user0_.USER_MAILING_LIST as USER5_0_, user0_.USER_NAME as USER6_0_,
user0_.USER_PASSWORD as USER7_0_ from USER user0_


-----------------------------
Kindly help me out.

Original issue reported on code.google.com by [email protected] on 22 Aug 2009 at 2:06

close session method not found when using Custom Hibernate Session Factory

What steps will reproduce the problem?
1. Configured property closeSessionMethod as "closeSession" struts.properties 
and customSessionFactoryClass as "org.something.MySessionFactory"
2. Then creating the method closeSession with argument type 
org.hibernate.Session
3. Then it throws NoSuchMethodException for closeSession

What is the expected output? What do you see instead?
It should work and the method should be called. But instead it throws 
NoSuchMethodException, closeSession method is not found.

What version of the product are you using? On what operating system?
As per the plugin requirements and Windows XP


Please provide any additional information below.
When changing the signature of closeSession method to 
org.hibernate.internal.SessionImpl rather than org.hibernate.Session, it starts 
working. But the should not be dependent on the Concrete implementation.

Original issue reported on code.google.com by [email protected] on 28 Nov 2012 at 10:59

Bug when using convention

What steps will reproduce the problem?
1. Mapping an Action by Convention without create the "execute()" method

What do you see?
NoSuchMethodException



Original issue reported on code.google.com by jyoshiriro on 11 Nov 2010 at 9:40

java.lang.IllegalStateException thrown for struts2 <result type="stream">

What steps will reproduce the problem?
1. in struts.xml file let your package extend "hibernate-default"
2. add an action tag with an action class mapped.
3. add a result tag with type set to "stream"

What is the expected output? What do you see instead?
Expected:
  Once a request for this action comes in the file is streamed back as 
response with out any exceptions thrown.
Actual:
  File streams correctly, but finally throws an exception on the server 
console. java.lang.IllegalStateException.
I believe the hibernate plug-in is trying to write something to an already 
committed output stream causing the exception.

What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.1.2-GA
struts-2.1.8.1
OS: Windows Vista SP2
Java: 1.6.0_16

Please provide any additional information below.
Easily replicable using the struts provided examples (showcase) for file 
download.
Just change the extends attribute of the package tag from "struts-default" 
to "hibernate-default".


Original issue reported on code.google.com by [email protected] on 14 Jan 2010 at 1:29

Attachments:

Stack Overflow when calling classes that spawn threads

What steps will reproduce the problem?

include a class like this in an action:

public class GCImpl implements GC
{
    Logger logger = Logger.getLogger(this.getClass());
    private Handler handler;

    private GCImpl()
    {
        handler = new Handler();
        new Thread(handler, "Handler").start();
    }   
    private class Handler extends Thread
    {
        @Override
        public void run()
        {
            while (true)
            {
                synchronized (this)
                {
                    //do stuff;
                    try
                    {
                        wait(1000);
                    }
                    catch (Exception e)
                    {
                        logger.error("Exception thrown " + e.getMessage(), e);
                    }
                }
            }
        }
    }
}


What is the expected output? What do you see instead?
java.lang.StackOverflowError
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findResource(URLClassLoader.java:382)
    java.lang.ClassLoader.getResource(ClassLoader.java:1003)
    java.lang.ClassLoader.getResource(ClassLoader.java:998)
    java.lang.ClassLoader.getSystemResource(ClassLoader.java:1101)
    java.lang.Class.getResource(Class.java:2072)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.isCandidadeClass(SessionTransactionInjectorInterceptor.java:396)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:459)

........

What version of the product are you using? On what operating system?
2.2-GA

Please provide any additional information below.
I am using Spring's DI to inject this class into my action, but it doesn't 
require a hibernate session to run so @SessionTarget is not set.

Original issue reported on code.google.com by ben%[email protected] on 3 Sep 2010 at 9:24

Connection Leaking (Leaving Connections Unclosed)

What steps will reproduce the problem?
I am using the plugin, but it's leaving the connections open as unclosed.
Please find attached stacktrace.txt 

What is the expected output? What do you see instead?
It should close the connections.


What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.1-GA.jar 
OS: Oracle Enterprise Linux


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 12 Aug 2014 at 7:33

Attachments:

c3p0 JNDI datasource should survive start of web application with FullHibernate plugin

1. Configure a datasource in contxt.xml of your webapp:

<Resource auth="Container" driverClass="com.mysql.jdbc.Driver" 
maxPoolSize="100" minPoolSize="1" acquireIncrement="1" name="jdbc/DB" 
user="user" password="password"
factory="org.apache.naming.factory.BeanFactory" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
jdbcUrl="jdbc:mysql://localhost:3306/database?autoReconnect=true" /> 

2. Configure Hibernate to use THIS datasource in hibernate.cfg.xml

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.datasource">java:comp/env/jdbc/DB</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <mapping class="com.......Entity"/>

    </session-factory>
</hibernate-configuration>

3. Create some action class with @SessionTarget field, configure it in 
struts.xml (including Fullhibernate interceptor)

4. Run web app, invoke this action.

5. Enjoy console output and Hibernate crash:

DEBUG [http-8080-4] (SessionTransactionInjectorInterceptor.java:151) - 
Preparing Injection Hibernate Session and Transaction process: 
/management/news/fetch-news - Method: 
com.fabware.nab.action.NewsListAction.execute()
DEBUG [http-8080-4] (HibernateSessionFactory.java:297) - Full Hibernate 
Plugin's Session Factory: destroy factory required...
DEBUG [http-8080-4] (HibernateSessionFactory.java:304) - Full Hibernate 
Plugin's Session Factory: C3P0 Datasources Destroyed sucessful
DEBUG [http-8080-4] (HibernateSessionFactory.java:308) - Full Hibernate 
Plugin's Session Factory: All SessionFactories Destroyed sucessful
DEBUG [http-8080-4] (HibernateSessionFactory.java:91) - Hibernate Session 
Required (from current Thread) - SessionFactory required: (default)
DEBUG [http-8080-4] (HibernateSessionFactory.java:98) - No Hibernate Session in 
current thread. New Hibernate Session will be created and returned 
(SessionFactory "(default)")
DEBUG [http-8080-4] (HibernateSessionFactory.java:153) - New Hibernate Session 
required - SessionFactory required: (default)
DEBUG [http-8080-4] (HibernateSessionFactory.java:217) - Full Hibernate 
Plugin's Session Factory build started...
DEBUG [http-8080-4] (HibernateSessionFactory.java:262) - Full Hibernate 
Plugin's Session Factory using Hibernate Annotation Configuration
DEBUG [http-8080-4] (HibernateSessionFactory.java:268) - Full Hibernate 
Plugin's Session Factory configuration file "/hibernate.cfg.xml" configured
 WARN [http-8080-4] (SettingsFactory.java:147) - Could not obtain connection to query metadata
java.sql.SQLException: com.mchange.v2.c3p0.ComboPooledDataSource [ 
java.beans.IntrospectionException: java.lang.reflect.InvocationTargetException 
[lastAcquisitionFailureDefaultUser] ] has been closed() -- you can no longer 
use it.
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.assertCpds(AbstractPoolBackedDataSource.java:447)
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getPoolManager(AbstractPoolBackedDataSource.java:459)
    at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
    at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:92)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:114)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2833)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2829)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1840)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.createAndTestSessionFactory(HibernateSessionFactory.java:282)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:227)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession(HibernateSessionFactory.java:155)
    at com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession(HibernateSessionFactory.java:100)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory(SessionTransactionInjectorInterceptor.java:379)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.injectHibernateCoreSessionByAnnotation(SessionTransactionInjectorInterceptor.java:454)
    at com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:165)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.components.ActionComponent.executeAction(ActionComponent.java:291)
    at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:173)
    at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
    at org.apache.jsp.pages.frame_002dmanage_002dnews_jsp._jspx_meth_s_005faction_005f0(frame_002dmanage_002dnews_jsp.java:726)
    at org.apache.jsp.pages.frame_002dmanage_002dnews_jsp._jspService(frame_002dmanage_002dnews_jsp.java:175)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:159)
    at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
    at java.lang.Thread.run(Thread.java:662)


The datasource, configured in context.xml as JNDI resource is NOT INTENDED to 
be destroyed by some web application on it's start. It should REMAIN UNTOUCHED.

Original issue reported on code.google.com by [email protected] on 27 Jan 2011 at 3:52

Wiki page not found

The page 
https://code.google.com/p/full-hibernate-plugin-for-struts2/wiki/Hibernate_Valid
ator_integration which is called in 
https://code.google.com/p/full-hibernate-plugin-for-struts2/wiki/3_Hibernate_Cor
e_Sessions_Transactions_injecton isn't in the wiki.


Original issue reported on code.google.com by [email protected] on 13 Nov 2014 at 3:50

hibernate pooling is broken after using full-hibernate-plugin-for-struts2

What steps will reproduce the problem?
1. Configure the C3P0 connection pool in Hibernate
2. Try to get some data from the database
3. Add hibernate-plugin, get some additional data from the database in new 
struts2 action. Try to get the data from the second point above.

What is the expected output? What do you see instead?
I expected to get the result from the database.
Hibernate pooling is closed. I got an error:
com.mchange.v2.c3p0.PoolBackedDataSource.....has been closed() -- you can no 
longer use it

What version of the product are you using? On what operating system?
struts2-fullhibernatecore-plugin-2.2.1-GA.

Please provide any additional information below.
I put the error on my blog http://javanus.com/blog/?p=233

Regards,
Javanus


Original issue reported on code.google.com by [email protected] on 27 Sep 2010 at 7:29

Maven Repository

This project could have a Maven Repository


Original issue reported on code.google.com by jyoshiriro on 24 Jan 2010 at 2:21

Unable to set hibernatePlugin.useSessionObjectInCloseSessionMethod property and hibernatePlugin.searchInsideJars using struts.properties file

What steps will reproduce the problem?
1. Setting the hibernatePlugin.useSessionObjectInCloseSessionMethod using the 
struts.properties file
2. But all String properties are successfully set using the properties file, 
only the two boolean properties i.e. useSessionObjectInCloseSessionMethod  and 
searchInsideJars are not set due to some reason


What is the expected output? What do you see instead?
The value if set as true in the properties file should be reflected as true, 
but it is not set. 

What version of the product are you using? On what operating system?
As per plugin dependencies and Windows 7 operating system

Please provide any additional information below.
ADDITIONAL INFO :Even tried to debug for the same but same result the setter 
method is not hit for these two properties.
POSSIBLE REASON: The injection is not working for these two properties maybe 
due to the boolean data type, also all the other properties are String type.

Original issue reported on code.google.com by [email protected] on 28 Nov 2012 at 9:55

Attachments:

Support for Hibernate Validation 4.x

Hello,

What version of the product are you using? On what operating system?
2.1 GA

Request:
Support for Hibernate Validation 4.x (implementing JSR 303)

Regards,

Original issue reported on code.google.com by [email protected] on 1 Dec 2009 at 2:05

S2hibernate plugin is incompatible with latest hibernate validator 4: ClassNotFoundException: org.hibernate.validator.InvalidStateException

S2hibernate plugin is incompatible with latest hibernate validator 4

I get the following error:

java.lang.ClassNotFoundException: 
org.hibernate.validator.InvalidStateException

This is because this exception is now deprecated i believe.

You can see it in the javadocs for version 3:
http://docs.jboss.org/hibernate/validator/3.x/api/index.html?
org/hibernate/validator/InvalidStateException.html

But in the latest version of hibernate it isn't there:
http://docs.jboss.org/hibernate/stable/validator/api/index.html?
org/hibernate/validator/package-summary.html

Please help, thanks.

Original issue reported on code.google.com by [email protected] on 7 Jan 2010 at 12:43

  • Merged into: #13

Action class "com.opensymphony.xwork2.ActionSupport" from mapping "/typeList" does not extends "com.opensymphony.xwork2.ActionSupport". Hibernate Session and Transaction will not be injected!

What steps will reproduce the problem?
1. public class TypeListAction extends ActionSupport
2. @SessionTarget private org.hibernate.Session hSession;
3. run this action.

What is the expected output? What do you see instead?
log shows:
Action class "com.opensymphony.xwork2.ActionSupport" from mapping "/typeList" 
does not extends "com.opensymphony.xwork2.ActionSupport". Hibernate Session and 
Transaction will not be injected! 

What version of the product are you using? On what operating system?
2.2.2GA

Please provide any additional information below.

do not know why it is class "com.opensymphony.xwork2.ActionSupport", should be 
TypeListAction.

Original issue reported on code.google.com by [email protected] on 16 Feb 2012 at 5:12

java.lang.NullPointerException w/CRUD Demo

Hello,
I have a project which I am using Hibernate and Struts2 together, and I am new 
to both of them.

I am having trouble working out the CRUD process with the Hibernate and Struts2 
combinations. I want to do this in a specific way, but am having trouble. To 
replicate the issue I am having outside of my main project I downloaded the WAR 
from this tutorial and successfully got it running:
http://struts.apache.org/2.x/docs/crud-demo-i.html

Then I introduced Hibernate to it by making the following changes:
  1) First I added the JARs from my real project to this one to make sure I was running all the same versions of everything. The key points are I am suing Hibernate 3, Struts2, and the FullHibernateCore plugin to link them. For more detail, here are the JARs I am using:
antlr-2.7.7.jar
commons-collections-3.2.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.18.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-testing.jar
hibernate-validator.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.CR2.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
jta-1.1.jar
log4j-1.2.15.jar
mysql-connector-java-5.1.18-bin.jar
ognl-3.0.4.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
struts2-core-2.3.1.2.jar
struts2-fullhibernatecore-plugin-2.2.2-GA.jar
xwork-core-2.3.1.2.jar

  2) Added hibernate.cfg.xml as follows:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <!-- a SessionFactory instance listed as /jndi/name -->
    <session-factory>

        <!-- DB Connection Settings -->
        <property name="connection.url">jdbc:mysql://localhost:3306</property>
        <property name="connection.username">root</property>
        <property name="connection.password"></property>
        <property name="hibernate.default_schema">test2</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 

        <!-- DB Dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Echo SQL -->
        <property name="show_sql">true</property>

        <!-- Model Mappings -->
        <mapping class="com.aurifa.struts2.tutorial.model.Employee"/> 
        <mapping class="com.aurifa.struts2.tutorial.model.Department"/> 

    </session-factory>

</hibernate-configuration>

  3) Updated com.aurifa.struts2.tutorial.model.Department & com.aurifa.struts2.tutorial.model.Employee with persistence annotation.
  4) Created com.rwblackburn.struts2.tutorial.dao.InitHibernate, and executed it to create initial DB and populate it with the same data as demo:
package com.rwblackburn.struts2.tutorial.dao;

import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

import com.aurifa.struts2.tutorial.model.Department;
import com.aurifa.struts2.tutorial.model.Employee;

public class InitHibernate {

    /**
     * @param args
     */
    public static void main(String[] args) {
        AnnotationConfiguration config = new AnnotationConfiguration();
        config.addAnnotatedClass( Employee.class );
        config.addAnnotatedClass( Department.class );
        config.configure("hibernate.cfg.xml");

        // Create annotated class tables
        new SchemaExport(config).create(true, true);

        // Need to be careful with this, move it to a Struts global plugin?
        SessionFactory factory = config.buildSessionFactory();
        Session session = factory.openSession();
        session.beginTransaction();

        session.beginTransaction();

        // Create Departments
        Department dptAccounting = new Department( new Integer(100), "Accounting" );
        Department dptRandD = new Department( new Integer(200), "R & D");
        Department dptSales = new Department( new Integer(300), "Sales" );
        session.save(dptAccounting);
        session.save(dptRandD);
        session.save(dptSales);

        // Create Employees
        session.save(new Employee(new Integer(1), "John", "Doe", new Integer(36), dptAccounting));
        session.save(new Employee(new Integer(2), "Bob", "Smith", new Integer(25), dptSales));

        session.getTransaction().commit();

    }

}

  5) Created com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao which implements EmployeeDao
package com.rwblackburn.struts2.tutorial.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.aurifa.struts2.tutorial.dao.EmployeeDao;
import com.aurifa.struts2.tutorial.model.Employee;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

public class EmployeeHibernateDao implements EmployeeDao {
    @SessionTarget
    protected Session session;

    @TransactionTarget
    protected Transaction transaction;

    @SuppressWarnings("rawtypes")
    @Override
    public List getAllEmployees() {
        return session.createQuery( "from Employee" ).list();
    }

    @Override
    public Employee getEmployee(Integer id) {
        Employee emp = new Employee();
        session.load(emp, id );
        return emp;
    }

    @Override
    public void update(Employee emp) {
        session.update(emp);

    }

    @Override
    public void insert(Employee emp) {
        session.save(emp);
    }

    @Override
    public void delete(Integer id) {
        Employee emp = new Employee();
        session.load(emp, id );
        session.delete(emp);
    }

}

  6) Created com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao which implements DepartmentDao
package com.rwblackburn.struts2.tutorial.dao;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.aurifa.struts2.tutorial.dao.DepartmentDao;
import com.aurifa.struts2.tutorial.model.Department;
import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;

public class DepartmentHibernateDao implements DepartmentDao {
    @SessionTarget
    protected Session session;

    @TransactionTarget
    protected Transaction transaction;

    @SuppressWarnings("rawtypes")
    @Override
    public List getAllDepartments() {
        return session.createQuery( "from Department" ).list();
    }

    @SuppressWarnings("rawtypes")
    @Override
    public Map getDepartmentsMap() {
        Map<Integer, Department> departmentsMap = new HashMap<Integer, Department>();
        Iterator iter = this.getAllDepartments().iterator();
        while( iter.hasNext() ) {
            Department dept = (Department)iter.next();
            departmentsMap.put(dept.getDepartmentId(), dept );
        }
        return departmentsMap;
    }

}

  7) Updated EmployeeDaoService & DepartmentDaoService to use the new hibernate DAOs instead of the "NoDB" version from the demo

Now, InitHibernate runs just fine, so I know at least that much works and the 
DB itself is fine. However, when I try to load up the project in a browser the 
index.action page gives this error:

java.lang.NullPointerException
   com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao.getAllDepartments(DepartmentHibernateDao.java:26)
    com.aurifa.struts2.tutorial.service.DepartmentDaoService.getAllDepartments(DepartmentDaoService.java:16)
    com.aurifa.struts2.tutorial.action.EmployeeAction.prepare(EmployeeAction.java:35)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:167)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    java.lang.Thread.run(Thread.java:722)

When I do a debug trace I can confirm that the Session and Transaction 
variables in DepartmentHibernateDao are in fact null. 

After doing a lot of searching around I found this thread:
http://stackoverflow.com/questions/6294764/struts2-full-hibernate-plugin-session
-is-closed

This seems to be the same issue I was having. However, even if I downgrade by 
Struts version to 2.1.6, I still have the problem, Here is my new libraries:
     antlr-2.7.2.jar
     commons-collections-3.2.jar
     commons-fileupload-1.2.1.jar
     commons-io-1.3.2.jar
     commons-lang-2.3.jar
     commons-logging-1.0.4.jar
     commons-logging-api-1.1.jar
     commons-validator-1.3.1.jar
     dom4j-1.6.1.jar
     freemarker-2.3.13.jar
     hibernate3.jar
     hibernate-jpa-2.0-api-1.0.1.Final.jar
     hibernate-testing.jar
     hibernate-validator.jar
     javassist-3.15.0-GA.jar
     jboss-logging-3.1.0.CR2.jar
     jboss-transaction-api_1.1_spec-1.0.0.Final.jar
     jta-1.1.jar
     log4j-1.2.15.jar
     mysql-connector-java-5.1.18-bin.jar
     ognl-2.6.11.jar
     slf4j-api-1.6.1.jar
     slf4j-log4j12-1.6.1.jar
     struts2-core-2.1.6.jar
     struts2-fullhibernatecore-plugin-2.2.2-GA.jar
     xwork-2.1.2.jar

Also also implemented the quasi-fix listed in that thread by adding a “if 
(session == null)” check before some of the hibernate session calls. For 
example:
    @SuppressWarnings("rawtypes")
    @Override
    public List getAllDepartments() {
        if (session == null) {
            System.out.println("****** CREATING SESSION ******");
            session = com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession();
            if (!session.isOpen()) {
                throw new NullPointerException("Fix the code: session's not here");
            }
            transaction = session.beginTransaction();
        }

        if(!session.isOpen()) {
                System.out.println("****** REOPENING SESSION ******");

                session = session.getSessionFactory().openSession();
                //session = com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession();
                transaction = session.beginTransaction();
        }

        return session.createQuery( "from Department" ).list();
    }

The second if I add to avoid a “org.hibernate.SessionException: Session is 
closed!” based on this thread: 
https://forum.hibernate.org/viewtopic.php?f=1&t=983523&view=previous


This gets me passed the “java.lang.NullPointerException” and 
“org.hibernate.SessionException: Session is closed!” some of the times but 
this is inconsistent, if I keep refreshing the page it eventually comes back. 

Here is the stack trace for this new issue (you can see some of my print lines 
fomr the method above):
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
    [WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.actionMapping]
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
    [WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.valueStack]
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for namespace / and action name crud
    [DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareSave] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a]
    [DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareDoSave] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a]
    ****** REOPENING SESSION ******
    Hibernate: select department0_.departmentId as departme1_1_, department0_.name as name1_ from test2.Department department0_
    ****** REOPENING SESSION ******
    Hibernate: select employee0_.employeeId as employeeId0_1_, employee0_.age as age0_1_, employee0_.departmentId as departme5_0_1_, employee0_.firstName as firstName0_1_, employee0_.lastName as lastName0_1_, department1_.departmentId as departme1_1_0_, department1_.name as name1_0_ from test2.Employee employee0_ left outer join test2.Department department1_ on employee0_.departmentId=department1_.departmentId where employee0_.employeeId=?
    [DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - intercept '//crud' { 
    [DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - before Locale=en_US
    [DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.aurifa.struts2.tutorial.action.EmployeeAction@4e8659a, com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
    [WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts]
    [DEBUG] org.apache.struts2.interceptor.FileUploadInterceptor.debug:57 - Bypassing //crud
    [DEBUG] com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.debug:57 - Setting static parameters {}
    [DEBUG] com.opensymphony.xwork2.interceptor.ParametersInterceptor.debug:57 - Setting params employee.age => [ 4 ] employee.department.departmentId => [ 1 ] employee.employeeId => [ 9 ] employee.firstName => [ dsadsa ] employee.lastName => [ dsads ] 
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: age
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [age] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.age
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [age] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: departmentId
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Department
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [departmentId] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.department.departmentId
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [departmentId] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employeeId
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [employeeId] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.employeeId
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [employeeId] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: firstName
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [firstName] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.firstName
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [firstName] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: lastName
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.model.Employee
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - field-level type converter for property [lastName] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Property: employee.lastName
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - Class: com.aurifa.struts2.tutorial.action.EmployeeAction
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - global-level type converter for property [lastName] = none found
    [DEBUG] com.opensymphony.xwork2.conversion.impl.XWorkConverter.debug:57 - falling back to default type converter [com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter@62f3782]
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:151 - Preparing Injection Hibernate Session and Transaction process: /crud - Method: com.aurifa.struts2.tutorial.action.EmployeeAction.save()
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:91 - Hibernate Session Required (from current Thread) - SessionFactory required: (default)
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:98 - No Hibernate Session in current thread. New Hibernate Session will be created and returned (SessionFactory "(default)")
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession:153 - New Hibernate Session required - SessionFactory required: (default)
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getNewSession:167 - New Hibernate Session created and returned (SessionFactory "")
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory:380 - Hibernate Session from Full Hibernate Plugin's Hibernate Session Factory
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoSessionInjectedByAnnotation:508 - Hibernate Session injected (by annotation) into Action. Field "session". Class "com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao"
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:91 - Hibernate Session Required (from current Thread) - SessionFactory required: (default)
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.getSession:125 - Existing Hibernate Session from current thread returned (SessionFactory "")
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.getHibernateSessionFromFactory:380 - Hibernate Session from Full Hibernate Plugin's Hibernate Session Factory
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoSessionInjectedByAnnotation:508 - Hibernate Session injected (by annotation) into Action. Field "session". Class "com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao"
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoTransactionInjectedByAnnotation:599 - Hibernate Transaction injected (by annotation) into Action. Field "transaction". Class "com.rwblackburn.struts2.tutorial.dao.EmployeeHibernateDao"
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.debugInfoTransactionInjectedByAnnotation:599 - Hibernate Transaction injected (by annotation) into Action. Field "transaction". Class "com.rwblackburn.struts2.tutorial.dao.DepartmentHibernateDao"
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:77 - Full     Hibernate Plugin Validation in class com.aurifa.struts2.tutorial.action.EmployeeAction
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:116 - Full Hibernate Plugin Validation found no erros.
    [DEBUG] com.opensymphony.xwork2.DefaultActionInvocation.debug:57 - Executing action method = input
    [DEBUG] org.apache.struts2.dispatcher.ServletRedirectResult.debug:57 - Redirecting to finalLocation /test2/index.action
    Hibernate: update test2.Employee set age=?, departmentId=?, firstName=?, lastName=? where employeeId=?
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
    [WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.actionMapping]
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:57 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@29e03842], property=struts]
    [WARN ] com.opensymphony.xwork2.ognl.OgnlValueStack.warn:45 - Could not find property [struts.valueStack]
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for namespace / and action name index
    [DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareList] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@7a23792b]
    [DEBUG] com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:57 - cannot find method [prepareDoList] in action [com.aurifa.struts2.tutorial.action.EmployeeAction@7a23792b]
    Hibernate: select department0_.departmentId as departme1_1_, department0_.name as name1_ from test2.Department department0_
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.commitHibernateTransaction:264 - Hibernate Transation  org.hibernate.transaction.JDBCTransaction@54ebb9ba rolledback by Full Hibernate Plugin
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.util.HibernateSessionFactory.closeSession:207 - Hibernate Session closed
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.closeHibernateSession:275 - Hibernate Session closed by Full Hibernate Plugin's Hibernate Session Factory
    [DEBUG] com.opensymphony.xwork2.config.ConfigurationManager.debug:57 - Checking ConfigurationProviders for reload.
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:219 - Hibernate Transaction Committed
    [DEBUG] com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept:238 - Injection Hibernate Session and Transaction process for /crud - Method: com.aurifa.struts2.tutorial.action.EmployeeAction.save() finished
    [DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - after Locale=en_US
    [DEBUG] com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:57 - intercept } 

I am probably just missing the above session checking in one of my methods 
which uses the session. However at this point it seems that this can not 
possible be the answer, and I am either doing somthing very wrong or there is 
something missing somewhere.

Attached is the WAR file of this test app (using Struts 2.1.6). Any help will 
be appreciated. 

Thank You

Original issue reported on code.google.com by [email protected] on 11 Mar 2012 at 5:44

WebApp with FullHibernate plugin should START SUCCESSFULLY without Hibernate-Validation.jar

1. Create web application
2. Append jars: Struts 2, Hibernate required dependencies and 
hibernate-jpa-api.jar
3. Append Struts2-fullhibernate plugin
4. Deploy your webapp
5. Enjoy the application startup failure with following console output:

16:41:16 - INFO: Full Hibernate Plugin Validation could not detect Hibernate 
Validator 4.x 
28.12.2010 16:41:16 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter Struts2
java.lang.ExceptionInInitializerError
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119)
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
    at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
    at org.apache.struts2.impl.StrutsObjectFactory.buildInterceptor(StrutsObjectFactory.java:52)
    at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:59)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:987)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStack(XmlConfigurationProvider.java:806)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptorStacks(XmlConfigurationProvider.java:819)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadInterceptors(XmlConfigurationProvider.java:842)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:449)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:519)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.RuntimeException: No Hibernate Validator class found 
(neither 3.x nor 4.x)
    at com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.configValidator(HibernateValidatorInterceptor.java:51)
    at com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.<clinit>(HibernateValidatorInterceptor.java:24)
    ... 42 more

This happens with fullhibernate v. 2.2 & 2.2.2



WebApp should start successfully independently of presence of 
Hibernate-Validation.jar in classpath.

Original issue reported on code.google.com by [email protected] on 28 Dec 2010 at 1:53

Transaction not close when @TransactionTarget is not used

What steps will reproduce the problem?
1. Create and mapping an Action without a object marked with @TransactionTarget

What do you see?
The transaction is not commited.




Original issue reported on code.google.com by jyoshiriro on 11 Nov 2010 at 9:42

Don't load multi language Validation Messages (Hibernate Validator 3.1.0)

What steps will reproduce the problem?
1. Use the plugin
2. Create more than one ValidatorMessages_loc.properties
3. Use Hibernate Validator 3.1.0 Annotations

What is the expected output? 
Validations messagens according the client Locale

What do you see instead?
Only "ValidatorMessages.properties" is read.

Original issue reported on code.google.com by jyoshiriro on 8 Mar 2010 at 3:27

hibernatePlugin.closeSessionAfterInvoke=false return an exception

Verion: 2.2 GA

If I use hibernatePlugin.closeSessionAfterInvoke=false I get:

java.lang.NullPointerException at
com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjecto
rInterceptor.closeHibernateSession(SessionTransactionInjectorInterceptor.java:28
6)


at line 286:
SessionInfo info = new SessionInfo(hibernateSession,new
Date(),request.getSession());

request is null.

Original issue reported on code.google.com by [email protected] on 22 Mar 2010 at 3:40

Hibernate Validator library Always Required

What steps will reproduce the problem?
Try to use the FHP without the Hibernate Validator.

What is the expected output? 
Use the other FHP features but not the Hibernate Validator validation with
no problem.

What do you see instead?
An Exception is throwed. So, the Hibernate Validator library is always
required.


Original issue reported on code.google.com by jyoshiriro on 20 Jan 2010 at 2:20

Same entity for input and output bug

What steps will reproduce the problem?
1. Use a entity class object for input params from a from (ie. "user.login")
2. Use the same object to get the "full" entity
3. Use the same objet to render data into the result JSP

What do you see?
An org.hibernate.validator.InvalidStateException and no JSP rendered

Affects: 2.2 GA


Original issue reported on code.google.com by jyoshiriro on 24 Jun 2010 at 12:15

Thread-safe session injection

Hi, I'm trying to implement a singleton DAO object within hibernate and struts2 
by using your plugin. Looking through some examples, i think your plugin use 
setter method and java reflection to do injection. i'm wondering is it 
thread-safe? Since in a webapplication(typically, multithreaded), each setter 
method will modify my DAO singleton's session object. Plz, help answering my 
questions. thx

Original issue reported on code.google.com by [email protected] on 15 Mar 2012 at 9:12

validate() methos not invoked

validate() method from Actions not invoked if using any Interceptor Stack
from Full Hibernate Plugin.

Fixed with 2.1 GA.

Original issue reported on code.google.com by jyoshiriro on 20 Nov 2009 at 9:28

full-hibernate-plugin 2.2 with hibernate-validator 4.1.0

The most recent version of hibernate-validator does not contain the class 
org.hibernate.validator.engine.ResourceBundleMessageInterpolator anymore, so an 
Exception is thrown.

using an older hibernate-validator 4.0.2 solves the problem.

Stacktrace:
java.lang.NoClassDefFoundError: 
org/hibernate/validator/engine/ResourceBundleMessageInterpolator
    com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.validators.Struts2HibernateValidatorV402.validate(Struts2HibernateValidatorV402.java:48)
    com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.validators.Struts2HibernateValidatorV402.validate(Struts2HibernateValidatorV402.java:1)
    com.googlecode.s2hibernate.struts2.plugin.s2hibernatevalidator.interceptor.HibernateValidatorInterceptor.intercept(HibernateValidatorInterceptor.java:83)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.googlecode.s2hibernate.struts2.plugin.interceptors.SessionTransactionInjectorInterceptor.intercept(SessionTransactionInjectorInterceptor.java:211)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

regards, 
markus

Original issue reported on code.google.com by [email protected] on 25 Feb 2011 at 2:52

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.