[jboss-user] [EJB/JBoss] - Transactions and method calls

tabbe do-not-reply at jboss.com
Thu Oct 5 05:03:18 EDT 2006


Hi at all,

(sorry for the crosspost)

I have a problem, I have an EJB which has an entry method that is called by the container. I dont want this method to throw an exception, so I put the business code in another method in the same bean:


  | 
  | 	@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  | 	public Response processRequest2(Request request) throws Exception
  | 	{
  | 			checkPolicy(request);
  | 
  | 			checkExtensions(request);
  | 
  | 			// initialize the info object
  | 			Info info = new Info(request);
  | 
  | 			// set serial number
  | 			SerialNumber sn = em.find(SerialNumber.class, Long.valueOf(0));
  | 			if (sn == null)
  | 			{
  | 				sn = new SerialNumber(0);
  | 				em.persist(sn);
  | 				logger.log(AdLevel.INFO, "Serial number not found, creating entity");
  | 			}
  | 			BigInteger serial = sn.getSerial();
  | 
  | serial.toString());
  | 			info.setSerialNumber(serial);
  | 			sn.setSerial(serial.add(BigInteger.ONE));
  | 			
  | 			if (true)
  | 			throw new CryptoProcessorException();
  | 
  | 
  | ...
  | 	
  | 


This method does not catch the CryptoProcessorException which is annotated with the rollback=true property.

The calling method looks like this:


  | 
  | 	public Type processRequest(Type request) throws Exception
  | 	{
  | 		try
  | 		{
  | 			return processRequest2((Request)request);
  | 		}
  | 		catch (Exception e)
  | 		{
  | 			return new Type(e);
  | 			//throw e;
  | 		}
  | 	}
  | 	



In this case, the serial number is always increased!!!
I'm a bit confused.

But if I rethrow the Exception, the rollback works.

Isnt there a possibility to catch the exception in the processRequest method and to get the rollback working?

Thanks
Thomas 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3976253#3976253

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3976253



More information about the jboss-user mailing list