Grails

Transaction Management is faulty in 1.1.1

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: 1.1.1
  • Fix Version/s: 1.1.2, 1.2-M1
  • Component/s: Services
  • Labels:
    None
  • Environment:
    Win XP, Java 1.5.0_16

Description

There is a problem with the transaction management in Grails 1.1.1

Transactions wont get started as you can see in the example app that i have attached.

Start the app with 'run-app' and invoke url 'http://localhost:8080/faultyTxMngt/blah/index'

This problem was introducted with Grails 1.1.1. The example is working with the previous version 1.1

As workaround it is possible to use the withTransaction method (http://grails.org/doc/1.1.x/ref/Domain%20Classes/withTransaction.html)

Activity

Hide
Jan Rudert added a comment -

Wow. I ran into it as well. Any chance this can be fixed soon?

Show
Jan Rudert added a comment - Wow. I ran into it as well. Any chance this can be fixed soon?
Hide
Markus Kramer added a comment -

I can confirm this bug.
Seems to be a super critical blocker!

Show
Markus Kramer added a comment - I can confirm this bug. Seems to be a super critical blocker!
Hide
Graeme Rocher added a comment -

Fixed in Git head

Show
Graeme Rocher added a comment - Fixed in Git head
Hide
Bob Tiernay added a comment -

I think I also ran into this issue in 1.1.1, but I can't tell from the description here

The following is non-transactional for me:

class MemberService {
	static transactional = true
	
	def delete(Member member) {
		member.delete(flush:true)
		// ...
	}
}

However, the following is transactional

:
class MemberService {
	def delete(Member member) {
		member.delete(flush:true)
		// ...
	}
}

Is this consistent with what the issue here? Or should I open a new jira?

Thanks

Show
Bob Tiernay added a comment - I think I also ran into this issue in 1.1.1, but I can't tell from the description here The following is non-transactional for me:
class MemberService {
	static transactional = true
	
	def delete(Member member) {
		member.delete(flush:true)
		// ...
	}
}
However, the following is transactional
:
class MemberService {
	def delete(Member member) {
		member.delete(flush:true)
		// ...
	}
}
Is this consistent with what the issue here? Or should I open a new jira? Thanks

People

Vote (5)
Watch (6)

Dates

  • Created:
    Updated:
    Resolved: