You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(55) |
Mar
(100) |
Apr
(203) |
May
(330) |
Jun
(190) |
Jul
(302) |
Aug
(323) |
Sep
(197) |
Oct
(245) |
Nov
(490) |
Dec
(330) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(194) |
Feb
(400) |
Mar
(416) |
Apr
(415) |
May
(359) |
Jun
(381) |
Jul
(491) |
Aug
(311) |
Sep
(291) |
Oct
(273) |
Nov
(355) |
Dec
(266) |
| 2005 |
Jan
(306) |
Feb
(303) |
Mar
(520) |
Apr
(346) |
May
(255) |
Jun
(221) |
Jul
(171) |
Aug
(247) |
Sep
(147) |
Oct
(125) |
Nov
(165) |
Dec
(65) |
| 2006 |
Jan
(90) |
Feb
(53) |
Mar
(121) |
Apr
(103) |
May
(113) |
Jun
(103) |
Jul
(104) |
Aug
(67) |
Sep
(78) |
Oct
(82) |
Nov
(78) |
Dec
(70) |
| 2007 |
Jan
(77) |
Feb
(76) |
Mar
(63) |
Apr
(30) |
May
(47) |
Jun
(41) |
Jul
(44) |
Aug
(44) |
Sep
(49) |
Oct
(33) |
Nov
(25) |
Dec
(21) |
| 2008 |
Jan
(45) |
Feb
(13) |
Mar
(15) |
Apr
(12) |
May
(9) |
Jun
(33) |
Jul
(30) |
Aug
(7) |
Sep
(20) |
Oct
(17) |
Nov
(20) |
Dec
(10) |
| 2009 |
Jan
(8) |
Feb
(5) |
Mar
(12) |
Apr
(17) |
May
(19) |
Jun
(97) |
Jul
(77) |
Aug
(33) |
Sep
(24) |
Oct
(41) |
Nov
(16) |
Dec
(32) |
| 2010 |
Jan
(24) |
Feb
(14) |
Mar
(50) |
Apr
(71) |
May
(70) |
Jun
(64) |
Jul
(45) |
Aug
(62) |
Sep
(32) |
Oct
(4) |
Nov
(12) |
Dec
(2) |
| 2011 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(3) |
May
(6) |
Jun
(1) |
Jul
(4) |
Aug
(3) |
Sep
(4) |
Oct
(6) |
Nov
(3) |
Dec
(3) |
| 2012 |
Jan
(4) |
Feb
(8) |
Mar
(6) |
Apr
(10) |
May
(2) |
Jun
(3) |
Jul
(11) |
Aug
(10) |
Sep
(4) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(1) |
Mar
(9) |
Apr
(1) |
May
(8) |
Jun
(2) |
Jul
(5) |
Aug
(2) |
Sep
|
Oct
(3) |
Nov
(10) |
Dec
(8) |
| 2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(12) |
May
(2) |
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(2) |
| 2015 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(9) |
May
(2) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
(7) |
Oct
(9) |
Nov
(7) |
Dec
(9) |
| 2016 |
Jan
(7) |
Feb
(5) |
Mar
(5) |
Apr
(5) |
May
(8) |
Jun
(4) |
Jul
(5) |
Aug
(4) |
Sep
(6) |
Oct
(7) |
Nov
(2) |
Dec
(3) |
| 2017 |
Jan
(7) |
Feb
(8) |
Mar
(7) |
Apr
(3) |
May
(4) |
Jun
(3) |
Jul
(5) |
Aug
(8) |
Sep
(4) |
Oct
(2) |
Nov
(3) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
(5) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Oliver H. <Ol...@ou...> - 2005-07-22 04:17:43
|
Cheers Keith! > -----Original Message----- > From: spr...@li...=20 > [mailto:spr...@li...] > On Behalf Of Keith Donald > Sent: Friday, 22 July 2005 1:55 PM > To: spr...@li... > Subject: RE: [Springframework-developer] Admin access to Jira >=20 > Ollie, >=20 > Done! >=20 > Keith >=20 > -----Original Message----- > From: spr...@li... > [mailto:spr...@li...] > On Behalf Of Oliver Hutchison > Sent: Thursday, July 21, 2005 9:34 PM > To: spr...@li... > Subject: [Springframework-developer] Admin access to Jira >=20 > As I'm doing quite a bit of the maintenance in Spring Rich=20 > these days could whoever is responsible for managing the Jira=20 > instance please give me permissions to edit/close etc. the=20 > issues in the "Spring Framework Rich Client" sub-project. We=20 > have a lot of out of date and resolved issues I'd like to=20 > finally close. >=20 > My username is "oliverhutchison" >=20 > Thanks! >=20 > Oliver >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration=20 > Strategies from IBM. Find simple to follow Roadmaps,=20 > straightforward articles, informative Webcasts and more! Get=20 > everything you need to get up to speed, fast.=20 > http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration=20 > Strategies from IBM. Find simple to follow Roadmaps,=20 > straightforward articles, informative Webcasts and more! Get=20 > everything you need to get up to speed, fast.=20 > http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer >=20 |
|
From: Keith D. <ke...@in...> - 2005-07-22 03:55:04
|
Ollie, Done! Keith -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf = Of Oliver Hutchison Sent: Thursday, July 21, 2005 9:34 PM To: spr...@li... Subject: [Springframework-developer] Admin access to Jira As I'm doing quite a bit of the maintenance in Spring Rich these days could whoever is responsible for managing the Jira instance please give me permissions to edit/close etc. the issues in the "Spring Framework Rich Client" sub-project. We have a lot of out of date and resolved issues I'd like to finally close. My username is "oliverhutchison" Thanks! Oliver ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Oliver H. <Ol...@ou...> - 2005-07-22 02:21:39
|
Actually I see this is only the case for ComparableComparator (I've got to many versions of the code open at the moment) the NullSafeComparator and BooleanComparator singletons are still there.=20 My question still stands through.=20 Oliver > -----Original Message----- > From: spr...@li...=20 > [mailto:spr...@li...] > On Behalf Of Oliver Hutchison > Sent: Friday, 22 July 2005 10:32 AM > To: spr...@li... > Subject: [Springframework-developer] Comparator singletons MIA? >=20 > Jurgen,=20 >=20 > I've just started upgrading Spring Rich to the latest spring=20 > code base and noticed that all of the Comparator singletons=20 > (which Spring Rich uses a lot) in the o.s.util.comparator=20 > package have been removed.=20 >=20 > These classes are IMHO perfect examples of where you should=20 > be using a singleton. Given that every instance will exhibit=20 > exactly the same behaviour, why would you ever want to have=20 > more that one instance of a class like ComparableComparator?=20 > Also how much cleaner is this: >=20 > ComparableComparator.nullSafeInstance().compare(argument1, argument2) >=20 > to this? >=20 > new NullSafeComparator(new ComparableComparator(),=20 > true).compare(argument1, argument2) >=20 > and more performant to boot. >=20 > Anyway, obviously I can live without them, but I'm curious=20 > about the rational behind the removal?=20 >=20 > Thanks, >=20 > Oliver >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration=20 > Strategies from IBM. Find simple to follow Roadmaps,=20 > straightforward articles, informative Webcasts and more! Get=20 > everything you need to get up to speed, fast.=20 > http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dick > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer >=20 |
|
From: Oliver H. <Ol...@ou...> - 2005-07-22 01:34:34
|
As I'm doing quite a bit of the maintenance in Spring Rich these days could whoever is responsible for managing the Jira instance please give me permissions to edit/close etc. the issues in the "Spring Framework Rich Client" sub-project. We have a lot of out of date and resolved issues I'd like to finally close. My username is "oliverhutchison" Thanks! Oliver |
|
From: Oliver H. <Ol...@ou...> - 2005-07-22 00:32:28
|
Jurgen,=20 I've just started upgrading Spring Rich to the latest spring code base and noticed that all of the Comparator singletons (which Spring Rich uses a lot) in the o.s.util.comparator package have been removed.=20 These classes are IMHO perfect examples of where you should be using a singleton. Given that every instance will exhibit exactly the same behaviour, why would you ever want to have more that one instance of a class like ComparableComparator? Also how much cleaner is this: ComparableComparator.nullSafeInstance().compare(argument1, argument2) to this? new NullSafeComparator(new ComparableComparator(), true).compare(argument1, argument2) and more performant to boot. Anyway, obviously I can live without them, but I'm curious about the rational behind the removal?=20 Thanks, Oliver |
|
From: <al...@in...> - 2005-07-21 22:29:29
|
View results here -> http://opensource.jteam.nl/build/buildresults/spring?log=log20050722001653Lbuild.313 |
|
From: <al...@in...> - 2005-07-20 22:29:47
|
View results here -> http://opensource.jteam.nl/build/buildresults/spring?log=log20050721001735Lbuild.312 |
|
From: Juergen H. <ju...@in...> - 2005-07-20 21:43:50
|
Thanks, Colin - I'll check it out. 1.2.3 is gonna be deferred till tomorrow anyway, due to some last-minute issues being addressed. Juergen -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Colin Sampaleanu Sent: Wednesday, July 20, 2005 11:16 PM To: spr...@li... Subject: Re: [Springframework-developer] hsqldb 1.8.0.1 I'm not sure if this made it in time for 1.2.3, but I've upgraded hsqldb to 1.8.0.1. As part of this, I started the old version and did a SET SCRIPTFORMAT TEXT SHUTDOWN SCRIPT then started up with the new version, and verified that petclinic and jpetstore seem to work fine. Colin Juergen Hoeller wrote: >I wouldn't mind switching for Spring 1.2.3. I don't see much of a >danger factor either. We should just get it done by Tuesday, as I >intend to release >1.2.3 mid next week. > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On >Behalf Of Colin Sampaleanu >Sent: Saturday, July 16, 2005 11:48 PM >To: spr...@li... >Subject: [Springframework-developer] hsqldb 1.8.0.1 > >I've been using hsqldb 1.8.0.1 in training with no real issues. It >offers some nice enhancements over 1.7.x, including the ability for the >db in server mode to serve data from multiple named databases, just >like other DB software (oracle, postgres, etc.), and real schemas. > >We should decide if we want to switch the version we ship, for Spring >1.2.3, or wait until 1.3. I don't care too much either way, but I don't >see much of a danger factor. > >Colin > >-- >Colin Sampaleanu >Interface21 Principal Consultant >Spring Training, Consulting and Support - "From the Source" >http://www.springframework.com > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Colin Sampaleanu Interface21 Principal Consultant Spring Training, Consulting and Support - "From the Source" http://www.springframework.com ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Colin S. <col...@ex...> - 2005-07-20 21:16:32
|
I'm not sure if this made it in time for 1.2.3, but I've upgraded hsqldb to 1.8.0.1. As part of this, I started the old version and did a SET SCRIPTFORMAT TEXT SHUTDOWN SCRIPT then started up with the new version, and verified that petclinic and jpetstore seem to work fine. Colin Juergen Hoeller wrote: >I wouldn't mind switching for Spring 1.2.3. I don't see much of a danger >factor either. We should just get it done by Tuesday, as I intend to release >1.2.3 mid next week. > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On Behalf Of >Colin Sampaleanu >Sent: Saturday, July 16, 2005 11:48 PM >To: spr...@li... >Subject: [Springframework-developer] hsqldb 1.8.0.1 > >I've been using hsqldb 1.8.0.1 in training with no real issues. It offers >some nice enhancements over 1.7.x, including the ability for the db in >server mode to serve data from multiple named databases, just like other DB >software (oracle, postgres, etc.), and real schemas. > >We should decide if we want to switch the version we ship, for Spring 1.2.3, >or wait until 1.3. I don't care too much either way, but I don't see much of >a danger factor. > >Colin > >-- >Colin Sampaleanu >Interface21 Principal Consultant >Spring Training, Consulting and Support - "From the Source" >http://www.springframework.com > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > -- Colin Sampaleanu Interface21 Principal Consultant Spring Training, Consulting and Support - "From the Source" http://www.springframework.com |
|
From: Yujin K. <net...@gm...> - 2005-07-20 17:42:11
|
As for the connection class type issue, Thomas was not able to reproduce it= . So I am trying to create a reproducable test case for thomas to look at. I apologize for not doing it before. FWIW, I don't see the driver version 10.1.0.3 any more on the oracle technet and I can't reproduce the error on my end with the driver i fresh downloaded, so oracle might have updated/fixed on their end, although I was not able to find any info on google. Either way, i'll upload the test case to jira shortly. I guess it would be handy to keep it around for future since we all know how reliable oracle is with their jdbc drivers. The issue was already marked as closed for now. Yujin On 7/19/05, Thomas Risberg <tho...@tr...> wrote: > Juergen, >=20 > I'll try to look at the two Oracle related issues today or tomorrow. > I know I looked at the way that the newer 10g drivers returned DATE > columns. At some point they indicated in metadata that they > returned a Timestamp but they actually returned a Date without the > time portion for a getObject type call. I'll run some tests against > some recent drivers. >=20 > Thomas >=20 >=20 > On Jul 19, 2005, at 3:25 PM, Juergen Hoeller wrote: >=20 > > Everybody, > > > > Spring 1.2.3 is finished so far (it's scheduled for tomorrow), > > except for a > > couple of recently reported minor issues still being unresolved. In > > particular, there's 3 database-related issues in JIRA: > > > > * SingleColumnRowMapper does not handle CLOBs correctly for jTDS/ > > SQL Server > > http://opensource.atlassian.com/projects/spring/browse/SPR-1048 > > > > * JdbcUtil's getResultSetValue hack for Oracle Timestamp Broken for > > 10g > > Driver > > http://opensource.atlassian.com/projects/spring/browse/SPR-1111 > > > > * OracleLobHandler and 10g driver > > http://opensource.atlassian.com/projects/spring/browse/SPR-1112 > > > > I would appreciate any feedback on those, ideally in combination > > with tested > > patches :-) In particular the issues with the Oracle 10g driver are > > worth > > resolving as soon as possible... > > > > Juergen > > > > > > > > > > ------------------------------------------------------- > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > informative Webcasts and more! Get everything you need to get up to > > speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dcl= ick > > _______________________________________________ > > Springframework-developer mailing list > > Spr...@li... > > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > > > >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclic= k > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > |
|
From: Juergen H. <ju...@in...> - 2005-07-20 17:12:21
|
That's actually a good idea... I wouldn't call it a fix, rather an enhancement: Old values simply weren't exposed to PropertyEditors before. I've just reworked BeanWrapperImpl accordingly. After some fine tuning, everything seems to run nicely. I'm gonna release this in 1.2.3. If there's any further refinements in that area that you'd like to see, let me know :-) Juergen -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Tom Turelinckx Sent: Wednesday, July 20, 2005 10:32 AM To: spr...@li... Subject: [Springframework-developer] property editor doesn't know existing property value when setting new value using BeanWrapperImpl When using BeanWrapperImpl to set the value of a property where a property editor is involved, doTypeConversionIfNecessary() calls setAsText() and then getValue() on the property editor, but it does not first call setValue() with the existing property value. Hence, you cannot use getValue() in the setAsText() method to get the existing property value... I accidentally discovered this when trying to get MutableSortDefinition's toggleAscendingOnProperty functionality to work when binding a sortDefinition request parameter on a bean that is kept in the session. It doesn't work, because my property editor's setAsText() method never updates the existing MutableSortDefinition property value - getValue() is always null and a new instance is created every time. Actually, I would really expect this to work... I have a lot of custom property editors where setAsText() performs a database lookup by primary key, but first performs a !getAsText().equals(text) check to verify the lookup is actually necessary. Probably, this doesn't work either, because getAsText() calls getValue() to transform the existing property value into a String representation... In fact, when looking at BeanWrapperImpl's source, it turns out the oldValue parameter passed to doTypeConversionIfNecessary is explicitly specified as null everywhere the method is called, but the parameter is only used for creating property change events anyway. I searched the forums and noticed there's already a "discussion" going on ;-) http://forum.springframework.org/viewtopic.php?t=3440 I couldn't find a JIRA issue for this yet, so I've created one: http://opensource.atlassian.com/projects/spring/browse/SPR-1155 Any chance this can be fixed? Thanks, Tom. ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Tom T. <tom...@pr...> - 2005-07-20 08:32:07
|
When using BeanWrapperImpl to set the value of a property where a property editor is involved, doTypeConversionIfNecessary() calls setAsText() and then getValue() on the property editor, but it does not first call setValue() with the existing property value. Hence, you cannot use getValue() in the setAsText() method to get the existing property value... I accidentally discovered this when trying to get MutableSortDefinition's toggleAscendingOnProperty functionality to work when binding a sortDefinition request parameter on a bean that is kept in the session. It doesn't work, because my property editor's setAsText() method never updates the existing MutableSortDefinition property value - getValue() is always null and a new instance is created every time. Actually, I would really expect this to work... I have a lot of custom property editors where setAsText() performs a database lookup by primary key, but first performs a !getAsText().equals(text) check to verify the lookup is actually necessary. Probably, this doesn't work either, because getAsText() calls getValue() to transform the existing property value into a String representation... In fact, when looking at BeanWrapperImpl's source, it turns out the oldValue parameter passed to doTypeConversionIfNecessary is explicitly specified as null everywhere the method is called, but the parameter is only used for creating property change events anyway. I searched the forums and noticed there's already a "discussion" going on ;-) http://forum.springframework.org/viewtopic.php?t=3440 I couldn't find a JIRA issue for this yet, so I've created one: http://opensource.atlassian.com/projects/spring/browse/SPR-1155 Any chance this can be fixed? Thanks, Tom. |
|
From: Juergen H. <ju...@in...> - 2005-07-20 07:24:38
|
Thanks, Dave - that's good to know :-) Juergen -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of Dave Ballard Sent: Tuesday, July 19, 2005 11:09 PM To: spr...@li... Subject: Re: [Springframework-developer] UnexpectedRollbackException with nested TransactionInterceptor from SLSB HI Juergen, Tested using spring-framework-1.2.3-with-dependencies-build.310-20050719. Looks like it corrects the problem. Thanks, Dave Juergen Hoeller wrote: >Any news on that front, Dave? Have you had a chance to try a recent >nightly snapshot? > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On >Behalf Of Juergen Hoeller >Sent: Saturday, July 16, 2005 9:21 PM >To: spr...@li... >Subject: Re: [Springframework-developer] UnexpectedRollbackException >with nested TransactionInterceptor from SLSB > >Hi Dave, > >Thanks for pointing that out! This is indeed a case that can be handled >more appropriately in JtaTransactionManager. > >JTA's registerSynchronization will throw a RollbackException if the >existing JTA transaction is already marked as rollback-only. This means >that we cannot register Spring transaction synchronizations there: >Hence, I've changed JtaTransactionManager to immediately trigger the >synchronizations with outcome status 'rollback' in that case, which should be appropriate. > >I'll commit this tonight; it will be released in Spring 1.2.3. Please >give tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a >try and let me know whether it works for you! > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On >Behalf Of Dave Ballard >Sent: Friday, July 15, 2005 6:13 PM >To: spr...@li... >Subject: [Springframework-developer] UnexpectedRollbackException with >nested TransactionInterceptor from SLSB > >Hi Juergen, > >I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed >"service" beans, both using JtaTransactionManager, with >"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say >I've >got: > >* ServiceA.methodA() >* ServiceB.methodB() > >In my scenario, methodA() throws an Exception. In the cases where >Spring starts the transaction, no problem. The caller receives the exception: > >* caller->serviceA.methodA() - Exception received as expected >* caller->serviceB.methodB()->serviceA.methodA() - Exception received >as expected > >When an EJB SLSB starts the transaction, the following scenario works >as >expected: > >* caller->SLSB->serviceA.methodA() - Exception received as expected > >However, when the Spring-managed bean calls are nested, I receive an >UnexpectedRollbackException: > >* caller->SLSB->serviceB.methodB()->serviceA.methodA() - >UnexpectedRollbackException received > >Regards, >Dave > >--- > >ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user] >(TransactionAspectSupport.java:279) - Application exception overridden >by rollback exception >myapp.exceptions.common.SystemException: foo > at >myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceIm >pl.ja >va:298) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelSe >rvice >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user] >(MoneyTransactionSessionEJB.java:3031) - Cancel not processed >org.springframework.transaction.UnexpectedRollbackException: JTA >transaction unexpectedly rolled back (maybe due to a timeout); nested >exception is >weblogic.transaction.RollbackException: Unknown reas on >weblogic.transaction.internal.AppSetRollbackOnlyException > at >weblogic.transaction.internal.TransactionImpl.setRollbackOnly(Transacti >onImp >l.java:486) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Tr >ansac >tionManagerImpl.java:281) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Tr >ansac >tionManagerImpl.java:275) > at >org.springframework.transaction.jta.JtaTransactionManager.doSetRollback >Only( >JtaTransactionManager.java:768) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.p >rocessRollback(AbstractPlatformTransactionManager.java:533) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.do >Close >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelSe >rvice >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection >(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoin >point >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >--------------- nested within: ------------------ >weblogic.transaction.RollbackException: Unknown reason - with nested >exception: >[weblogic.transaction.internal.AppSetRollbackOnlyException] > at >weblogic.transaction.internal.TransactionImpl.throwRollbackException(Tr >ansac >tionImpl.java:1526) > at >weblogic.transaction.internal.ServerTransactionImpl.registerSynchroniza >tion( >ServerTransactionImpl.java:450) > at >org.springframework.transaction.jta.JtaTransactionManager.doRegisterAft >erCom >pletionWithJtaTransaction(JtaTransactionManager.java:818) > at >org.springframework.transaction.jta.JtaTransactionManager.registerAfter >Compl >etionWithExistingTransaction(JtaTransactionManager.java:782) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.t >riggerAfterCompletion(AbstractPlatformTransactionManager.java:635) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.p >rocessRollback(AbstractPlatformTransactionManager.java:547) > at >org.springframework.transaction.support.AbstractPlatformTransactionMana >ger.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.do >Close >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invo >ke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.proc >essCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjd >lx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(Local >SlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Re >flect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicA >opPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm >.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl >.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlF >ilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.ja >va:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServ >letCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl >.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Erwin V. <erw...@er...> - 2005-07-20 07:23:27
|
On a related note: our JIRA instance is also still missing the spring logo: http://repository.atlassian.com/spring_jira_logo.gif Erwin Vervaet erw...@er... ----- Original Message ----- From: "Erwin Vervaet" > Seems like the Spring Confluence Wiki has been down since yesterday > (http://opensource.atlassian.com/confluence/spring/). > Who should we contact to get this resolved? |
|
From: Erwin V. <erw...@er...> - 2005-07-20 07:19:14
|
Seems like the Spring Confluence Wiki has been down since yesterday (http://opensource.atlassian.com/confluence/spring/). Who should we contact to get this resolved? Erwin Vervaet erw...@er... |
|
From: Guillaume P. <gpo...@sy...> - 2005-07-20 01:09:44
|
You can also use
<bean class="java.util.LinkedList">
<constructor-arg>
<list/>
</constructor-arg>
</bean>
I find that syntax to be much less verbose than to use a
ListFactoryBean. Of course, a type attribute would be even less verbose
than those two options.
Guillaume
Juergen Hoeller wrote:
> Well, note the kind of default collection implementations that Spring
> uses: It prefers ordered Maps and Sets if available, which also means
> that source Maps specified on the FactoryBeans will preserve their
> order. You don't need to do anything other than run on JDK 1.4+ (or
> with Commons Collections on the classpath) to get this behavior for
> standard <map> / <set> / <list> tags. No need to specify any special
> collection implementations for that.
>
> For the LinkedList case (which I suppose is rather rare), why not
> simply use ListFactoryBean with targetListClass=java.util.LinkedList?
>
> Juergen
>
>
> ------------------------------------------------------------------------
> *From:* spr...@li...
> [mailto:spr...@li...] *On
> Behalf Of *Crater, Jon (EDS)
> *Sent:* Tuesday, July 19, 2005 8:26 PM
> *To:* spr...@li...
> *Subject:* [Springframework-developer] Re: feature request
>
> Thanks for your reply. I wasn't aware of the various factory bean
> classes you mentioned, so this thread has already been useful. What I
> really need, though, is the ability to override the default
> Map/List/Set implementation class on an as-needed basis. So, for
> example, one of the properties of one of my Spring-managed beans is a
> Map that needs to retain the order in which it's configured, so I'd
> like to inject an instance of SequencedHashMap, but I don't have a way
> to do that without extensions. Using a MapFactoryBean won't help me
> in this case because the order will not be preserved, as the source
> map is required to have been created.
>
> In another case, I may need to inject an instance of LinkedList, etc.
> So, I don't want to override every single one, just the ones where my
> needs diverge from what is built-in. If a "type" attribute isn't
> justified, is there another way?
> ________________________________
>
> Actually, this can already be achieved through using MapFactoryBean,
> ListFactoryBean and SetFactoryBean, respectively - passing a source <map> /
> <list> / <set> in and specifying the desired "targetMapClass" /
> "targetListClass" / "targetSetClass".
>
> I don"t see much advantage in a "type" attribute on the corresponding tags
> directly, actually. It"s not that common to override the collection
> implementations on a per-collection basis to justify a special shortcut for
> this, IMO.
>
> Or are you trying to centrally override the default Map / List / Set
> implementations that Spring uses for <map> / <list> / <set>? Specifying
> those implementation classes _once_ rather than repeating them for every
> single collection definition?
>
> Juergen
>
>
> ________________________________
>
> From: springframework-developer-admin@li...
> [mailto:springframework-developer-admin@li...] On Behalf Of
> Crater, Jon (EDS)
> Sent: Tuesday, July 19, 2005 5:34 PM
> To: springframework-developer@li...
> Subject: [Springframework-developer] feature request
>
>
> i currently have a need to customize the implementation classes created when
> spring parses the definitions for properties containing <map>, <list>, etc.
> elements. currently i have to subclass AbstractXmlApplicationContext and
> override initBeanDefinitionReader(XmlBeanDefinitionReader r) to call
> setParserClass(Class c) with my own subclass of BeanDefinitionParser, which
> in turn overrides parseMapElement, etc. i was hoping that future releases
> of spring could support this situation via out of the box configuration. it
> seems like it would be fairly straightforward to respect a "type" attribute
> of the <map> and <list> (and any other) elements to support customization of
> the Map/Collection implementation without requiring custom extensions.
>
> if there"s sufficient interest, i"d be happy to contribute.
>
> jon
>
|
|
From: <al...@in...> - 2005-07-19 22:29:38
|
View results here -> http://opensource.jteam.nl/build/buildresults/spring?log=log20050720001655Lbuild.311 |
|
From: Dave B. <dba...@on...> - 2005-07-19 21:08:38
|
HI Juergen, Tested using spring-framework-1.2.3-with-dependencies-build.310-20050719. Looks like it corrects the problem. Thanks, Dave Juergen Hoeller wrote: >Any news on that front, Dave? Have you had a chance to try a recent nightly >snapshot? > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On Behalf Of >Juergen Hoeller >Sent: Saturday, July 16, 2005 9:21 PM >To: spr...@li... >Subject: Re: [Springframework-developer] UnexpectedRollbackException with >nested TransactionInterceptor from SLSB > >Hi Dave, > >Thanks for pointing that out! This is indeed a case that can be handled more >appropriately in JtaTransactionManager. > >JTA's registerSynchronization will throw a RollbackException if the existing >JTA transaction is already marked as rollback-only. This means that we >cannot register Spring transaction synchronizations there: Hence, I've >changed JtaTransactionManager to immediately trigger the synchronizations >with outcome status 'rollback' in that case, which should be appropriate. > >I'll commit this tonight; it will be released in Spring 1.2.3. Please give >tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a try and >let me know whether it works for you! > >Juergen > > >-----Original Message----- >From: spr...@li... >[mailto:spr...@li...] On Behalf Of >Dave Ballard >Sent: Friday, July 15, 2005 6:13 PM >To: spr...@li... >Subject: [Springframework-developer] UnexpectedRollbackException with nested >TransactionInterceptor from SLSB > >Hi Juergen, > >I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed >"service" beans, both using JtaTransactionManager, with >"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say I've >got: > >* ServiceA.methodA() >* ServiceB.methodB() > >In my scenario, methodA() throws an Exception. In the cases where Spring >starts the transaction, no problem. The caller receives the exception: > >* caller->serviceA.methodA() - Exception received as expected >* caller->serviceB.methodB()->serviceA.methodA() - Exception received as >expected > >When an EJB SLSB starts the transaction, the following scenario works as >expected: > >* caller->SLSB->serviceA.methodA() - Exception received as expected > >However, when the Spring-managed bean calls are nested, I receive an >UnexpectedRollbackException: > >* caller->SLSB->serviceB.methodB()->serviceA.methodA() - >UnexpectedRollbackException received > >Regards, >Dave > >--- > >ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user] >(TransactionAspectSupport.java:279) - Application exception overridden by >rollback exception >myapp.exceptions.common.SystemException: foo > at >myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.ja >va:298) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user] >(MoneyTransactionSessionEJB.java:3031) - Cancel not processed >org.springframework.transaction.UnexpectedRollbackException: JTA transaction >unexpectedly rolled back (maybe due to a timeout); nested exception is >weblogic.transaction.RollbackException: Unknown reas on >weblogic.transaction.internal.AppSetRollbackOnlyException > at >weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp >l.java:486) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac >tionManagerImpl.java:281) > at >weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac >tionManagerImpl.java:275) > at >org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly( >JtaTransactionManager.java:768) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.p >rocessRollback(AbstractPlatformTransactionManager.java:533) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.doClose >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy107.findFoobar(Unknown Source) > at >myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService >Impl.java:479) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU >tils.java:292) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint >(ReflectiveMethodInvocation.java:155) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:122) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:57) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) >--------------- nested within: ------------------ >weblogic.transaction.RollbackException: Unknown reason - with nested >exception: >[weblogic.transaction.internal.AppSetRollbackOnlyException] > at >weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac >tionImpl.java:1526) > at >weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization( >ServerTransactionImpl.java:450) > at >org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCom >pletionWithJtaTransaction(JtaTransactionManager.java:818) > at >org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompl >etionWithExistingTransaction(JtaTransactionManager.java:782) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.t >riggerAfterCompletion(AbstractPlatformTransactionManager.java:635) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.p >rocessRollback(AbstractPlatformTransactionManager.java:547) > at >org.springframework.transaction.support.AbstractPlatformTransactionManager.r >ollback(AbstractPlatformTransactionManager.java:506) > at >org.springframework.transaction.interceptor.TransactionAspectSupport.doClose >TransactionAfterThrowing(TransactionAspectSupport.java:276) > at >org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr >ansactionInterceptor.java:61) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy119.findFoobar(Unknown Source) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa >ncel(MoneyTransactionSessionEJB.java:2876) > at >myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL >OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719) > at java.lang.reflect.Method.invoke(Native Method) > at >org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI >nvokerInterceptor.java:66) > at >org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect >iveMethodInvocation.java:144) > at >org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro >xy.java:174) > at $Proxy126.processCancel(Unknown Source) > at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90) > at >jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java >:157) > at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) > at >weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java >:275) > at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter >.java:215) > at >myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76 >) > at >weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) > at >weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo >ntext.java:2708) > at >weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java >:2427) > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159) > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140) > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from >IBM. Find simple to follow Roadmaps, straightforward articles, informative >Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from >IBM. Find simple to follow Roadmaps, straightforward articles, informative >Webcasts and more! Get everything you need to get up to speed, fast. >http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >SF.Net email is sponsored by: Discover Easy Linux Migration Strategies >from IBM. Find simple to follow Roadmaps, straightforward articles, >informative Webcasts and more! Get everything you need to get up to >speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > |
|
From: Thomas R. <tho...@tr...> - 2005-07-19 20:42:21
|
Juergen, I'll try to look at the two Oracle related issues today or tomorrow. I know I looked at the way that the newer 10g drivers returned DATE columns. At some point they indicated in metadata that they returned a Timestamp but they actually returned a Date without the time portion for a getObject type call. I'll run some tests against some recent drivers. Thomas On Jul 19, 2005, at 3:25 PM, Juergen Hoeller wrote: > Everybody, > > Spring 1.2.3 is finished so far (it's scheduled for tomorrow), > except for a > couple of recently reported minor issues still being unresolved. In > particular, there's 3 database-related issues in JIRA: > > * SingleColumnRowMapper does not handle CLOBs correctly for jTDS/ > SQL Server > http://opensource.atlassian.com/projects/spring/browse/SPR-1048 > > * JdbcUtil's getResultSetValue hack for Oracle Timestamp Broken for > 10g > Driver > http://opensource.atlassian.com/projects/spring/browse/SPR-1111 > > * OracleLobHandler and 10g driver > http://opensource.atlassian.com/projects/spring/browse/SPR-1112 > > I would appreciate any feedback on those, ideally in combination > with tested > patches :-) In particular the issues with the Oracle 10g driver are > worth > resolving as soon as possible... > > Juergen > > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > |
|
From: Juergen H. <ju...@in...> - 2005-07-19 19:25:21
|
Everybody, Spring 1.2.3 is finished so far (it's scheduled for tomorrow), except for a couple of recently reported minor issues still being unresolved. In particular, there's 3 database-related issues in JIRA: * SingleColumnRowMapper does not handle CLOBs correctly for jTDS/SQL Server http://opensource.atlassian.com/projects/spring/browse/SPR-1048 * JdbcUtil's getResultSetValue hack for Oracle Timestamp Broken for 10g Driver http://opensource.atlassian.com/projects/spring/browse/SPR-1111 * OracleLobHandler and 10g driver http://opensource.atlassian.com/projects/spring/browse/SPR-1112 I would appreciate any feedback on those, ideally in combination with tested patches :-) In particular the issues with the Oracle 10g driver are worth resolving as soon as possible... Juergen |
|
From: Juergen H. <ju...@in...> - 2005-07-19 18:38:49
|
Well, note the kind of default collection implementations that Spring uses: It prefers ordered Maps and Sets if available, which also means that source Maps specified on the FactoryBeans will preserve their order. You don't need to do anything other than run on JDK 1.4+ (or with Commons Collections on the classpath) to get this behavior for standard <map> / <set> / <list> tags. No need to specify any special collection implementations for that. For the LinkedList case (which I suppose is rather rare), why not simply use ListFactoryBean with targetListClass=java.util.LinkedList? Juergen _____ From: spr...@li... [mailto:spr...@li...] On Behalf Of Crater, Jon (EDS) Sent: Tuesday, July 19, 2005 8:26 PM To: spr...@li... Subject: [Springframework-developer] Re: feature request Thanks for your reply. I wasn't aware of the various factory bean classes you mentioned, so this thread has already been useful. What I really need, though, is the ability to override the default Map/List/Set implementation class on an as-needed basis. So, for example, one of the properties of one of my Spring-managed beans is a Map that needs to retain the order in which it's configured, so I'd like to inject an instance of SequencedHashMap, but I don't have a way to do that without extensions. Using a MapFactoryBean won't help me in this case because the order will not be preserved, as the source map is required to have been created. In another case, I may need to inject an instance of LinkedList, etc. So, I don't want to override every single one, just the ones where my needs diverge from what is built-in. If a "type" attribute isn't justified, is there another way? ________________________________ Actually, this can already be achieved through using MapFactoryBean, ListFactoryBean and SetFactoryBean, respectively - passing a source <map> / <list> / <set> in and specifying the desired "targetMapClass" / "targetListClass" / "targetSetClass". I don"t see much advantage in a "type" attribute on the corresponding tags directly, actually. It"s not that common to override the collection implementations on a per-collection basis to justify a special shortcut for this, IMO. Or are you trying to centrally override the default Map / List / Set implementations that Spring uses for <map> / <list> / <set>? Specifying those implementation classes _once_ rather than repeating them for every single collection definition? Juergen ________________________________ From: springframework-developer-admin@li... [mailto:springframework-developer-admin@li...] On Behalf Of Crater, Jon (EDS) Sent: Tuesday, July 19, 2005 5:34 PM To: springframework-developer@li... Subject: [Springframework-developer] feature request i currently have a need to customize the implementation classes created when spring parses the definitions for properties containing <map>, <list>, etc. elements. currently i have to subclass AbstractXmlApplicationContext and override initBeanDefinitionReader(XmlBeanDefinitionReader r) to call setParserClass(Class c) with my own subclass of BeanDefinitionParser, which in turn overrides parseMapElement, etc. i was hoping that future releases of spring could support this situation via out of the box configuration. it seems like it would be fairly straightforward to respect a "type" attribute of the <map> and <list> (and any other) elements to support customization of the Map/Collection implementation without requiring custom extensions. if there"s sufficient interest, i"d be happy to contribute. jon |
|
From: Crater, J. \(EDS\) <Jon...@me...> - 2005-07-19 18:26:00
|
Thanks for your reply. I wasn't aware of the various factory bean classes you mentioned, so this thread has already been useful. What I really need, though, is the ability to override the default Map/List/Set implementation class on an as-needed basis. So, for example, one of the properties of one of my Spring-managed beans is a Map that needs to retain the order in which it's configured, so I'd like to inject an instance of SequencedHashMap, but I don't have a way to do that without extensions. Using a MapFactoryBean won't help me in this case because the order will not be preserved, as the source map is required to have been created. =20 In another case, I may need to inject an instance of LinkedList, etc. So, I don't want to override every single one, just the ones where my needs diverge from what is built-in. If a "type" attribute isn't justified, is there another way? ________________________________=20 Actually, this can already be achieved through using MapFactoryBean, ListFactoryBean and SetFactoryBean, respectively - passing a source <map> / <list> / <set> in and specifying the desired "targetMapClass" / "targetListClass" / "targetSetClass". =20 I don"t see much advantage in a "type" attribute on the corresponding tags directly, actually. It"s not that common to override the collection implementations on a per-collection basis to justify a special shortcut for this, IMO. =20 Or are you trying to centrally override the default Map / List / Set implementations that Spring uses for <map> / <list> / <set>? Specifying those implementation classes _once_ rather than repeating them for every single collection definition? =20 Juergen =20 =20 ________________________________ =20 From: springframework-developer-admin@li... [mailto:springframework-developer-admin@li...] On Behalf Of Crater, Jon (EDS) Sent: Tuesday, July 19, 2005 5:34 PM To: springframework-developer@li... Subject: [Springframework-developer] feature request =20 =20 i currently have a need to customize the implementation classes created when spring parses the definitions for properties containing <map>, <list>, etc. elements. currently i have to subclass AbstractXmlApplicationContext and override initBeanDefinitionReader(XmlBeanDefinitionReader r) to call setParserClass(Class c) with my own subclass of BeanDefinitionParser, which in turn overrides parseMapElement, etc. i was hoping that future releases of spring could support this situation via out of the box configuration. it seems like it would be fairly straightforward to respect a "type" attribute of the <map> and <list> (and any other) elements to support customization of the Map/Collection implementation without requiring custom extensions. =20 if there"s sufficient interest, i"d be happy to contribute. =20 jon |
|
From: Juergen H. <ju...@in...> - 2005-07-19 15:59:20
|
Actually, this can already be achieved through using MapFactoryBean, ListFactoryBean and SetFactoryBean, respectively - passing a source <map> / <list> / <set> in and specifying the desired "targetMapClass" / "targetListClass" / "targetSetClass". I don't see much advantage in a "type" attribute on the corresponding tags directly, actually. It's not that common to override the collection implementations on a per-collection basis to justify a special shortcut for this, IMO. Or are you trying to centrally override the default Map / List / Set implementations that Spring uses for <map> / <list> / <set>? Specifying those implementation classes _once_ rather than repeating them for every single collection definition? Juergen ________________________________ From: spr...@li... [mailto:spr...@li...] On Behalf Of Crater, Jon (EDS) Sent: Tuesday, July 19, 2005 5:34 PM To: spr...@li... Subject: [Springframework-developer] feature request i currently have a need to customize the implementation classes created when spring parses the definitions for properties containing <map>, <list>, etc. elements. currently i have to subclass AbstractXmlApplicationContext and override initBeanDefinitionReader(XmlBeanDefinitionReader r) to call setParserClass(Class c) with my own subclass of BeanDefinitionParser, which in turn overrides parseMapElement, etc. i was hoping that future releases of spring could support this situation via out of the box configuration. it seems like it would be fairly straightforward to respect a "type" attribute of the <map> and <list> (and any other) elements to support customization of the Map/Collection implementation without requiring custom extensions. if there's sufficient interest, i'd be happy to contribute. jon |
|
From: Crater, J. \(EDS\) <Jon...@me...> - 2005-07-19 15:34:31
|
i currently have a need to customize the implementation classes created when spring parses the definitions for properties containing <map>, <list>, etc. elements. currently i have to subclass AbstractXmlApplicationContext and override initBeanDefinitionReader(XmlBeanDefinitionReader r) to call setParserClass(Class c) with my own subclass of BeanDefinitionParser, which in turn overrides parseMapElement, etc. i was hoping that future releases of spring could support this situation via out of the box configuration. it seems like it would be fairly straightforward to respect a "type" attribute of the <map> and <list> (and any other) elements to support customization of the Map/Collection implementation without requiring custom extensions. =20 if there's sufficient interest, i'd be happy to contribute. =20 jon =20 =20 |
|
From: Juergen H. <ju...@in...> - 2005-07-19 13:13:58
|
Any news on that front, Dave? Have you had a chance to try a recent nightly
snapshot?
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Juergen Hoeller
Sent: Saturday, July 16, 2005 9:21 PM
To: spr...@li...
Subject: Re: [Springframework-developer] UnexpectedRollbackException with
nested TransactionInterceptor from SLSB
Hi Dave,
Thanks for pointing that out! This is indeed a case that can be handled more
appropriately in JtaTransactionManager.
JTA's registerSynchronization will throw a RollbackException if the existing
JTA transaction is already marked as rollback-only. This means that we
cannot register Spring transaction synchronizations there: Hence, I've
changed JtaTransactionManager to immediately trigger the synchronizations
with outcome status 'rollback' in that case, which should be appropriate.
I'll commit this tonight; it will be released in Spring 1.2.3. Please give
tomorrow's nightly snapshot (i.e. the one generated in 27 hours) a try and
let me know whether it works for you!
Juergen
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...] On Behalf Of
Dave Ballard
Sent: Friday, July 15, 2005 6:13 PM
To: spr...@li...
Subject: [Springframework-developer] UnexpectedRollbackException with nested
TransactionInterceptor from SLSB
Hi Juergen,
I'm using Spring 1.2.2 with WebLogic 6.1. I've got two Spring-managed
"service" beans, both using JtaTransactionManager, with
"PROPAGATION_REQUIRED,-Exception" for transactional methods. Let's say I've
got:
* ServiceA.methodA()
* ServiceB.methodB()
In my scenario, methodA() throws an Exception. In the cases where Spring
starts the transaction, no problem. The caller receives the exception:
* caller->serviceA.methodA() - Exception received as expected
* caller->serviceB.methodB()->serviceA.methodA() - Exception received as
expected
When an EJB SLSB starts the transaction, the following scenario works as
expected:
* caller->SLSB->serviceA.methodA() - Exception received as expected
However, when the Spring-managed bean calls are nested, I receive an
UnexpectedRollbackException:
* caller->SLSB->serviceB.methodB()->serviceA.methodA() -
UnexpectedRollbackException received
Regards,
Dave
---
ERROR 10:47:05,966 [ExecuteThread: '30' for queue: 'default'] [user]
(TransactionAspectSupport.java:279) - Application exception overridden by
rollback exception
myapp.exceptions.common.SystemException: foo
at
myapp.service.cashmgmt.CashMgmtServiceImpl.findFoobar(CashMgmtServiceImpl.ja
va:298)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
ERROR 10:47:05,981 [ExecuteThread: '30' for queue: 'default'] [user]
(MoneyTransactionSessionEJB.java:3031) - Cancel not processed
org.springframework.transaction.UnexpectedRollbackException: JTA transaction
unexpectedly rolled back (maybe due to a timeout); nested exception is
weblogic.transaction.RollbackException: Unknown reas on
weblogic.transaction.internal.AppSetRollbackOnlyException
at
weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImp
l.java:486)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:281)
at
weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(Transac
tionManagerImpl.java:275)
at
org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly(
JtaTransactionManager.java:768)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:533)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy107.findFoobar(Unknown Source)
at
myapp.service.mtran.PaymentCancelServiceImpl.findFoobar(PaymentCancelService
Impl.java:479)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopU
tils.java:292)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:155)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:122)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:57)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
--------------- nested within: ------------------
weblogic.transaction.RollbackException: Unknown reason - with nested
exception:
[weblogic.transaction.internal.AppSetRollbackOnlyException]
at
weblogic.transaction.internal.TransactionImpl.throwRollbackException(Transac
tionImpl.java:1526)
at
weblogic.transaction.internal.ServerTransactionImpl.registerSynchronization(
ServerTransactionImpl.java:450)
at
org.springframework.transaction.jta.JtaTransactionManager.doRegisterAfterCom
pletionWithJtaTransaction(JtaTransactionManager.java:818)
at
org.springframework.transaction.jta.JtaTransactionManager.registerAfterCompl
etionWithExistingTransaction(JtaTransactionManager.java:782)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.t
riggerAfterCompletion(AbstractPlatformTransactionManager.java:635)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.p
rocessRollback(AbstractPlatformTransactionManager.java:547)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.r
ollback(AbstractPlatformTransactionManager.java:506)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.doClose
TransactionAfterThrowing(TransactionAspectSupport.java:276)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:61)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy119.findFoobar(Unknown Source)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB.processCa
ncel(MoneyTransactionSessionEJB.java:2876)
at
myapp.session.advance.tmoneytransaction.MoneyTransactionSessionEJB_xvjdlx_EL
OImpl.processCancel(MoneyTransactionSessionEJB_xvjdlx_ELOImpl.java:719)
at java.lang.reflect.Method.invoke(Native Method)
at
org.springframework.ejb.access.LocalSlsbInvokerInterceptor.invoke(LocalSlsbI
nvokerInterceptor.java:66)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:144)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:174)
at $Proxy126.processCancel(Unknown Source)
at myapp.webtier.advance.CancelCommit.process(CancelCommit.java:90)
at
jsp_servlet._jsp._advance.__cancel_confirm._jspService(__cancel_confirm.java
:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:275)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
myapp.utils.filters.AccessControlFilter.doFilterInternal(AccessControlFilter
.java:215)
at
myapp.utils.filters.AccessControlFilter.doFilter(AccessControlFilter.java:76
)
at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:2708)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2427)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:159)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:140)
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from
IBM. Find simple to follow Roadmaps, straightforward articles, informative
Webcasts and more! Get everything you need to get up to speed, fast.
http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from
IBM. Find simple to follow Roadmaps, straightforward articles, informative
Webcasts and more! Get everything you need to get up to speed, fast.
http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|