Mantis - Resin
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
2588 | minor | always | 04-09-08 10:43 | 04-09-08 18:52 | |
|
|||||
Reporter: | emil | Platform: | |||
Assigned To: | ferg | OS: | |||
Priority: | normal | OS Version: | |||
Status: | closed | Product Version: | 3.1.6 | ||
Product Build: | Resolution: | fixed | |||
Projection: | none | ||||
ETA: | none | Fixed in Version: | 3.1.6 | ||
|
|||||
Summary: | 0002588: Servlet loads class before amber | ||||
Description: |
(Reported by Riccardo Cohen) A servlet that uses a persisted class is loading the class before amber can. This has not been replicated on Linux, but Mac OS X with Java 1.5.0_13 seems to exhibit the problem. See the attached war file. |
||||
Steps To Reproduce: | |||||
Additional Information: |
Additional info by Riccardo: I found something interesting : if you comment the code where Ejbuser is used in Adlservice (see file joined) then the illegual instance class error disappear, even if in the last function there is a List<Ejbuser> that does not seem to be a problem. It seems that it happens only when an object has to be used in my code... package adlhessian; import java.util.ArrayList; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.transaction.UserTransaction; import javax.webbeans.In; import com.caucho.hessian.server.HessianServlet; public class Adlservice extends HessianServlet { @PersistenceContext(name="adlhessian") private EntityManager m_manager; @In private UserTransaction m_ut; //@TransactionAttribute public boolean setusername(int userid,String newname) { boolean success=false; try { m_ut.begin(); // must be called before find() or createQuery() /* Ejbuser user=m_manager.find(Ejbuser.class,userid); if (user!=null) { user.setName(newname); success=true; } */ } catch(Exception ex) {ex.printStackTrace();} finally { try{m_ut.commit();}catch(Exception ex){ex.printStackTrace();} } return(success); } public Ejbuser getuser(int userid) { Ejbuser ret=null; try { /* Ejbuser user=(Ejbuser)m_manager.find(Ejbuser.class,userid); if (user!=null) ret=user; */ } catch(Exception ex) {ex.printStackTrace();} return ret; } public boolean adduser(Ejbuser newuser) { boolean success=false; try { m_ut.begin(); // must be called before find() or createQuery() /* Ejbuser user=new Ejbuser(); user=newuser; m_manager.persist(user); */ } catch(Exception ex) {ex.printStackTrace();} finally { try{m_ut.commit();}catch(Exception ex){ex.printStackTrace();} } return(success); } public List<String> getallusers() { List<String> ret=new ArrayList<String>(); try { javax.persistence.Query hqr=m_manager.createQuery("select h from Ejbuser h"); List<Ejbuser> list=(List<Ejbuser>)hqr.getResultList(); int idx; for (idx=0;idx<list.size();idx++) ret.add(list.get(idx).getName()); } catch(Exception ex) {ex.printStackTrace();} return(ret); } } |
||||
Relationships | |||||
Attached Files: | amber.war [^] (677,869 bytes) 04-09-08 10:43 |
Notes | |||||
|
|||||
|
|