[jbosstools-issues] [JBoss JIRA] Closed: (JBIDE-3956) Factory Method ... with a void return type must have an associated @Out/Databinder

Aliaksey Nis (JIRA) jira-events at lists.jboss.org
Wed Mar 11 14:43:22 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBIDE-3956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aliaksey Nis closed JBIDE-3956.
-------------------------------



Rejected. Closed.

> Factory Method ... with a void return type must have an associated @Out/Databinder
> ----------------------------------------------------------------------------------
>
>                 Key: JBIDE-3956
>                 URL: https://jira.jboss.org/jira/browse/JBIDE-3956
>             Project: Tools (JBoss Tools)
>          Issue Type: Bug
>          Components: Seam
>    Affects Versions: 3.1.0
>         Environment: Eclipse v3.4.2 using JBoss Tools 3.1.0.Alpha1-N200903051849-H12, Seam Tools for Eclipse 3.0.0.GA-N200903051241-H11,
> JBoss 4.2.3.GA, Seam 2.1.1.GA, JDK 1.5.0_09, Windows XP Media Center Edition Version 2002 Service Pack 2, HP Pavilion m7680n, Intel Core 2 Duo E6700 CPU, 2.00 GB of RAM.
>            Reporter: Jeremy Goodell
>
> Google searching for the string in the Summary field results in only one set of matches. The matches all refer to JBIDE-1955, which is a case closed in March, 2008. It looked as if the problem was showing up in the Seam booking example. I DO NOT have the problem with the booking example, however I am having it on one of my session Beans (CouponCampaignListAction) but not on another (CouponListAction) both of which are included below.
> I am quite new to Seam, EJB3, JPA, and Hibernate, so please forgive me if this is a non-issue. I spent about 7 hours trying to understand this issue today before submitting this report.
> I was able to get rid of the error by making the factory method return a List instead of a void. But I don't understand why this would work in one class and not another. I thought the list would be outjected automatically. The fact that there was a previous bug report on the same issue made me think it might be a real problem. Thanks for any help.
> CouponCampaignListAction.java (has the error):
> package org.domain.rcms.session;
> import static org.jboss.seam.ScopeType.SESSION;
> import java.io.Serializable;
> import java.util.List;
> import javax.ejb.Remove;
> import javax.ejb.Stateless;
> import javax.persistence.EntityManager;
> import javax.persistence.PersistenceContext;
> import org.domain.rcms.entity.CouponCampaign;
> import org.domain.rcms.interfaces.CouponCampaignList;
> import org.jboss.seam.annotations.Destroy;
> import org.jboss.seam.annotations.Factory;
> import org.jboss.seam.annotations.Name;
> import org.jboss.seam.annotations.Logger;
> import org.jboss.seam.log.Log;
> import org.jboss.seam.annotations.Scope;
> import org.jboss.seam.annotations.datamodel.DataModel;
> import org.jboss.seam.annotations.datamodel.DataModelSelection;
> import org.jboss.seam.annotations.security.Restrict;
> @SuppressWarnings("serial")
> @Stateless
> @Scope(SESSION)
> @Name("CouponCampaignList")
> @Restrict("#{identity.loggedIn}")
> public class CouponCampaignListAction implements CouponCampaignList, Serializable
> {
>     @Logger private Log log;
>     
>     @PersistenceContext
>     private EntityManager em;
>     @SuppressWarnings("unused")
>     @DataModel
>     private List<CouponCampaign> campaigns;
>     @DataModelSelection 
>     private CouponCampaign currentCampaign;
>     
>     @SuppressWarnings("unchecked")
>     @Factory
>     public void getCouponCampaigns()
>     {
>         log.info("Getting coupon campaigns.");
>        campaigns = em.createQuery("select c from CouponCampaign c where order by c.createData" )
>              .getResultList();
>     }
>     public CouponCampaign getCouponCampaign() {
>         return currentCampaign;
>     }
>     @Remove @Destroy
>     public void destroy() {        
>     }
> }
> The error is on the getCouponCampaigns method and there is no suggestion in Eclipse for how to fix it. I have a quite similar session bean in the same package which builds just fine:
> CouponListAction.java (does not have the error):
> package org.domain.rcms.session;
> import static org.jboss.seam.ScopeType.SESSION;
> import java.io.Serializable;
> import java.util.List;
> import javax.ejb.Remove;
> import javax.ejb.Stateless;
> import javax.persistence.EntityManager;
> import javax.persistence.PersistenceContext;
> import org.domain.rcms.entity.Coupon;
> import org.domain.rcms.entity.CouponCampaign;
> import org.domain.rcms.interfaces.CouponList;
> import org.jboss.seam.annotations.Destroy;
> import org.jboss.seam.annotations.Factory;
> import org.jboss.seam.annotations.In;
> import org.jboss.seam.annotations.Name;
> import org.jboss.seam.annotations.Logger;
> import org.jboss.seam.log.Log;
> import org.jboss.seam.annotations.Scope;
> import org.jboss.seam.annotations.datamodel.DataModel;
> import org.jboss.seam.annotations.datamodel.DataModelSelection;
> import org.jboss.seam.annotations.security.Restrict;
> @SuppressWarnings("serial")
> @Stateless
> @Scope(SESSION)
> @Name("CouponList")
> @Restrict("#{identity.loggedIn}")
> public class CouponListAction implements CouponList, Serializable
> {
>     @Logger private Log log;
>     
>     @PersistenceContext
>     private EntityManager em;
>     
>     @SuppressWarnings("unused")
>     @DataModel
>     private List<Coupon> coupons;
>     @DataModelSelection 
>     private Coupon currentCoupon;
>     
>     @In
>     private CouponCampaign currentCampaign;
>     
>     @SuppressWarnings("unchecked")
>     @Factory
>     public void getCoupons()
>     {
>         log.info("Getting coupon campaigns.");
>        coupons = em.createQuery("select c from Coupon c where :currentCampaign is null or c.campaign.id = :currentCampaignId order by c.createData")
>         .setParameter("currentCampaign", currentCampaign)
>         .setParameter("currentCampaignId", currentCampaign.getId())
>              .getResultList();
>     }
>     public Coupon getCoupon() {
>         return currentCoupon;
>     }
>     @Remove @Destroy
>     public void destroy() {        
>     }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbosstools-issues mailing list