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: <jue...@we...> - 2004-11-21 11:31:28
|
Indeed, it's simply the class loader not the getting garbage-collected; = usually, something still keeps a reference to the class loader. I was = initially confused about the reasons for such effects shown in = profilers, as indicated by some of my mails from earlier this year. = However, it turned out to be all caused by the class loader problem. =20 The main suspect is the JavaBeans Introspector, which keeps references = to all introspected classes and thus also to their class loader: If that = Introspector in the JVM class loader keeps a reference to a class from a = web app class loader, that web app class loader will never become = garbage-collected. =20 A further reason is a ThreadLocal that keeps a reference to an object = loaded in the web app class loader. If such a object is attached to a = thread from the server's thread pool, the thread will keep a reference = to the web app class loader beyond web app shutdown and thus prevent the = class loader from garbage collection. =20 We've cleaned everything we can in Spring, both on the JavaBeans = Introspector side (we immediately clear the JVM-wide cache there and = cache in the web app itself) and the ThreadLocal side (we always reset = ThreadLocals after processing). To the best of my knowledge, there's no = such leak left. =20 For Introspector-related problems in third-party libraries, Spring ships = an IntrospectorCleanupListener for web applications, to be registered as = listener in web.xml. This simply clears the entire JVM-level cache of = the JavaBeans Introspector on web app shutdown. =20 For ThreadLocals, there's nothing we can do to clean up after = third-party libraries, I'm afraid. So the only way to move forward there = is to make the developers aware of those issues in their products. =20 Juergen =20 ________________________________ Von: spr...@li... im Auftrag = von Guillaume Poirier Gesendet: So 21.11.2004 05:54 An: spr...@li... Betreff: Re: [Springframework-developer] Further Investigations into OOM = Exceptions on Redeploy It has nothing to do with what you call full objects contants. There's nothing different from what you call a full object contants and a String contants, except that your profiler might not show you the String contants... Such objects sticking around is a symptom of a ClassLoader leak, not a cause. The issue DOM4J has is its use of ThreadLocal for caching, it never clean it up. I just created an issue in DOM4J's bugtracking tool at sourceforge. (https://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1070309&gr= oup_id=3D16035&atid=3D116035) I'm starting to write a tool to detect that kind of memory leak. So far = I never saw any profiler or heap analyser that is able to help at all for = that kind of leak, except may be finding that there's a leak. The problem = with those tools is that they only allow to create object graphs that exclude ClassLoaders and Class objects, and that particular leak comes direct or indirect from reference to thoses. I had some code to detect those from = a while ago, but it is far from user friendly, so I'm gonna try to have something that doesn't involve too much setup. Guillaume ----- Original Message ----- From: "Alef Arendsen" <al...@jt...> To: <spr...@li...> Sent: Saturday, November 20, 2004 9:03 PM Subject: RE: [Springframework-developer] Further Investigations into OOM Exceptions on Redeploy Didn't we come to conclusion some time ago that this is mainly a dom4j issue, with those full object constants? Alef p.s. mail from a couple of months ago: Op de een of andere manier worden full object constanten (private static final BlaType TRUE =3D new BLaType("true")) worden op de een of andere = manier niet ge-GC'ed als je de classloader discard. Dit geeft problemen bij re-deployment in Tomcat en eigenlijk bij elke willekeurige andere = servlet container (re-deployment is het discarding van een classloader die de = webapp heeft ingeladen). Uiteraard is re-deployment tijdens productie niet echt = ok, dus daar geeft het geen issues. Anyway, er is gekeken naar Spring en er is het een en ander veranderd = wat resource leaks in Spring voorkomt (zo goed als mogelijk), maar full = object constanten zijn nou eenmaal een common programming style (hibernate = gebruikt ze ook) dus het out-of-memory-probleem zal niet helemaal weg zijn zodra = we naar Spring 1.0.2 (morgen uit) upgraden. Hieronder concluderend verhaaltje van J=FCrgen. Later, Alef I've just spent about 10 hours profiling Spring, using the Image = Database and Petclinic samples. (BTW, I've used an evaluation version of = JProfiler from ej-technologies - nice product!) Although I still don't completely understand the garbage collection behavior, I've figured out the following issues. Each of them simply prevents the respective classes from getting garbage collected on destruction of the class loader (e.g. on Tomcat web app shutdown). - A classic singleton with a class variable holding the object. I've reworked GlobalAdvisorAdapterRegistry and SQLErrorCodesFactory to hold = the respective singleton as a WeakReference. - A static cache. I've reworked CachedIntrospectionResults to use a WeakHashMap with WeakReferences as values. - A ThreadLocal with a default other than null. I've reworked TransactionSynchronizationManager to use null as default for the = resource map, setting a HashMap there on demand, removing the entire HashMap when unbinding the last resource. - Constants that define a full object. We have a number of those, for example ClassFilters.TRUE and AdvisedSupport.EMPTY_TARGET_SOURCE. I've = tried for quite a while, but I haven't been able to figure out a way to define such constants such that they will be garbage collected. The latter programming style is not uncommon, so I really don't = understand why it causes trouble with garbage collection. Hibernate uses a similar style for its FlushMode, for example. In general, other frameworks like CGLIB, Hibernate, Velocity have huge resource leaks on web app shutdown, while just the constants issue = remains with Spring now. As long as those huge third-party leaks are not = addressed, I'm not worried at all by the single remaining Spring issue. As I initially said, we shouldn't exaggerate the problem, as it = basically just affects hot reloading of web apps - mainly a development feature anyway. We need to make that clear to users too, to avoid comments a la "Spring is not usable for real apps because it leaks on hot = redeployment". Juergen =3D=3D JTeam B.V. Donker Curtiusstraat 7-412 1051 JL Amsterdam T: +31 20 486 20 36 M: +31 6 24 11 1996 F: +31 84 837 00 00 E: al...@jt... <mailto:al...@jt...> W: http://www.jteam.nl <http://www.jteam.nl> ________________________________ From: spr...@li... on behalf of Paul Buying Sent: Sun 11/21/2004 2:45 AM To: spr...@li... Subject: Re: [Springframework-developer] Further Investigations into OOM Exceptions on Redeploy Hi Seth, I'm experiencing exactly the same problem in a Hibernate/Spring = situation in our project. I'm able to redeploy somewhere around 25 times, then we = need to start all over. The problem occurs both with deployment on Tomcat and = JBoss. Next to Hibernate we also indeed use cglib and dom4j. Let me know if I can help by describing our situation here, or something else. Rgds, Paul. Paul Buying On 20 nov 2004, at 1:06, Seth Ladd wrote: I wanted to send out this quick FYI. We have a new Spring/Hibernate webapp starting up. I used this opportunity to look into OOM Exceptions on redeploy (again). Without Hibernate SessionFactory in my applicationContext, I seem to be able to redeploy all day long. Once I add in the SessionFactory, I can redeploy only 10-15 times before OutOfMemoryException. The problem definitely seems to be from Hibernate, or cglib, or dom4j. I'm going to try Guillaume Poirier's listener that cleans up Dom4J. But, the good news is that it appears that Spring is good at not leaving ClassLoaders around. I'll post anything if I found out more. Thanks, Seth ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Darren D. <da...@da...> - 2004-11-21 11:14:17
|
After a recent mail about Spring issues in JDK 1.3, I did a little more=20 testing on my own machines, and the SF CF machines. It's quite important=20 to me as we're one of the laggard companies that still uses it via=20 WebSphere 5.0.x! I ran the entire test suite (built obviously with a 1.4 JDK) on 1.3 and was= =20 actually pretty pleased with the results. There were 6 failures and 24=20 errors. Here's a brief breakdown for those interested; Of the 24 errors.. * 9 are due to references to java.sql.Savepoint in the test cases, * 7 are due to running tests explicitly designed for JDK 1.4 (for example= =20 Jdk14ControlFlowTests and JdkRegexpMethodPointcutTests) which can be=20 excluded with test.excludes=3D... I renamed JdkRegexpMethodPointcutTests t= o=20 Jdk14RegexpMethodPointcutTests if that's ok? Makes it easier to exclude=20 tests by naming patterns. * 2 are in a large test class and reference java.util.prefs - these tests= =20 have been amended to simply return if JDK 1.3 is detected. Of the remaining 6, 2 are caused by the new=20 org.springframework.core.CollectionFactory since it doesn't check the=20 initialCapacity parameter before creating a Commons Collection instance on= =20 JDK 1.3. Commons Collections cannot have an initial capacity of 0. I've=20 changed the code in this class and added corresponding tests Juergen. Just= =20 committed if you want to check. The remaining 4 errors probably need looking at on a case by case basis to= =20 see if they would cause usage issues or if they are just test code issues = =20 =2D I haven't had time to check these yet. The 6 failures are all in ResourceBundleMessageSourceTests and are mildly=20 concerning as I think this would cause a usage failure if anyone depended=20 on this functionality. It seems (without going into it closely) that all=20 the failures occur when a resource bundle is referenced with a Locale that= =20 specifies a country, language AND a variant in its constructor. It seems=20 that the variant is ignored and the resource bundle corresponding to the=20 country and language only is used instead. I'll post more later. Got to go sort out my son's birthday party now. =2D-=20 Darren Davison Public Key: #DD356B0D |
|
From: Guillaume P. <gpo...@gl...> - 2004-11-21 04:54:27
|
It has nothing to do with what you call full objects contants. There's nothing different from what you call a full object contants and a String contants, except that your profiler might not show you the String contants... Such objects sticking around is a symptom of a ClassLoader leak, not a cause. The issue DOM4J has is its use of ThreadLocal for caching, it never clean it up. I just created an issue in DOM4J's bugtracking tool at sourceforge. (https://sourceforge.net/tracker/index.php?func=detail&aid=1070309&group_id=16035&atid=116035) I'm starting to write a tool to detect that kind of memory leak. So far I never saw any profiler or heap analyser that is able to help at all for that kind of leak, except may be finding that there's a leak. The problem with those tools is that they only allow to create object graphs that exclude ClassLoaders and Class objects, and that particular leak comes direct or indirect from reference to thoses. I had some code to detect those from a while ago, but it is far from user friendly, so I'm gonna try to have something that doesn't involve too much setup. Guillaume ----- Original Message ----- From: "Alef Arendsen" <al...@jt...> To: <spr...@li...> Sent: Saturday, November 20, 2004 9:03 PM Subject: RE: [Springframework-developer] Further Investigations into OOM Exceptions on Redeploy Didn't we come to conclusion some time ago that this is mainly a dom4j issue, with those full object constants? Alef p.s. mail from a couple of months ago: Op de een of andere manier worden full object constanten (private static final BlaType TRUE = new BLaType("true")) worden op de een of andere manier niet ge-GC'ed als je de classloader discard. Dit geeft problemen bij re-deployment in Tomcat en eigenlijk bij elke willekeurige andere servlet container (re-deployment is het discarding van een classloader die de webapp heeft ingeladen). Uiteraard is re-deployment tijdens productie niet echt ok, dus daar geeft het geen issues. Anyway, er is gekeken naar Spring en er is het een en ander veranderd wat resource leaks in Spring voorkomt (zo goed als mogelijk), maar full object constanten zijn nou eenmaal een common programming style (hibernate gebruikt ze ook) dus het out-of-memory-probleem zal niet helemaal weg zijn zodra we naar Spring 1.0.2 (morgen uit) upgraden. Hieronder concluderend verhaaltje van Jürgen. Later, Alef I've just spent about 10 hours profiling Spring, using the Image Database and Petclinic samples. (BTW, I've used an evaluation version of JProfiler from ej-technologies - nice product!) Although I still don't completely understand the garbage collection behavior, I've figured out the following issues. Each of them simply prevents the respective classes from getting garbage collected on destruction of the class loader (e.g. on Tomcat web app shutdown). - A classic singleton with a class variable holding the object. I've reworked GlobalAdvisorAdapterRegistry and SQLErrorCodesFactory to hold the respective singleton as a WeakReference. - A static cache. I've reworked CachedIntrospectionResults to use a WeakHashMap with WeakReferences as values. - A ThreadLocal with a default other than null. I've reworked TransactionSynchronizationManager to use null as default for the resource map, setting a HashMap there on demand, removing the entire HashMap when unbinding the last resource. - Constants that define a full object. We have a number of those, for example ClassFilters.TRUE and AdvisedSupport.EMPTY_TARGET_SOURCE. I've tried for quite a while, but I haven't been able to figure out a way to define such constants such that they will be garbage collected. The latter programming style is not uncommon, so I really don't understand why it causes trouble with garbage collection. Hibernate uses a similar style for its FlushMode, for example. In general, other frameworks like CGLIB, Hibernate, Velocity have huge resource leaks on web app shutdown, while just the constants issue remains with Spring now. As long as those huge third-party leaks are not addressed, I'm not worried at all by the single remaining Spring issue. As I initially said, we shouldn't exaggerate the problem, as it basically just affects hot reloading of web apps - mainly a development feature anyway. We need to make that clear to users too, to avoid comments a la "Spring is not usable for real apps because it leaks on hot redeployment". Juergen == JTeam B.V. Donker Curtiusstraat 7-412 1051 JL Amsterdam T: +31 20 486 20 36 M: +31 6 24 11 1996 F: +31 84 837 00 00 E: al...@jt... <mailto:al...@jt...> W: http://www.jteam.nl <http://www.jteam.nl> ________________________________ From: spr...@li... on behalf of Paul Buying Sent: Sun 11/21/2004 2:45 AM To: spr...@li... Subject: Re: [Springframework-developer] Further Investigations into OOM Exceptions on Redeploy Hi Seth, I'm experiencing exactly the same problem in a Hibernate/Spring situation in our project. I'm able to redeploy somewhere around 25 times, then we need to start all over. The problem occurs both with deployment on Tomcat and JBoss. Next to Hibernate we also indeed use cglib and dom4j. Let me know if I can help by describing our situation here, or something else. Rgds, Paul. Paul Buying On 20 nov 2004, at 1:06, Seth Ladd wrote: I wanted to send out this quick FYI. We have a new Spring/Hibernate webapp starting up. I used this opportunity to look into OOM Exceptions on redeploy (again). Without Hibernate SessionFactory in my applicationContext, I seem to be able to redeploy all day long. Once I add in the SessionFactory, I can redeploy only 10-15 times before OutOfMemoryException. The problem definitely seems to be from Hibernate, or cglib, or dom4j. I'm going to try Guillaume Poirier's listener that cleans up Dom4J. But, the good news is that it appears that Spring is good at not leaving ClassLoaders around. I'll post anything if I found out more. Thanks, Seth ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Seth L. <set...@gm...> - 2004-11-21 04:15:32
|
On Sun, 21 Nov 2004 03:03:41 +0100, Alef Arendsen <al...@jt...> wrote: > Didn't we come to conclusion some time ago that this is mainly a dom4j issue, with those full object constants? Yeah. Just wanted to say "Spring, by itself, is working great these days!" :) Seth |
|
From: Alef A. <al...@jt...> - 2004-11-21 02:02:20
|
Didn't we come to conclusion some time ago that this is mainly a dom4j =
issue, with those full object constants?
=20
Alef
=20
p.s. mail from a couple of months ago:
=20
Op de een of andere manier worden full object constanten (private static =
final BlaType TRUE =3D new BLaType("true")) worden op de een of andere =
manier niet ge-GC'ed als je de classloader discard. Dit geeft problemen =
bij re-deployment in Tomcat en eigenlijk bij elke willekeurige andere =
servlet container (re-deployment is het discarding van een classloader =
die de webapp heeft ingeladen). Uiteraard is re-deployment tijdens =
productie niet echt ok, dus daar geeft het geen issues.
Anyway, er is gekeken naar Spring en er is het een en ander veranderd =
wat resource leaks in Spring voorkomt (zo goed als mogelijk), maar full =
object constanten zijn nou eenmaal een common programming style =
(hibernate gebruikt ze ook) dus het out-of-memory-probleem zal niet =
helemaal weg zijn zodra we naar Spring 1.0.2 (morgen uit) upgraden.
Hieronder concluderend verhaaltje van J=FCrgen.
Later,
Alef
I've just spent about 10 hours profiling Spring, using the Image =
Database and Petclinic samples. (BTW, I've used an evaluation version of =
JProfiler from ej-technologies - nice product!)
Although I still don't completely understand the garbage collection =
behavior, I've figured out the following issues. Each of them simply =
prevents the respective classes from getting garbage collected on =
destruction of the class loader (e.g. on Tomcat web app shutdown).
- A classic singleton with a class variable holding the object. I've =
reworked GlobalAdvisorAdapterRegistry and SQLErrorCodesFactory to hold =
the respective singleton as a WeakReference.
- A static cache. I've reworked CachedIntrospectionResults to use a =
WeakHashMap with WeakReferences as values.
- A ThreadLocal with a default other than null. I've reworked =
TransactionSynchronizationManager to use null as default for the =
resource map, setting a HashMap there on demand, removing the entire =
HashMap when unbinding the last resource.
- Constants that define a full object. We have a number of those, for =
example ClassFilters.TRUE and AdvisedSupport.EMPTY_TARGET_SOURCE. I've =
tried for quite a while, but I haven't been able to figure out a way to =
define such constants such that they will be garbage collected.
The latter programming style is not uncommon, so I really don't =
understand why it causes trouble with garbage collection. Hibernate uses =
a similar style for its FlushMode, for example.
In general, other frameworks like CGLIB, Hibernate, Velocity have huge =
resource leaks on web app shutdown, while just the constants issue =
remains with Spring now. As long as those huge third-party leaks are not =
addressed, I'm not worried at all by the single remaining Spring issue.
As I initially said, we shouldn't exaggerate the problem, as it =
basically just affects hot reloading of web apps - mainly a development =
feature anyway. We need to make that clear to users too, to avoid =
comments a la "Spring is not usable for real apps because it leaks on =
hot redeployment".=20
Juergen
=3D=3D
JTeam B.V.
Donker Curtiusstraat 7-412
1051 JL Amsterdam
T: +31 20 486 20 36
M: +31 6 24 11 1996
F: +31 84 837 00 00
E: al...@jt... <mailto:al...@jt...>=20
W: http://www.jteam.nl <http://www.jteam.nl> =20
________________________________
From: spr...@li... on behalf of =
Paul Buying
Sent: Sun 11/21/2004 2:45 AM
To: spr...@li...
Subject: Re: [Springframework-developer] Further Investigations into OOM =
Exceptions on Redeploy
Hi Seth,=20
I'm experiencing exactly the same problem in a Hibernate/Spring =
situation in our project. I'm able to redeploy somewhere around 25 =
times, then we need to start all over. The problem occurs both with =
deployment on Tomcat and JBoss.=20
Next to Hibernate we also indeed use cglib and dom4j.=20
Let me know if I can help by describing our situation here, or something =
else.=20
Rgds,=20
Paul.=20
Paul Buying=20
On 20 nov 2004, at 1:06, Seth Ladd wrote:=20
I wanted to send out this quick FYI. We have a new Spring/Hibernate=20
webapp starting up. I used this opportunity to look into OOM=20
Exceptions on redeploy (again).=20
Without Hibernate SessionFactory in my applicationContext, I seem to=20
be able to redeploy all day long. Once I add in the SessionFactory, I=20
can redeploy only 10-15 times before OutOfMemoryException.=20
The problem definitely seems to be from Hibernate, or cglib, or dom4j.=20
I'm going to try Guillaume Poirier's listener that cleans up Dom4J.=20
But, the good news is that it appears that Spring is good at not=20
leaving ClassLoaders around. I'll post anything if I found out more.=20
Thanks,=20
Seth=20
-------------------------------------------------------=20
This SF.Net email is sponsored by: InterSystems CACHE=20
FREE OODBMS DOWNLOAD - A multidimensional database that combines=20
robust object and relational technologies, making it a perfect match=20
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8=20
_______________________________________________=20
Springframework-developer mailing list=20
Spr...@li...=20
https://lists.sourceforge.net/lists/listinfo/springframework-developer=20
|
|
From: Paul B. <pa...@di...> - 2004-11-21 01:17:30
|
Hi Seth, I'm experiencing exactly the same problem in a Hibernate/Spring situation in our project. I'm able to redeploy somewhere around 25 times, then we need to start all over. The problem occurs both with deployment on Tomcat and JBoss. Next to Hibernate we also indeed use cglib and dom4j. Let me know if I can help by describing our situation here, or something else. Rgds, Paul. Paul Buying On 20 nov 2004, at 1:06, Seth Ladd wrote: > I wanted to send out this quick FYI. We have a new Spring/Hibernate > webapp starting up. I used this opportunity to look into OOM > Exceptions on redeploy (again). > > Without Hibernate SessionFactory in my applicationContext, I seem to > be able to redeploy all day long. Once I add in the SessionFactory, I > can redeploy only 10-15 times before OutOfMemoryException. > > The problem definitely seems to be from Hibernate, or cglib, or dom4j. > I'm going to try Guillaume Poirier's listener that cleans up Dom4J. > > But, the good news is that it appears that Spring is good at not > leaving ClassLoaders around. I'll post anything if I found out more. > > Thanks, > Seth > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > |
|
From: <jue...@we...> - 2004-11-20 19:49:10
|
I've just committed a bunch of changes.
=20
The JasperReports web view support does not define specific exceptions =
for startup failures now but uses standard exceptions instead (similar =
to VelocityView and co). Additionally, I've reworked the implementation =
hierarchy to avoid Writer/OutputStream-specific subclasses: =
AbstractJasperReportsView does not only define a "createExporter" =
template method but also a "useWriter" method that subclasses can use to =
indicate whether they want text or binary content written.
=20
Furthermore, I've reduced the scope of JasperReportsUtils: It has just =
render methods left, as the rest is covered in a simple enough fashion =
by the JasperReports API itself now (in particular as of version 0.6.2). =
For rendering, there's always a new instance of JRXxxExporter getting =
created: Those exporter instances are not meant to be reused and are not =
thread-safe, judging from the implementation. (JasperReports API doc =
does generally leaves something to be desired.)
=20
Report data can be any object now, to be converted to a JRDataSource: =
either a JRDataSource itself, a Collection or an object array. In the =
web view, by default a corresponding object in the given model gets =
located (first looking for a JRDataSource, then for a Collection, then =
for an array). A specific model attribute gets used if the =
"reportDataKey" property is specified on AbstractJasperReportsView, =
which can in turn refer to any of those types. The difference is that it =
doesn't matter if there are other collections or arrays in the model =
then.
=20
I wanted to avoid a default model key ("reportData" or the like) being =
used if no JRDataSource is found in the model. A Controller should be =
able to pass any model in, choosing any key for report data, or also any =
parameter under the key "reportData" (with report data under a different =
name). It seems to me that auto-detection by type, with the option to =
specify a specific model key instead (on the view definition), is the =
better strategy. If other parameters are collections or arrays, a =
"reportDataKey" *must* be specified.
=20
Rob, I hope you don't object to these changes, in particular not to the =
reduced scope of JasperReportsUtils. My main intent there was to avoid =
1-to-1 duplication of methods in JasperReports API, which isn't =
desirable in multiple respects (for example, maintenance and =
compatibility with the recommended style in future JasperReports =
versions). Convenience methods to render a specific format (for use =
outside web views) add value in any case, as they replace a couple of =
lines of JasperReports API calls.
=20
Juergen
=20
=20
________________________________
Von: spr...@li... im Auftrag =
von Rob Harrop
Gesendet: Fr 19.11.2004 17:06
An: spr...@li...
Betreff: Re: [Springframework-developer] JasperReports Support in 1.1.3
Jurgen,
Fire away with any modfications - I'll be sure to pay attention to what
you do so I can get the same pattern in the rest of may code. As for
adding auto-lookup of collections to wrap with
JRBeanCollectionDataSource - I did that this morning along with
appropriate tests. It uses a specific parameter name, reportData, which
should be an instance of Collection. The reason I didn't opt for just
taking the first collection it sees is because I don't know if JR will
support passing a collection as parameter at some point in the future or
whether some other reporting engine already has this support.
Rob
j=FCrgen h=F6ller [werk3AT] wrote:
>Thanks for moving the JasperReports support over to the main sources, =
Rob! I'm currently about to revise it a bit, for example regarding =
exception handling on initialization (implementing afterPropertiesSet =
instead of overriding initApplicationContext, to allow for throwing any =
exception and avoid the need to use unchecked wrapper exceptions).
>
>There's one further thing I'd like to improve: JRDataSource lookup. It =
would be good if controller code would not have to add a =
JasperReports-specific class to the model. Instead, we could pass in a =
bean collection or bean array, to be implicitly wrapped with a =
JRBeanCollectionDataSource or a JRBeanArrayDataSource, respectively.
>
>It looks to me that the JasperReports parameter map does not support =
collections or arrays anyway, so we could in principle auto-detect a =
collection or array in the model and wrap it accordingly as =
JRDataSource. Else, we could define a specific model name for the =
JRDataSource (as bean property on the view): if specified, the given =
model object will be used (wrapped if necessary), rather than searching =
the model map for matching values.
>
>I've also updated JasperReports to the recently released 0.6.2. I'll =
commit my current state tonight or tomorrow morning.
>
>Juergen
>
>
>________________________________
>
>Von: spr...@li... im Auftrag =
von Rob Harrop
>Gesendet: Mi 17.11.2004 10:34
>An: spr...@li...
>Betreff: [Springframework-developer] JasperReports Support in 1.1.3
>
>
>
>If everyone is in agreement I would like to move the JasperReports =
stuff
>into the main branch ready for 1.1.3. I spent some time yesterday
>polishing the JavaDocs for this module which I plan to finish off over
>the next few days, plus I'll add a couple of pages of documentation for
>this as well.
>
>Rob
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: InterSystems CACHE
>FREE OODBMS DOWNLOAD - A multidimensional database that combines
>robust object and relational technologies, making it a perfect match
>for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>
>
>-------------------------------------------------------
>This SF.Net email is sponsored by: InterSystems CACHE
>FREE OODBMS DOWNLOAD - A multidimensional database that combines
>robust object and relational technologies, making it a perfect match
>for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>_______________________________________________
>Springframework-developer mailing list
>Spr...@li...
>https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
>=20
>
-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
Springframework-developer mailing list
Spr...@li...
https://lists.sourceforge.net/lists/listinfo/springframework-developer
|
|
From: Rod J. <ro...@in...> - 2004-11-20 08:47:25
|
i would muchy prefer a CGLIB solution. I've never been totally comfortable with workarounds in Spring. Can we defer the
resolution, adding a note? What's their timeframe?
Rob Harrop wrote:
> All,
>
> Chris from CGLIB replied to me on this issue:
>
>> Hi Rob,
>>
>> Probably #2 ("Create a dummy object that Dispatchers can re-route to
>> during construction") is the simplest solution, but I don't like it
>> either. It is probably better for me to add an option to Enhancer:
>>
>> e.setInterceptCallsFromConstructor(false);
>>
>> We actually have to jump through some hoops to intercept those calls in
>> the first place, so I hope it won't be hard to ignore them. You could
>> then also get rid of the code you added for the previous issue.
>>
>> I'll look into it tomorrow (3am here now...)
>>
>> Chris
>>
> Looks like we will get a solution to this problem at the CGLIB level.
>
> Rob
>
> Rob Harrop wrote:
>
>> All,
>>
>> I have posted an update on JIRA regarding these issues (which are the
>> same) and I would appreciated everyones on input on the suggested
>> solutions.
>>
>> http://opensource.atlassian.com/projects/spring/browse/SPR-472
>>
>> For those of you who are unware 1.1.1 conatined a nasty bug where
>> proxy creation, with CGLIB, would restore any default state in the
>> target object if your constructor set this state explicitly through
>> method calls. I fixed this 1.1.2 although annoying the fix was only
>> partial and this problem still shows up, but only when methods called
>> by the constructor are unadvised.
>>
>> Rob
>>
>>
>> -------------------------------------------------------
>> This SF.Net email is sponsored by: InterSystems CACHE
>> FREE OODBMS DOWNLOAD - A multidimensional database that combines
>> robust object and relational technologies, making it a perfect match
>> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
>> _______________________________________________
>> Springframework-developer mailing list
>> Spr...@li...
>> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>>
>>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
--
____________________________________________________
Rod Johnson
Interface21 - Spring Services from the Source
http://www.springframework.com
Founder, Spring Framework:
http://www.springframework.org
Author, "Expert One-on-One J2EE Development Without EJB"
(May 2004, with Juergen Hoeller).
http://www.amazon.com/exec/obidos/ASIN/0764558315/
Author, "Expert One-on-One J2EE Design and Development"
(October 2002).
http://www.amazon.com/exec/obidos/tg/detail/-/0764543857/
____________________________________________________
Interface21 Limited
Registered Office Summit House, 2-2a Highfield Road, Dartford, Kent DA1 2JY
Registered in England and Wales No. 5187766
____________________________________________________
|
|
From: Seth L. <set...@gm...> - 2004-11-20 00:07:01
|
I wanted to send out this quick FYI. We have a new Spring/Hibernate webapp starting up. I used this opportunity to look into OOM Exceptions on redeploy (again). Without Hibernate SessionFactory in my applicationContext, I seem to be able to redeploy all day long. Once I add in the SessionFactory, I can redeploy only 10-15 times before OutOfMemoryException. The problem definitely seems to be from Hibernate, or cglib, or dom4j. I'm going to try Guillaume Poirier's listener that cleans up Dom4J. But, the good news is that it appears that Spring is good at not leaving ClassLoaders around. I'll post anything if I found out more. Thanks, Seth |
|
From: Alef A. <al...@jt...> - 2004-11-19 22:58:23
|
Hmmm, it seems I forgot to commit the fix for the test (I think Darren =
noticed this test failing on Linux as well). It created a conflict. =
Should be fixed now.
=20
Alef
=20
________________________________
From: spr...@li... on behalf of =
Alef Arendsen
Sent: Fri 11/19/2004 12:31 AM
To: spr...@li...
Subject: [Springframework-developer] spring Build Failed
BUILD FAILED=09
Ant Error Message: /jteam/build2/checkout/spring/spring/build.xml:529: =
Compile failed; see the compiler error output for details.=09
Date of build: 11/19/2004 00:16:30=09
Time to build: 1 minute 1 second=09
Last changed: 11/18/2004 18:22:10=09
Last log entry: Added Javadoc=09
Errors/Warnings: (53) =09
Note: Some input files use or override a deprecated API.
Note: Recompile with -deprecation for details.
Note: =
/jteam/build2/checkout/spring/spring/mock/org/springframework/mock/web/Mo=
ckHttpSession.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:283: invalid method =
declaration; return type required
assertTrue(
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:284: <identifier> =
expected
ex.getMessage().indexOf(userDir + "/test/" + userDir) !=3D -1
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:287: ')' expected
);
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:289: illegal start of =
type
>>>>>>> 1.16
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:290: <identifier> =
expected
}
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:291: 'class' or =
'interface' expected
}*/
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:297: <identifier> =
expected
ac.registerSingleton("tb", TestBean.class, pvs);
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:297: '{' expected
ac.registerSingleton("tb", TestBean.class, pvs);
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:298: <identifier> =
expected
pvs =3D new MutablePropertyValues();
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:299: <identifier> =
expected
pvs.addPropertyValue("location", "${myprop}/test/${myprop}");
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:300: <identifier> =
expected
ac.registerSingleton("configurer", =
PropertyPlaceholderConfigurer..class, pvs);
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:300: ';' expected
ac.registerSingleton("configurer", =
PropertyPlaceholderConfigurer.class, pvs);
=
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:300: <identifier> =
expected
ac.registerSingleton("configurer", =
PropertyPlaceholderConfigurer.class, pvs);
=
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:300: '{' expected
ac.registerSingleton("configurer", =
PropertyPlaceholderConfigurer.class, pvs);
=
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:301: illegal start of =
type
try {
^
/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:310: <identifier> =
expected
}
^
16 errors
Unit Tests: (0) =09
No Tests Run =09
This project doesn't have any tests =09
=09
Modifications since last build: (28) =09
modified johnsonr =
samples/jpetstore/src/org/springframework/samples/jpetstore/web/struts/Ba=
seAction.java Added Javadoc=09
modified kktec build.xml fixed broken Freemarker javadoc link=09
modified robharrop build.xml Moved JasperReports tests from sandbox =
to main.=09
deleted robharrop =
sandbox/test/org/springframework/ui/jasperreports/JasperReportsUtilsTests=
.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/AbstractJ=
asperReportsTest.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/DataSourc=
eReport.jasper Moved JasperReports tests from sandbox to main..=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/DataSourc=
eReport.jrxml Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/JasperRep=
ortsCsvViewTests.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/JasperRep=
ortsExcelViewTests.java Moved JasperReports tests from sandbox to main. =
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/JasperRep=
ortsHtmlViewTests.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/JasperRep=
ortsPdfViewTests.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/MockAppli=
cationContext.java Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/test/org/springframework/web/servlet/view/jasperreports/MyBean.ja=
va Moved JasperReports tests from sandbox to main.=09
deleted robharrop =
sandbox/src/org/springframework/ui/jasperreports/JasperReportsUtils.java =
Moved JasperReports support out of the sandbox into the main tree.=09
modified robharrop changelog.txt Moved JasperReports support out of =
the sandbox into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/AbstractJa=
sperReportsView.java Moved JasperReports support out of the sandbox =
into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/AbstractOu=
tputStreamDrivenJasperReportsView.java Moved JasperReports support out =
of the sandbox into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/AbstractWr=
iterDrivenJasperReportsView.java Moved JasperReports support out of the =
sandbox into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepo=
rtsCsvView.java Moved JasperReports support out of the sandbox into the =
main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepo=
rtsExcelView.java Moved JasperReports support out of the sandbox into =
the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepo=
rtsHtmlView..java Moved JasperReports support out of the sandbox into =
the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepo=
rtsInitializationException.java Moved JasperReports support out of the =
sandbox into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepo=
rtsPdfView.java Moved JasperReports support out of the sandbox into the =
main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/NoDataSour=
ceException.java Moved JasperReports support out of the sandbox into =
the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/ReportFile=
NotFoundException.java Moved JasperReports support out of the sandbox =
into the main tree.=09
deleted robharrop =
sandbox/src/org/springframework/web/servlet/view/jasperreports/Unrecogniz=
edReportExtensionException.java Moved JasperReports support out of the =
sandbox into the main tree.=09
modified robharrop =
sandbox/src/org/springframework/jmx/adapters/AdapterRegistrationException=
.java Fixed incorrect superclass for AdapterRegistrationException=09
modified davison =
test/org/springframework/beans/factory/config/PropertyResourceConfigurerT=
ests.java altered UNIX 'hack' to check for either case of file system =
root=09
Deployments by this build: (9) =09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-core.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-aop.jar=09
Building jar: =
/jteam/build2/checkout/spring/spring/dist/spring-context.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-dao.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-orm.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-web.jar=09
Building jar: =
/jteam/build2/checkout/spring/spring/dist/spring-webmvc.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring.jar=09
Building jar: /jteam/build2/checkout/spring/spring/dist/spring-mock.jar=09
|
|
From: Roberto C. <ro...@in...> - 2004-11-19 22:32:07
|
Yes,
a) I would refactor the method renderMergedTemplateModel extracting the c=
ode
that puts in the Context the different formatters and tools.
Of course, I'd make it protected in order to be overridden.
b) mergeTemplate should not take the Template argument. Template is an
instance variable, so it doesn't need to be passed in.
It could be renamed into "mergeContext" instead. In this way one coul=
d
use the context the merge more than one templates as in my case nicely.
Hope I made clear my ideas and that they make sense to you all.
/robcos
----- Original Message -----
From: "j=FCrgen h=F6ller [werk3AT]" <jue...@we...>
To: <spr...@li...>
Sent: Friday, November 19, 2004 4:25 PM
Subject: Re: [Springframework-developer] Subclassing VelocityView
OK, I see. I'll add an "isCacheTemplate" getter. Do you have any other
suggestions on how to improve VelocityView in terms of easy subclassing?
Juergen
|
|
From: Rob H. <ro...@ca...> - 2004-11-19 16:04:13
|
Jurgen, Fire away with any modfications - I'll be sure to pay attention to what you do so I can get the same pattern in the rest of may code. As for adding auto-lookup of collections to wrap with JRBeanCollectionDataSource - I did that this morning along with appropriate tests. It uses a specific parameter name, reportData, which should be an instance of Collection. The reason I didn't opt for just taking the first collection it sees is because I don't know if JR will support passing a collection as parameter at some point in the future or whether some other reporting engine already has this support. Rob jürgen höller [werk3AT] wrote: >Thanks for moving the JasperReports support over to the main sources, Rob! I'm currently about to revise it a bit, for example regarding exception handling on initialization (implementing afterPropertiesSet instead of overriding initApplicationContext, to allow for throwing any exception and avoid the need to use unchecked wrapper exceptions). > >There's one further thing I'd like to improve: JRDataSource lookup. It would be good if controller code would not have to add a JasperReports-specific class to the model. Instead, we could pass in a bean collection or bean array, to be implicitly wrapped with a JRBeanCollectionDataSource or a JRBeanArrayDataSource, respectively. > >It looks to me that the JasperReports parameter map does not support collections or arrays anyway, so we could in principle auto-detect a collection or array in the model and wrap it accordingly as JRDataSource. Else, we could define a specific model name for the JRDataSource (as bean property on the view): if specified, the given model object will be used (wrapped if necessary), rather than searching the model map for matching values. > >I've also updated JasperReports to the recently released 0.6.2. I'll commit my current state tonight or tomorrow morning. > >Juergen > > >________________________________ > >Von: spr...@li... im Auftrag von Rob Harrop >Gesendet: Mi 17.11.2004 10:34 >An: spr...@li... >Betreff: [Springframework-developer] JasperReports Support in 1.1.3 > > > >If everyone is in agreement I would like to move the JasperReports stuff >into the main branch ready for 1.1.3. I spent some time yesterday >polishing the JavaDocs for this module which I plan to finish off over >the next few days, plus I'll add a couple of pages of documentation for >this as well. > >Rob > > >------------------------------------------------------- >This SF.Net email is sponsored by: InterSystems CACHE >FREE OODBMS DOWNLOAD - A multidimensional database that combines >robust object and relational technologies, making it a perfect match >for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > >------------------------------------------------------- >This SF.Net email is sponsored by: InterSystems CACHE >FREE OODBMS DOWNLOAD - A multidimensional database that combines >robust object and relational technologies, making it a perfect match >for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 >_______________________________________________ >Springframework-developer mailing list >Spr...@li... >https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > |
|
From: <jue...@we...> - 2004-11-19 15:31:10
|
Thanks for moving the JasperReports support over to the main sources, = Rob! I'm currently about to revise it a bit, for example regarding = exception handling on initialization (implementing afterPropertiesSet = instead of overriding initApplicationContext, to allow for throwing any = exception and avoid the need to use unchecked wrapper exceptions). =20 There's one further thing I'd like to improve: JRDataSource lookup. It = would be good if controller code would not have to add a = JasperReports-specific class to the model. Instead, we could pass in a = bean collection or bean array, to be implicitly wrapped with a = JRBeanCollectionDataSource or a JRBeanArrayDataSource, respectively. =20 It looks to me that the JasperReports parameter map does not support = collections or arrays anyway, so we could in principle auto-detect a = collection or array in the model and wrap it accordingly as = JRDataSource. Else, we could define a specific model name for the = JRDataSource (as bean property on the view): if specified, the given = model object will be used (wrapped if necessary), rather than searching = the model map for matching values. =20 I've also updated JasperReports to the recently released 0.6.2. I'll = commit my current state tonight or tomorrow morning. =20 Juergen =20 ________________________________ Von: spr...@li... im Auftrag = von Rob Harrop Gesendet: Mi 17.11.2004 10:34 An: spr...@li... Betreff: [Springframework-developer] JasperReports Support in 1.1.3 If everyone is in agreement I would like to move the JasperReports stuff into the main branch ready for 1.1.3. I spent some time yesterday polishing the JavaDocs for this module which I plan to finish off over the next few days, plus I'll add a couple of pages of documentation for this as well. Rob ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: <jue...@we...> - 2004-11-19 15:23:41
|
OK, I see. I'll add an "isCacheTemplate" getter. Do you have any other = suggestions on how to improve VelocityView in terms of easy subclassing? =20 Juergen =20 ________________________________ Von: spr...@li... im Auftrag = von Roberto Cosenza Gesendet: Fr 19.11.2004 16:00 An: spr...@li... Betreff: Re: [Springframework-developer] Subclassing VelocityView j=FCrgen h=F6ller [werk3AT] wrote: >No problem, in principle - but why do you need to access the = "cacheTemplate" property in the first place? It should only really be of = interest in the VelocityView class itself, not in custom subclasses... > >Juergen >=20 > I'm writing a special kind of view which is based on merging two or more velocity templates before rendering the output. I need the value of "cacheTemplate" to see if I need to cache the extra templates. /Roberto ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Roberto C. <rob...@in...> - 2004-11-19 15:00:13
|
j=FCrgen h=F6ller [werk3AT] wrote: >No problem, in principle - but why do you need to access the "cacheTempl= ate" property in the first place? It should only really be of interest in= the VelocityView class itself, not in custom subclasses... >=20 >Juergen > =20 > I'm writing a special kind of view which is based on merging two or more=20 velocity templates before rendering the output. I need the value of=20 "cacheTemplate" to see if I need to cache the extra templates. /Roberto |
|
From: <jue...@we...> - 2004-11-19 14:45:15
|
No problem, in principle - but why do you need to access the = "cacheTemplate" property in the first place? It should only really be of = interest in the VelocityView class itself, not in custom subclasses... =20 Juergen =20 ________________________________ Von: spr...@li... im Auftrag = von Roberto Cosenza Gesendet: Fr 19.11.2004 13:29 An: spr...@li... Betreff: [Springframework-developer] Subclassing VelocityView Hi. I'm writing a custom VelocityView and I need to access the cacheTemplate property. Unfortunately this is private and there is no protected/public getter. Hope somebody fixes this in a future release. -- Roberto Cosenza Infoflex Connect AB, Sweden Tel: +46-(0)8-55576860, Fax: +46-(0)8-55576861 -- Nordic Messaging Technologies is a trademark of Infoflex Connect. Please visit www.nordicmessaging.se for more information about our carrier-grade messaging products. ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Roberto C. <rob...@in...> - 2004-11-19 12:30:09
|
Hi. I'm writing a custom VelocityView and I need to access the cacheTemplate property. Unfortunately this is private and there is no protected/public getter. Hope somebody fixes this in a future release. -- Roberto Cosenza Infoflex Connect AB, Sweden Tel: +46-(0)8-55576860, Fax: +46-(0)8-55576861 -- Nordic Messaging Technologies is a trademark of Infoflex Connect. Please visit www.nordicmessaging.se for more information about our carrier-grade messaging products. |
|
From: Rob H. <ro...@ca...> - 2004-11-19 11:44:46
|
All,
Chris from CGLIB replied to me on this issue:
>Hi Rob,
>
>Probably #2 ("Create a dummy object that Dispatchers can re-route to
>during construction") is the simplest solution, but I don't like it
>either. It is probably better for me to add an option to Enhancer:
>
> e.setInterceptCallsFromConstructor(false);
>
>We actually have to jump through some hoops to intercept those calls in
>the first place, so I hope it won't be hard to ignore them. You could
>then also get rid of the code you added for the previous issue.
>
>I'll look into it tomorrow (3am here now...)
>
>Chris
>
Looks like we will get a solution to this problem at the CGLIB level.
Rob
Rob Harrop wrote:
> All,
>
> I have posted an update on JIRA regarding these issues (which are the
> same) and I would appreciated everyones on input on the suggested
> solutions.
>
> http://opensource.atlassian.com/projects/spring/browse/SPR-472
>
> For those of you who are unware 1.1.1 conatined a nasty bug where
> proxy creation, with CGLIB, would restore any default state in the
> target object if your constructor set this state explicitly through
> method calls. I fixed this 1.1.2 although annoying the fix was only
> partial and this problem still shows up, but only when methods called
> by the constructor are unadvised.
>
> Rob
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: InterSystems CACHE
> FREE OODBMS DOWNLOAD - A multidimensional database that combines
> robust object and relational technologies, making it a perfect match
> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
> _______________________________________________
> Springframework-developer mailing list
> Spr...@li...
> https://lists.sourceforge.net/lists/listinfo/springframework-developer
>
>
|
|
From: Rob H. <ro...@ca...> - 2004-11-19 10:43:25
|
All, I have posted an update on JIRA regarding these issues (which are the same) and I would appreciated everyones on input on the suggested solutions. http://opensource.atlassian.com/projects/spring/browse/SPR-472 For those of you who are unware 1.1.1 conatined a nasty bug where proxy creation, with CGLIB, would restore any default state in the target object if your constructor set this state explicitly through method calls. I fixed this 1.1.2 although annoying the fix was only partial and this problem still shows up, but only when methods called by the constructor are unadvised. Rob |
|
From: <al...@jt...> - 2004-11-18 23:19:02
|
<html><head>
<style>
.white { color:#FFFFFF }.index { background-color:#FFFFFF }.index-passed { =
color:#004400 }.index-failed { color:#FF0000; font-weight:bold }.index-head=
er { font-weight:bold }.link { font-family:arial,helvetica,sans-serif; font=
-size:10pt; color:#FFFFFF; text-decoration:none; }.tab-table { margin: 0em =
0em 0.5em 0em; }.tabs { font-family:arial,helvetica,sans-serif; font-size:8=
pt; color:#000000; font-weight:bold; padding: 0em 2em; background-color:#EE=
EEEE; }.tabs-link { color:#000000; text-decoration:none; }.tabs-link:visite=
d { color:#000000; text-decoration:none; }.tabs-selected { font-family:aria=
l,helvetica,sans-serif; font-size:8pt; color:#000000; font-weight:bold; pad=
ding: 0em 2em; }.tabs-selected { border: inset; }.header-title { font-famil=
y:arial,helvetica,sans-serif; font-size:12pt; color:#000000; font-weight:bo=
ld; }.header-label { font-weight:bold; }.header-data { font-family:arial,he=
lvetica,sans-serif; font-size:10pt; color:#000000; }.modifications-data { f=
ont-family:arial,helvetica,sans-serif; font-size:8pt; color:#000000; }.modi=
fications-sectionheader { background-color:#000066; font-family:arial,helve=
tica,sans-serif; font-size:10pt; color:#FFFFFF; }.modifications-oddrow { ba=
ckground-color:#CCCCCC }.modifications-evenrow { background-color:#FFFFCC }=
.changelists-oddrow { background-color:#CCCCCC }.changelists-evenrow { back=
ground-color:#FFFFCC }.changelists-file-spacer { background-color:#FFFFFF }=
.changelists-file-evenrow { background-color:#EEEEEE }.changelists-file-odd=
row { background-color:#FFFFEE }.changelists-file-header { background-color=
:#666666; font-family:arial,helvetica,sans-serif; font-size:8pt; color:#FFF=
FFF; }.compile-data { font-family:arial,helvetica,sans-serif; font-size:8pt=
; color:#000000; }.compile-error-data { font-family:arial,helvetica,sans-se=
rif; font-size:8pt; color:#FF0000; }.compile-warn-data { font-family:arial,=
helvetica,sans-serif; font-size:8pt; color:#CC9900; }.compile-sectionheader=
{ background-color:#000066; font-family:arial,helvetica,sans-serif; font-s=
ize:10pt; color:#FFFFFF; }.distributables-data { font-family:arial,helvetic=
a,sans-serif; font-size:8pt; color:#000000; }.distributables-sectionheader =
{ background-color:#000066; font-family:arial,helvetica,sans-serif; font-si=
ze:10pt; color:#FFFFFF; }.distributables-oddrow { background-color:#CCCCCC =
}.unittests-sectionheader { background-color:#000066; font-family:arial,hel=
vetica,sans-serif; font-size:10pt; color:#FFFFFF; }.unittests-oddrow { back=
ground-color:#CCCCCC }.unittests-data { font-family:arial,helvetica,sans-se=
rif; font-size:8pt; color:#000000; }.unittests-error { font-family:arial,he=
lvetica,sans-serif; font-size:8pt; color:#901090; }.unittests-failure { fon=
t-family:arial,helvetica,sans-serif; font-size:8pt; color:#FF0000; }.checks=
tyle-oddrow { background-color:#CCCCCC }.checkstyle-data { font-family:aria=
l,helvetica,sans-serif; font-size:8pt; color:#000000; }.checkstyle-sectionh=
eader { background-color:#000066; font-family:arial,helvetica,sans-serif; f=
ont-size:10pt; color:#FFFFFF; }
</style>
</head><body>
<p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"><tr><td class=3D"header-title">BUILD FAILED</td></tr><tr><td cl=
ass=3D"header-data"><span class=3D"header-label">Ant Error Message: </=
span>/jteam/build2/checkout/spring/spring/build.xml:529: Compile failed; se=
e the compiler error output for details.</td></tr><tr><td class=3D"header-d=
ata"><span class=3D"header-label">Date of build: </span>11/19/2004 00:=
16:30</td></tr><tr><td class=3D"header-data"><span class=3D"header-label">T=
ime to build: </span>1 minute 1 second</td></tr><tr><td class=3D"heade=
r-data"><span class=3D"header-label">Last changed: </span>11/18/2004 1=
8:22:10</td></tr><tr><td class=3D"header-data"><span class=3D"header-label"=
>Last log entry: </span>Added Javadoc</td></tr></table><p>
<p>
<p>
<table xmlns=3D"http://www.w3.org/TR/html4/strict.dtd" width=3D"98%" border=
=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=3D"center"><tr><td class=
=3D"compile-sectionheader"> Errors/Warnings: (=
53) </td></tr><tr><td><pre class=3D"compile-data">Note: =
Some input files use or override a deprecated API.<br class=3D"none"/>Note:=
Recompile with -deprecation for details.<br class=3D"none"/>Note: /jteam/b=
uild2/checkout/spring/spring/mock/org/springframework/mock/web/MockHttpSess=
ion.java uses or overrides a deprecated API.<br class=3D"none"/>Note: Recom=
pile with -deprecation for details.<br class=3D"none"/>/jteam/build2/checko=
ut/spring/spring/test/org/springframework/beans/factory/config/PropertyReso=
urceConfigurerTests.java:283: invalid method declaration; return type requi=
red<br class=3D"none"/>=09=09=09assertTrue(<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/build2/checkout/spring/spring/test/=
org/springframework/beans/factory/config/PropertyResourceConfigurerTests.ja=
va:284: <identifier> expected<br class=3D"none"/>=09=09=09 ex.getM=
essage().indexOf(userDir + "/test/" + userDir) !=3D -1<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/build2/=
checkout/spring/spring/test/org/springframework/beans/factory/config/Proper=
tyResourceConfigurerTests.java:287: ')' expected<br class=3D"none"/>=09=09=
=09);<br class=3D"none"/> ^<br class=3D"none"/>/jte=
am/build2/checkout/spring/spring/test/org/springframework/beans/factory/con=
fig/PropertyResourceConfigurerTests.java:289: illegal start of type<br clas=
s=3D"none"/>>>>>>>> 1.16<br class=3D"none"/>^<br class=
=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springframework/be=
ans/factory/config/PropertyResourceConfigurerTests.java:290: <identifier=
> expected<br class=3D"none"/>=09=09}<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springf=
ramework/beans/factory/config/PropertyResourceConfigurerTests.java:291: 'cl=
ass' or 'interface' expected<br class=3D"none"/>=09}*/<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/s=
pringframework/beans/factory/config/PropertyResourceConfigurerTests.java:29=
7: <identifier> expected<br class=3D"none"/>=09=09ac.registerSingleto=
n("tb", TestBean.class, pvs);<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/build2/checkout/=
spring/spring/test/org/springframework/beans/factory/config/PropertyResourc=
eConfigurerTests.java:297: '{' expected<br class=3D"none"/>=09=09ac.registe=
rSingleton("tb", TestBean.class, pvs);<br class=3D"none"/> =
^<br class=3D"none"/>/jteam/b=
uild2/checkout/spring/spring/test/org/springframework/beans/factory/config/=
PropertyResourceConfigurerTests.java:298: <identifier> expected<br cl=
ass=3D"none"/>=09=09pvs =3D new MutablePropertyValues();<br class=3D"none"/=
> ^<br class=3D"none"/>/jteam/build2/checkout/spring/spr=
ing/test/org/springframework/beans/factory/config/PropertyResourceConfigure=
rTests.java:299: <identifier> expected<br class=3D"none"/>=09=09pvs.a=
ddPropertyValue("location", "${myprop}/test/${myprop}");<br class=3D"none"/=
> ^<br class=3D"none"/>/jteam/build2/che=
ckout/spring/spring/test/org/springframework/beans/factory/config/PropertyR=
esourceConfigurerTests.java:300: <identifier> expected<br class=3D"no=
ne"/>=09=09ac.registerSingleton("configurer", PropertyPlaceholderConfigurer=
.class, pvs);<br class=3D"none"/> ^<br c=
lass=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springframewor=
k/beans/factory/config/PropertyResourceConfigurerTests.java:300: ';' expect=
ed<br class=3D"none"/>=09=09ac.registerSingleton("configurer", PropertyPlac=
eholderConfigurer.class, pvs);<br class=3D"none"/> =
^<br class=3D"none"=
/>/jteam/build2/checkout/spring/spring/test/org/springframework/beans/facto=
ry/config/PropertyResourceConfigurerTests.java:300: <identifier> expe=
cted<br class=3D"none"/>=09=09ac.registerSingleton("configurer", PropertyPl=
aceholderConfigurer.class, pvs);<br class=3D"none"/> =
^<br class=
=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springframework/be=
ans/factory/config/PropertyResourceConfigurerTests.java:300: '{' expected<b=
r class=3D"none"/>=09=09ac.registerSingleton("configurer", PropertyPlacehol=
derConfigurer.class, pvs);<br class=3D"none"/> =
^<br class=
=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springframework/be=
ans/factory/config/PropertyResourceConfigurerTests.java:301: illegal start =
of type<br class=3D"none"/>=09=09try {<br class=3D"none"/> ^=
<br class=3D"none"/>/jteam/build2/checkout/spring/spring/test/org/springfra=
mework/beans/factory/config/PropertyResourceConfigurerTests.java:310: <i=
dentifier> expected<br class=3D"none"/>=09}<br class=3D"none"/> ^=
<br class=3D"none"/>16 errors<br class=3D"none"/></pre></td></tr></table><p=
>
<p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"><tr><td colspan=3D"4" class=3D"unittests-sectionheader"> =
Unit Tests: (0) </td></tr><tr><td class=3D=
"unittests-data" colspan=3D"2"> No Tests Run =
</td></tr><tr><td class=3D"unittests-error" colspan=3D"=
2"> This project doesn't have any tests =
</td></tr><tr><td><table width=3D"98%" border=3D"0" cellspac=
ing=3D"0" cellpadding=3D"2" align=3D"center"></table></td></tr><tr></tr><tr=
><td colspan=3D"2"> </td></tr></table><p>
<table width=3D"98%" border=3D"0" cellspacing=3D"1" cellpadding=3D"2" align=
=3D"center"><tr><td colspan=3D"6" class=3D"modifications-sectionheader"> =
Modifications since last build: =
(28) </td></tr><tr class=3D"modifications-evenrow"><td =
class=3D"modifications-data">modified</td><td class=3D"modifications-data">=
johnsonr</td><td class=3D"modifications-data">samples/jpetstore/src/org/spr=
ingframework/samples/jpetstore/web/struts/BaseAction.java</td><td class=3D"=
modifications-data">Added Javadoc</td></tr><tr class=3D"modifications-oddro=
w"><td class=3D"modifications-data">modified</td><td class=3D"modifications=
-data">kktec</td><td class=3D"modifications-data">build.xml</td><td class=
=3D"modifications-data">fixed broken Freemarker javadoc link</td></tr><tr c=
lass=3D"modifications-evenrow"><td class=3D"modifications-data">modified</t=
d><td class=3D"modifications-data">robharrop</td><td class=3D"modifications=
-data">build.xml</td><td class=3D"modifications-data">Moved JasperReports t=
ests from sandbox to main.</td></tr><tr class=3D"modifications-oddrow"><td =
class=3D"modifications-data">deleted</td><td class=3D"modifications-data">r=
obharrop</td><td class=3D"modifications-data">sandbox/test/org/springframew=
ork/ui/jasperreports/JasperReportsUtilsTests.java</td><td class=3D"modifica=
tions-data">Moved JasperReports tests from sandbox to main.</td></tr><tr cl=
ass=3D"modifications-evenrow"><td class=3D"modifications-data">deleted</td>=
<td class=3D"modifications-data">robharrop</td><td class=3D"modifications-d=
ata">sandbox/test/org/springframework/web/servlet/view/jasperreports/Abstra=
ctJasperReportsTest.java</td><td class=3D"modifications-data">Moved JasperR=
eports tests from sandbox to main.</td></tr><tr class=3D"modifications-oddr=
ow"><td class=3D"modifications-data">deleted</td><td class=3D"modifications=
-data">robharrop</td><td class=3D"modifications-data">sandbox/test/org/spri=
ngframework/web/servlet/view/jasperreports/DataSourceReport.jasper</td><td =
class=3D"modifications-data">Moved JasperReports tests from sandbox to main=
.</td></tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-d=
ata">deleted</td><td class=3D"modifications-data">robharrop</td><td class=
=3D"modifications-data">sandbox/test/org/springframework/web/servlet/view/j=
asperreports/DataSourceReport.jrxml</td><td class=3D"modifications-data">Mo=
ved JasperReports tests from sandbox to main.</td></tr><tr class=3D"modific=
ations-oddrow"><td class=3D"modifications-data">deleted</td><td class=3D"mo=
difications-data">robharrop</td><td class=3D"modifications-data">sandbox/te=
st/org/springframework/web/servlet/view/jasperreports/JasperReportsCsvViewT=
ests.java</td><td class=3D"modifications-data">Moved JasperReports tests fr=
om sandbox to main.</td></tr><tr class=3D"modifications-evenrow"><td class=
=3D"modifications-data">deleted</td><td class=3D"modifications-data">robhar=
rop</td><td class=3D"modifications-data">sandbox/test/org/springframework/w=
eb/servlet/view/jasperreports/JasperReportsExcelViewTests.java</td><td clas=
s=3D"modifications-data">Moved JasperReports tests from sandbox to main.</t=
d></tr><tr class=3D"modifications-oddrow"><td class=3D"modifications-data">=
deleted</td><td class=3D"modifications-data">robharrop</td><td class=3D"mod=
ifications-data">sandbox/test/org/springframework/web/servlet/view/jasperre=
ports/JasperReportsHtmlViewTests.java</td><td class=3D"modifications-data">=
Moved JasperReports tests from sandbox to main.</td></tr><tr class=3D"modif=
ications-evenrow"><td class=3D"modifications-data">deleted</td><td class=3D=
"modifications-data">robharrop</td><td class=3D"modifications-data">sandbox=
/test/org/springframework/web/servlet/view/jasperreports/JasperReportsPdfVi=
ewTests.java</td><td class=3D"modifications-data">Moved JasperReports tests=
from sandbox to main.</td></tr><tr class=3D"modifications-oddrow"><td clas=
s=3D"modifications-data">deleted</td><td class=3D"modifications-data">robha=
rrop</td><td class=3D"modifications-data">sandbox/test/org/springframework/=
web/servlet/view/jasperreports/MockApplicationContext.java</td><td class=3D=
"modifications-data">Moved JasperReports tests from sandbox to main.</td></=
tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">del=
eted</td><td class=3D"modifications-data">robharrop</td><td class=3D"modifi=
cations-data">sandbox/test/org/springframework/web/servlet/view/jasperrepor=
ts/MyBean.java</td><td class=3D"modifications-data">Moved JasperReports tes=
ts from sandbox to main.</td></tr><tr class=3D"modifications-oddrow"><td cl=
ass=3D"modifications-data">deleted</td><td class=3D"modifications-data">rob=
harrop</td><td class=3D"modifications-data">sandbox/src/org/springframework=
/ui/jasperreports/JasperReportsUtils.java</td><td class=3D"modifications-da=
ta">Moved JasperReports support out of the sandbox into the main tree.</td>=
</tr><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">m=
odified</td><td class=3D"modifications-data">robharrop</td><td class=3D"mod=
ifications-data">changelog.txt</td><td class=3D"modifications-data">Moved J=
asperReports support out of the sandbox into the main tree.</td></tr><tr cl=
ass=3D"modifications-oddrow"><td class=3D"modifications-data">deleted</td><=
td class=3D"modifications-data">robharrop</td><td class=3D"modifications-da=
ta">sandbox/src/org/springframework/web/servlet/view/jasperreports/Abstract=
JasperReportsView.java</td><td class=3D"modifications-data">Moved JasperRep=
orts support out of the sandbox into the main tree.</td></tr><tr class=3D"m=
odifications-evenrow"><td class=3D"modifications-data">deleted</td><td clas=
s=3D"modifications-data">robharrop</td><td class=3D"modifications-data">san=
dbox/src/org/springframework/web/servlet/view/jasperreports/AbstractOutputS=
treamDrivenJasperReportsView.java</td><td class=3D"modifications-data">Move=
d JasperReports support out of the sandbox into the main tree.</td></tr><tr=
class=3D"modifications-oddrow"><td class=3D"modifications-data">deleted</t=
d><td class=3D"modifications-data">robharrop</td><td class=3D"modifications=
-data">sandbox/src/org/springframework/web/servlet/view/jasperreports/Abstr=
actWriterDrivenJasperReportsView.java</td><td class=3D"modifications-data">=
Moved JasperReports support out of the sandbox into the main tree.</td></tr=
><tr class=3D"modifications-evenrow"><td class=3D"modifications-data">delet=
ed</td><td class=3D"modifications-data">robharrop</td><td class=3D"modifica=
tions-data">sandbox/src/org/springframework/web/servlet/view/jasperreports/=
JasperReportsCsvView.java</td><td class=3D"modifications-data">Moved Jasper=
Reports support out of the sandbox into the main tree.</td></tr><tr class=
=3D"modifications-oddrow"><td class=3D"modifications-data">deleted</td><td =
class=3D"modifications-data">robharrop</td><td class=3D"modifications-data"=
>sandbox/src/org/springframework/web/servlet/view/jasperreports/JasperRepor=
tsExcelView.java</td><td class=3D"modifications-data">Moved JasperReports s=
upport out of the sandbox into the main tree.</td></tr><tr class=3D"modific=
ations-evenrow"><td class=3D"modifications-data">deleted</td><td class=3D"m=
odifications-data">robharrop</td><td class=3D"modifications-data">sandbox/s=
rc/org/springframework/web/servlet/view/jasperreports/JasperReportsHtmlView=
.java</td><td class=3D"modifications-data">Moved JasperReports support out =
of the sandbox into the main tree.</td></tr><tr class=3D"modifications-oddr=
ow"><td class=3D"modifications-data">deleted</td><td class=3D"modifications=
-data">robharrop</td><td class=3D"modifications-data">sandbox/src/org/sprin=
gframework/web/servlet/view/jasperreports/JasperReportsInitializationExcept=
ion.java</td><td class=3D"modifications-data">Moved JasperReports support o=
ut of the sandbox into the main tree.</td></tr><tr class=3D"modifications-e=
venrow"><td class=3D"modifications-data">deleted</td><td class=3D"modificat=
ions-data">robharrop</td><td class=3D"modifications-data">sandbox/src/org/s=
pringframework/web/servlet/view/jasperreports/JasperReportsPdfView.java</td=
><td class=3D"modifications-data">Moved JasperReports support out of the sa=
ndbox into the main tree.</td></tr><tr class=3D"modifications-oddrow"><td c=
lass=3D"modifications-data">deleted</td><td class=3D"modifications-data">ro=
bharrop</td><td class=3D"modifications-data">sandbox/src/org/springframewor=
k/web/servlet/view/jasperreports/NoDataSourceException.java</td><td class=
=3D"modifications-data">Moved JasperReports support out of the sandbox into=
the main tree.</td></tr><tr class=3D"modifications-evenrow"><td class=3D"m=
odifications-data">deleted</td><td class=3D"modifications-data">robharrop</=
td><td class=3D"modifications-data">sandbox/src/org/springframework/web/ser=
vlet/view/jasperreports/ReportFileNotFoundException.java</td><td class=3D"m=
odifications-data">Moved JasperReports support out of the sandbox into the =
main tree.</td></tr><tr class=3D"modifications-oddrow"><td class=3D"modific=
ations-data">deleted</td><td class=3D"modifications-data">robharrop</td><td=
class=3D"modifications-data">sandbox/src/org/springframework/web/servlet/v=
iew/jasperreports/UnrecognizedReportExtensionException.java</td><td class=
=3D"modifications-data">Moved JasperReports support out of the sandbox into=
the main tree.</td></tr><tr class=3D"modifications-evenrow"><td class=3D"m=
odifications-data">modified</td><td class=3D"modifications-data">robharrop<=
/td><td class=3D"modifications-data">sandbox/src/org/springframework/jmx/ad=
apters/AdapterRegistrationException.java</td><td class=3D"modifications-dat=
a">Fixed incorrect superclass for AdapterRegistrationException</td></tr><tr=
class=3D"modifications-oddrow"><td class=3D"modifications-data">modified</=
td><td class=3D"modifications-data">davison</td><td class=3D"modifications-=
data">test/org/springframework/beans/factory/config/PropertyResourceConfigu=
rerTests.java</td><td class=3D"modifications-data">altered UNIX 'hack' to c=
heck for either case of file system root</td></tr></table><p>
<table width=3D"98%" border=3D"0" cellspacing=3D"0" cellpadding=3D"2" align=
=3D"center"><tr><td class=3D"distributables-sectionheader"> =
Deployments by this build: (9) </td><=
/tr><tr><td class=3D"distributables-data">Building jar: /jteam/build2/check=
out/spring/spring/dist/spring-core.jar</td></tr><tr class=3D"distributables=
-oddrow"><td class=3D"distributables-data">Building jar: /jteam/build2/chec=
kout/spring/spring/dist/spring-aop.jar</td></tr><tr><td class=3D"distributa=
bles-data">Building jar: /jteam/build2/checkout/spring/spring/dist/spring-c=
ontext.jar</td></tr><tr class=3D"distributables-oddrow"><td class=3D"distri=
butables-data">Building jar: /jteam/build2/checkout/spring/spring/dist/spri=
ng-dao.jar</td></tr><tr><td class=3D"distributables-data">Building jar: /jt=
eam/build2/checkout/spring/spring/dist/spring-orm.jar</td></tr><tr class=3D=
"distributables-oddrow"><td class=3D"distributables-data">Building jar: /jt=
eam/build2/checkout/spring/spring/dist/spring-web.jar</td></tr><tr><td clas=
s=3D"distributables-data">Building jar: /jteam/build2/checkout/spring/sprin=
g/dist/spring-webmvc.jar</td></tr><tr class=3D"distributables-oddrow"><td c=
lass=3D"distributables-data">Building jar: /jteam/build2/checkout/spring/sp=
ring/dist/spring.jar</td></tr><tr><td class=3D"distributables-data">Buildin=
g jar: /jteam/build2/checkout/spring/spring/dist/spring-mock.jar</td></tr><=
/table>
</body></html> |
|
From: Colin S. <col...@ex...> - 2004-11-18 14:08:41
|
This is not really a backwards incompatibility issue, but a config issue. The user was never setting the target in the proxy template (fine, since it's a template), but was not ensuring it was either lazy-load=true or abstract=true to stop it from being instantiated. So when Spring tried to pre-instantiate the template like any other singleton bean, the bean threw an exception as the target was not there. What I don't understand though is why the user never had an issue with this in 1.1.1. It should have behaved exactly the same... Alef Arendsen wrote: > A user on the forum > (http://forum.springframework.org/viewtopic.php?t=2034&start=0&postdays=0&postorder=asc&highlight > <http://forum.springframework.org/viewtopic.php?t=2034&start=0&postdays=0&postorder=asc&highlight>=) > noticed a backward compatibility issue. I'm posting it here as well > and have already replied on the forum. > > It might be wise to include a known-poblems section on the website > somewhere. They are minor issues, but still I think it's good to let > people know if there is any issues. > > regards, > > Alef > > > > =========== > > I had a txProxyTemplate bean defined in my applicationContext > configuration without the abstract="true" attribute and things ran > fine with Spring 1.1.1. I upgraded to Spring 1.1.2 and get an > IllegalArgumentException stating that the template bean *must* have > the abstract="true" attribute if it does not declare a 'target' property. > > I went ahead and added it and it was not a big deal. I'm not saying > that the IllegalArgumentException thrown under this circumstance is > bad, but given the prior behavior, it would have been nicer if it > simply logged a warning since the new behavior does break backward > compatibility. > > > Sanjiv > > -------------------------------------------- > > > org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'txProxyTemplate' defined in ServletContext > resource [/WEB-INF/applicationContext.xml]: Initialization of bean > failed; nested exception is java.lang.IllegalArgumentException: > 'target' is required > java.lang.IllegalArgumentException: 'target' is required > at > org.springframework.transaction.interceptor.TransactionProxyFactoryBean.afterPropertiesSet(TransactionProxyFactoryBean.java:194) > > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:990) > > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:275) > > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:193) > > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:240) > > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:163) > > at > org.springframework.beans.factory.support.AbstractBeanFactory.getType(AbstractBeanFactory.java:345) > > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.isBeanTypeMatch(DefaultListableBeanFactory.java:193) > > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:157) > > at > org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:526) > > at > net.sf.acegisecurity.util.FilterToBeanProxy.doInit(FilterToBeanProxy.java:170) > > at > net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:102 > |
|
From: Rob H. <ro...@ca...> - 2004-11-18 08:37:55
|
I'm getting it ready for 1.2 - not sure when that will be though. I would guess late December at the earliest. I still have to include JSR-175 support and a couple of other little features but I fixed quite a few problems yesterday and moved many of the concepts more inline with those already existing in Spring. I'm also going to try for compatibility with 1.0 as much as possible which might mean refactoring the proxy classes a little since they rely on some 1.2 specific interfaces to support JSR-160 proxies. Rob jas...@ma... wrote: > Sounds great to me. > > Anyone any idea of when the JMX stuff is gonna be released? I'm keen > to start using it... > > > On 17 Nov 2004, at 11:30, Rob Harrop wrote: > >> All, >> >> I am considering removing the notion of the MBeanInvoker from Spring >> JMX along with the Spring implementation of ModelMBean. There are two >> reasons for this: >> >> 1. I am not sure of the value offered by this approach given that the >> performance difference between the JDK invoker and the CGLIB invoker >> is hardly noticeable as shown by the tests in the sandbox. >> 2. All JMX implementations come with RequiredModelMBean which is >> already supported by Spring JMX - we don't really need another >> implementation if there is no benefit and I would prefer not to have >> keep modifying the ModelMBeanImpl class to keep up with the JMX spec. >> >> Originally, I had thought that having our own ModelMBean would enable >> us to improve performance but that turns out not to be true, instead >> we just have a model that is more complicated. I propose to remove >> the MBeanInvoker concept altogether and use the RequiredModelMBean >> class as the standard but provide the ability for other >> implementations to be plugged in a later date should the need arise >> in the future. >> >> What are your thoughts? >> >> Rob >> >> P.S. - Keith - I know you said this from the beginning and you were >> right. Don't say I told you so :) >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: InterSystems CACHE >> FREE OODBMS DOWNLOAD - A multidimensional database that combines >> robust object and relational technologies, making it a perfect match >> for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 >> _______________________________________________ >> Springframework-developer mailing list >> Spr...@li... >> https://lists.sourceforge.net/lists/listinfo/springframework-developer >> >> > > James > ------- > http://radio.weblogs.com/0112098/ > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > |
|
From: <jas...@ma...> - 2004-11-18 08:21:06
|
Sounds great to me. Anyone any idea of when the JMX stuff is gonna be released? I'm keen to start using it... On 17 Nov 2004, at 11:30, Rob Harrop wrote: > All, > > I am considering removing the notion of the MBeanInvoker from Spring > JMX along with the Spring implementation of ModelMBean. There are two > reasons for this: > > 1. I am not sure of the value offered by this approach given that the > performance difference between the JDK invoker and the CGLIB invoker > is hardly noticeable as shown by the tests in the sandbox. > 2. All JMX implementations come with RequiredModelMBean which is > already supported by Spring JMX - we don't really need another > implementation if there is no benefit and I would prefer not to have > keep modifying the ModelMBeanImpl class to keep up with the JMX spec. > > Originally, I had thought that having our own ModelMBean would enable > us to improve performance but that turns out not to be true, instead > we just have a model that is more complicated. I propose to remove the > MBeanInvoker concept altogether and use the RequiredModelMBean class > as the standard but provide the ability for other implementations to > be plugged in a later date should the need arise in the future. > > What are your thoughts? > > Rob > > P.S. - Keith - I know you said this from the beginning and you were > right. Don't say I told you so :) > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > James ------- http://radio.weblogs.com/0112098/ |
|
From: Darren D. <da...@da...> - 2004-11-18 06:55:01
|
On Thursday 18 November 2004 04:48, Thomas Risberg wrote: > The original hack used to work until the test was modified - someone > added the second user.dir and it must have worked fine for Windows but > it broke the test on Linux again. aha - that explains it then! > It now seems to work fine again under both Windows and Linux with your > new tweak to the hack :) ok, cool. -- Darren Davison Public Key: #DD356B0D |
|
From: Thomas R. <tho...@tr...> - 2004-11-18 04:48:30
|
Darren,
The original hack used to work until the test was modified - someone
added the second user.dir and it must have worked fine for Windows but
it broke the test on Linux again.
It now seems to work fine again under both Windows and Linux with your
new tweak to the hack :)
Thomas
Darren Davison wrote:
>I'm getting a repeatable test failing on several different UNIX/Linux
>machines despite an obvious attempt to make it work on such OS's..
>
>[junit] FAILED
>[junit] null
>[junit] junit.framework.AssertionFailedError
>[junit] at
>org.springframework.beans.factory.config.PropertyResourceConfigurerTests.testPropertyPlaceholderConfigurerWithSystemPropertiesInLocation(PropertyResourceConfigurerTests.java:271)
>[junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>[junit] at
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>[junit] at
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
>
>the problem is in the following code;
>
> try {
> ac.refresh();
> fail("Should have thrown BeanDefinitionStoreException");
> }
> catch (BeanInitializationException ex) {
> // expected
> assertTrue(ex.getCause() instanceof FileNotFoundException);
> // slight hack for Linux/Unix systems
> String userDir = System.getProperty("user.dir");
> if (userDir.startsWith("/")) {
> userDir = userDir.substring(1);
> }
> assertTrue(ex.getMessage().indexOf(userDir + "/test/" + userDir) != -1);
> }
>}
>
>in the last assertTrue statement, the exception message still contains a
>userDir that has *not* been stripped of its leading / and so the test
>fails. I'm unsure how this has ever worked on UNIX but clearly the change
>was put in because it failed in the past *without* it.
>
>Since I don't think the test is supposed to verify file system semantics,
>I've changed the assert line to;
>
>assertTrue(
> ex.getMessage().indexOf(userDir + "/test/" + userDir) != -1
> ||
> ex.getMessage().indexOf(userDir + "/test//" + userDir) != -1
>);
>
>which works on my installation - can someone verify this on Windows? If
>it's ok, I'll commit it.
>
>Cheers,
>
>
>
|