Re: [configuration] Dependencies after switch to 1.4

2010-01-03 Thread Ralph Goers

I believe this could be addressed by changing the pom to only include Xerces 
and XML-APIs when compiling with JDK 5+ with a desired target of JDK 5+ and 
then having the unit tests that use validation only run when Java 5+ is 
enabled. However, this seems like a lot of work for little benefit since Xerces 
and XML-APIs already have test scope so they won't be brought in to a user's 
project unless they wants them. 

Ralph


On Jan 2, 2010, at 12:22 PM, Oliver Heger wrote:

> In order to change the minimum required JDK to 1.4 I modified pom.xml. I was 
> hoping to get rid of all the XML-related dependencies, but obviously this is 
> not so easy.
> 
> When dropping the Xerces-dependency I get a bunch of test failures:
> - Many of them are caused by tests for DatabaseConfiguration. Here dbunit 
> cannot resolve the DTD in the dataset file. This can be solved by simply 
> removing the reference to the DTD.
> - The major problem is caused by tests that require advanced validation 
> features, e.g. schema validation. This is not supported by the parser shipped 
> with Java 1.4.
> 
> Because of the latter point I think we are forced to keep the 
> Xerces-dependency (with test scope). Unfortunately, this also demands the 
> dependency to XML-APIs - otherwise I get NoClassDefFound errors.
> 
> Or is there an alternative?
> 
> At least the dependency to Xalan can be dropped. I wonder whether this has 
> some impact on GUMP which has still trouble with building [configuration].
> 
> Oliver
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [lang] Divesting the commons.lang.math package

2010-01-03 Thread Luc Maisonobe
Henri Yandell a écrit :
> On Sat, Jan 2, 2010 at 1:57 PM, Paul Benedict  wrote:
>> This is how I believe the commons.lang.math package can be eliminated.
>> Based on the current 3.0-SNAPSHOT API, there are only three classes
>> left:
>>
>> Fraction
>> IEEE754rUtils
>> NumberUtils
>>
>> 1) Fraction should leave; it is completely inappropriate for this
>> library. It has nothing to do with the JDK or supporting the Java
>> language. It belongs squarely in Commons Math.
>> 2) IEEE754rUtils should move to the root of commons.lang
>> 3) NumberUtils should move to the root of commons.lang
> 
> We discussed Fraction being deleted earlier in 3.0, but the view was
> to keep it. I'm happy for it to go. [math]'s version appears to be
> practically the same.
> 
> Half of NumberUtils is String conversion. The other half are min/max;
> which is what IEEE754Utils is. These could potentially move to
> [math]'s util.MathUtils.
> 
> One advantage is that people looking for these minor methods would
> have an on ramp into the other components for the more powerful
> features.
> 
> One concern I have is finding the basic functionality in another
> package. You go to [math] and it's all about the powerful deep things,
> not a random reusable bit of code off to the side.
> 
> Maybe the right solution there is "Commons Common", with 80% reuse/20%
> power; or maybe the solution is documentation in which all the basic
> types of methods are collated and link to the components they're in.

We probably lack good documentation on the basic utility parts in [math].

Luc

> 
> Hen
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 
> 


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [configuration] Dependencies after switch to 1.4

2010-01-03 Thread Oliver Heger

Henri Yandell schrieb:

What would a dependency of 1.5 mean with regards to the Xerces dependency?

You depend on Lang/Collections, and both are 1.5 dependent for their
next version.


With 1.5 the Xerces dependency is no more needed.

There is some work going on for a Configuration 2.0 version which uses 
Java 1.5. We have a branch for this project. So the idea is that 2.0 
depends on Java 1.5 while the 1.x series remains on 1.4. Once 2.0 is 
released, there should only be bug-fix releases for 1.x. However, I fear 
there is still much work to do before 2.0 can be published.


Oliver



Hen

On Sat, Jan 2, 2010 at 12:22 PM, Oliver Heger
 wrote:

In order to change the minimum required JDK to 1.4 I modified pom.xml. I was
hoping to get rid of all the XML-related dependencies, but obviously this is
not so easy.

When dropping the Xerces-dependency I get a bunch of test failures:
- Many of them are caused by tests for DatabaseConfiguration. Here dbunit
cannot resolve the DTD in the dataset file. This can be solved by simply
removing the reference to the DTD.
- The major problem is caused by tests that require advanced validation
features, e.g. schema validation. This is not supported by the parser
shipped with Java 1.4.

Because of the latter point I think we are forced to keep the
Xerces-dependency (with test scope). Unfortunately, this also demands the
dependency to XML-APIs - otherwise I get NoClassDefFound errors.

Or is there an alternative?

At least the dependency to Xalan can be dropped. I wonder whether this has
some impact on GUMP which has still trouble with building [configuration].

Oliver

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [configuration] Dependencies after switch to 1.4

2010-01-03 Thread Oliver Heger

Ralph Goers schrieb:
I believe this could be addressed by changing the pom to only include Xerces and XML-APIs when compiling with JDK 5+ with a desired target of JDK 5+ and then having the unit tests that use validation only run when Java 5+ is enabled. However, this seems like a lot of work for little benefit since Xerces and XML-APIs already have test scope so they won't be brought in to a user's project unless they wants them. 


Ralph


Agreed, it is probably not worth the effort. So it is a matter of 
documentation on our dependencies page. There has to be a statement that 
Xerces is required on JDK 1.4 for schema validation.


Oliver




On Jan 2, 2010, at 12:22 PM, Oliver Heger wrote:


In order to change the minimum required JDK to 1.4 I modified pom.xml. I was 
hoping to get rid of all the XML-related dependencies, but obviously this is 
not so easy.

When dropping the Xerces-dependency I get a bunch of test failures:
- Many of them are caused by tests for DatabaseConfiguration. Here dbunit 
cannot resolve the DTD in the dataset file. This can be solved by simply 
removing the reference to the DTD.
- The major problem is caused by tests that require advanced validation 
features, e.g. schema validation. This is not supported by the parser shipped 
with Java 1.4.

Because of the latter point I think we are forced to keep the Xerces-dependency 
(with test scope). Unfortunately, this also demands the dependency to XML-APIs 
- otherwise I get NoClassDefFound errors.

Or is there an alternative?

At least the dependency to Xalan can be dropped. I wonder whether this has some 
impact on GUMP which has still trouble with building [configuration].

Oliver

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [lang][collections] Overlap; Collections thoughts

2010-01-03 Thread Matt Benson


On Jan 2, 2010, at 3:27 PM, Henri Yandell wrote:

On Sat, Jan 2, 2010 at 10:45 AM, Phil Steitz  
 wrote:

Henri Yandell wrote:



I was thinking more that a smaller [collections] might have room for
the functor code again - not that [lang] would :) Agreed that it's
better out than in though.


That is instructive, but sort of hurts the case, though, as functors
are arguably closer to a language extension than they are related to
the [collections] domain.


Agreed that it's a bad example. I'd used it as a component that had
left collections for some reason and might be a better fit - not from
a technical perspective. My negative to adding to Lang would be that
unlike the Enum and NestedException pieces of code, functional-in-OO
needs a lot of language support to feel good.


 Better examples of what might be peeled off into
[lang] could be the iterators or decorators.  Can you get a little
more specific on what parts of [collections] you see as in scope  
for

 merging into [lang]?


https://issues.apache.org/jira/browse/LANG-532 has a bit.

The various XxxUtils classes - but not the factory builder parts  
that

supply various aspects.
A slice of the iterators and the comparators. Possibly some basic
'missing' implementations such as ArrayStack, ArraySet, FastVector
etc.



So its the bits that connect the domain to the JDK?  That would put,
for example, parts of o.a.c.math.stat.StatUtils,
o.a.c.math.util.MathUtils similarly in scope.  The question here is
what is special about [collections] and doesn't this just amount to
artificially hacking off pieces that belong with the domain?  I am
still not seeing the "joints" here.


Lang's math.NumberUtils and math.Fraction for example. MathUtils and a
little bit of StatUtils do look to be similar in scope.

The special bits with collections are:

* Lang issues are identifying overlap problems with Collections.
ArrayUtils starts to look like Collections when you take a more
generic approach to a problem (for example ArraySet),
ComparableComparator was recently copied over (private class) and
there is a ComparableUtils class request.
* I have concerns over whether there will be a Collections 4.0.


My view on this is "eventually"--I certainly feel I've put in too  
much work to simply let [collections] go.  However, the following  
issue you identified has been a thorn in my side for quite some time  
so I am on board for streamlining, multiple artifacts, and anything  
else that will improve the situation.



* Collections has issues that say (paraphrasing) "Nice idea, don't
commit until Collections is lighter in weight".
* Collections has more code at the JDK level being hidden by more
additional features than say IO (less additional features), Codec (not
a lot of JDK level code), Math (not a lot of JDK level code).


Like [collections], they all have a more specialized domain that is
their primary focus.  So the natural question is, if this makes
sense for [collections], why not everywhere else?  Answering that
question might help clarify intent here.


Yup. We've already been doing it with BeanUtils - some of the code
moved/copied over in 3.0.

What it would possibly mean in your commons wide suggestion is a  
bunch

of components having a dependency on [lang], which as you say below
has often been a blocker. Then again - all java.* code depends on
java.lang.* :)


Can you explain a little more what exactly has moved from BeanUtils
and what kinds of other things you have in mind?


I thought the new reflect package was from BeanUtils. I think by way
of the reflect sandbox component. If not code from BeanUtils, it is a
direct overlap with some of the code at the core of BeanUtils.


That code was indeed cloned/copied from BeanUtils.  The [reflect]  
component in the sandbox didn't figure into the pedigree, though some  
of the class names there would understandably suggest otherwise (or,  
for all I know [reflect] may have also been cloned from BeanUtils  
code).  The point being that oacl.reflect provides a thin veneer over  
java.lang.reflect and thus seemed to be a proper fit.


-Matt




One final comment is that a logical alternative is to just split
[collections] internally into multiple pieces with separate release
cycles. Managing dependencies among the subcomponents and user
documentation might be tricky.  IIRC, that is what has prevented us
from actually ever doing this up to now.


Yup. Effectively this is both a split into 'Collections JDK' and
'Collections Structures', and a merge of Collections JDK to Lang.


A natural question to ask is is that the best way to split
[collections] up?  It would probably force some users to depend on -
and look for stuff in - [lang] when [collections] by itself would
now meet their needs.  Pulling the iterators, for example, out of
[collections] would make it harder to use by itself and I bet would
force [collections] itself to depend on [lang].  I am not (yet)
convinced that this is the best way to divide [colle

[continuum] BUILD SUCCESSFUL: Commons - Commons Configuration -

2010-01-03 Thread contin...@vmbuild.apache.org
Online report : 
http://vmbuild.apache.org/continuum/buildResult.action?buildId=265195&projectId=161

Build statistics:
  State: Ok
  Previous State: Failed
  Started at: Fri 1 Jan 2010 14:47:15 -0800
  Finished at: Fri 1 Jan 2010 14:51:20 -0800
  Total time: 4m 4s
  Build Trigger: Schedule
  Build Number: 151
  Exit code: 0
  Building machine hostname: vmbuild.apache.org
  Operating system : Linux(unknown)
  Java Home version : 
  java version "1.6.0_06"
  Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
  Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

  Builder version :
  Maven version: 2.0.9
  Java version: 1.6.0_06
  OS name: "linux" version: "2.6.24-23-server" arch: "i386" Family: 
"unix"


SCM Changes:

Changed: no author @ no date
Comment: no comment
Files changed:
  xdocs/dependencies.xml ( no revision )
  xdocs/building.xml ( no revision )
  pom.xml ( no revision )


Dependencies Changes:

No dependencies changed



Build Definition:

POM filename: pom.xml
Goals: clean deploy   
Arguments: --batch-mode 
-DaltDeploymentRepository=vmbuild.repo::default::file://localhost/home/continuum/data/commons
 -Pci
Build Fresh: false
Always Build: false
Default Build Definition: true
Schedule: COMMONS_SCHEDULE
Profile Name: JDK 6
Description: 


Test Summary:

Tests: 1456
Failures: 0
Errors: 0
Success Rate: 100
Total time: 144.61998





-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [lang][collections] Overlap; Collections thoughts

2010-01-03 Thread Phil Steitz
Paul Benedict wrote:
> Each if you split Collections into Maven children, you would still
> wouldn't want to release them independently. That would be a gigantic
> administrative error. Struts was thinking about doing the same thing
> with its libraries, but we turned away from it -- THANKFULLY. How
> would you explain to users what versions are compatible with each
> other? It becomes a nightmare to manage.

That is a very good point.  It would only be possible to separate
the release cycles if you could somehow guarantee that mixing and
matching subcomponent versions would *always* work, which is
probably impractical.

I think your later suggestion is a better way to go - keep doing
bundled releases, but do them more often.

Phil
> 
> Paul
> 
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
> 


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



[g...@vmgump]: Project commons-vfs (in module apache-commons) failed

2010-01-03 Thread Gump
To whom it may engage...

This is an automated request, but not an unsolicited one. For 
more information please visit http://gump.apache.org/nagged.html, 
and/or contact the folk at gene...@gump.apache.org.

Project commons-vfs has an issue affecting its community integration.
This issue affects 44 projects.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- ant-contrib :  Useful little Ant tasks
- ant-contrib-test :  Useful little Ant tasks
- antbook-diary-core :  Examples to go with Java Development with Ant
- antbook-sections :  Examples to go with Java Development with Ant
- cddlm :  Configuration and Deployment of Grid Applications and System...
- commons-configuration :  Apache Commons
- commons-configuration-test :  Apache Commons
- commons-jelly-tags-ojb :  Commons Jelly
- commons-vfs :  Apache Commons
- commons-vfs-sandbox :  Apache Commons
- commons-vfs-test :  Apache Commons
- db-ojb :  ObjectRelationalBridge
- db-ojb-from-packages :  ObjectRelationalBridge
- excalibur-fortress-bean :  Repository of reusable components.
- excalibur-fortress-container-impl :  Repository of reusable components.
- excalibur-fortress-container-test :  Repository of reusable components.
- excalibur-fortress-examples :  Repository of reusable components.
- excalibur-fortress-migration :  Repository of reusable components.
- excalibur-fortress-platform :  Repository of reusable components.
- excalibur-fortress-testcase :  Repository of reusable components.
- excalibur-monitor :  Repository of reusable components.
- excalibur-sourceresolve :  Repository of reusable components.
- excalibur-xmlutil :  Repository of reusable components.
- excalibur-xmlutil-test :  Repository of reusable components.
- forrest-rat :  Apache Forrest is an XML standards-oriented documentation 
fr...
- fulcrum-configuration-impl :  Services Framework
- fulcrum-security-memory :  Services Framework
- fulcrum-security-nt :  Services Framework
- fulcrum-template :  Services Framework
- invicta :  Open-source build management tool.
- ivy :  Ivy Core
- ivy-tests :  Ivy is a tool for managing (recording, tracking, resolving 
a...
- jakarta-turbine-jcs :  Cache
- logging-log4cxx-ant :  Apache log4cxx
- logging-log4cxx-ant-no_wchar_t :  Apache log4cxx
- logging-log4cxx-ant-static :  Apache log4cxx
- org.apache.commons:commons-vfs :  Apache Commons
- smartfrog :  Smartfrog: Application Deployment from HP Laboratories
- smartfrog-components :  Smartfrog: Application Deployment from HP 
Laboratories
- smartfrog-tasks :  Smartfrog: Application Deployment from HP Laboratories
- smartfrog-tasks-test :  Smartfrog: Application Deployment from HP 
Laboratories
- smartfrog-test :  Smartfrog: Application Deployment from HP Laboratories
- smartfrog-testharness :  Smartfrog: Application Deployment from HP 
Laboratories
- test-ojb :  ObjectRelationalBridge


Full details are available at:
http://vmgump.apache.org/gump/public/apache-commons/commons-vfs/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole output [commons-vfs-2.0-SNAPSHOT.jar] identifier set to project 
name
 -DEBUG- (Gump generated) Maven2 Settings in: 
/srv/gump/public/workspace/apache-commons/vfs/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: /srv/gump/public/workspace/apache-commons/vfs/pom.xml
 -DEBUG- Extracted fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-vfs/gump_work/build_apache-commons_commons-vfs.html
Work Name: build_apache-commons_commons-vfs (Type: Build)
Work ended in a state of : Failed
Elapsed: 6 secs
Command Line: mvn --batch-mode -Dmaven.test.skip.exec=true --settings 
/srv/gump/public/workspace/apache-commons/vfs/gump_mvn_settings.xml package 
[Working Directory: /srv/gump/public/workspace/apache-commons/vfs]
CLASSPATH: 
/usr/lib/jvm/java-6-sun/lib/tools.jar:/srv/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/srv/gump/public/workspace/ant/dist/lib/ant-swing.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/srv/gump/public/workspace/ant/dist/lib/ant-apache-xalan2.jar:/srv/gump/public/workspace/ant/dist/lib/ant-trax.jar:/srv/gump/public/workspace/ant/dist/lib/ant-junit.jar:/srv/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/srv/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/srv/gump/public/workspace/ant/dist/lib/ant.jar:/srv/gump/public/workspace/junit/dist/junit-01012010.jar:/srv/gump/public/workspace/xml-commons/java/external/build/xml-apis-ext.jar:/srv/gump/public/workspace/apache-commons/logging/target/commons-logging-01012010.jar:/sr

[continuum] BUILD SUCCESSFUL: Commons - Commons VFS -

2010-01-03 Thread contin...@vmbuild.apache.org
Online report : 
http://vmbuild.apache.org/continuum/buildResult.action?buildId=265231&projectId=171

Build statistics:
  State: Ok
  Previous State: Failed
  Started at: Fri 1 Jan 2010 17:35:09 -0800
  Finished at: Fri 1 Jan 2010 17:39:23 -0800
  Total time: 4m 14s
  Build Trigger: Schedule
  Build Number: 43
  Exit code: 0
  Building machine hostname: vmbuild.apache.org
  Operating system : Linux(unknown)
  Java Home version : 
  java version "1.6.0_06"
  Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
  Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)

  Builder version :
  Maven version: 2.0.9
  Java version: 1.6.0_06
  OS name: "linux" version: "2.6.24-23-server" arch: "i386" Family: 
"unix"


SCM Changes:

Changed: no author @ no date
Comment: no comment
Files changed:
  pom.xml ( no revision )


Dependencies Changes:

No dependencies changed



Build Definition:

POM filename: pom.xml
Goals: clean deploy   
Arguments: --batch-mode 
-DaltDeploymentRepository=vmbuild.repo::default::file://localhost/home/continuum/data/commons
 -Pci
Build Fresh: false
Always Build: false
Default Build Definition: true
Schedule: COMMONS_SCHEDULE
Profile Name: JDK 6
Description: 


Test Summary:

Tests: 977
Failures: 0
Errors: 0
Success Rate: 100
Total time: 108.22099





-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: RESULT: Failed [VOTE] Release DBCP 1.3/1.4 - take three

2010-01-03 Thread sebb
On 03/01/2010, Phil Steitz  wrote:
> sebb wrote:
>  > On 03/01/2010, sebb  wrote:
>  >> On 02/01/2010, Phil Steitz  wrote:
>  >>  > sebb wrote:
>  >>  >  > On 01/01/2010, Phil Steitz  wrote:
>  >>  >  >> Phil Steitz wrote:
>  >>  >  >>  > sebb wrote:
>  >>  >  >>  >> On 31/12/2009, Phil Steitz  wrote:
>  >>  >  >>  >>> Comments have not changed sebb's -1, so I am going to 
> consider this
>  >>  >  >>  >>>  a failed VOTE and roll another RC with documentation fixes 
> already
>  >>  >  >>  >>>  made included and attempt at clearer release notes and 
> README.
>  >>  >  >>  >>>
>  >>  >  >>  >>>  Thanks, all for review and sorry to take so long to get this 
> right.
>  >>  >  >>  >> Please note that I am still seeing the occasional test 
> failures (even
>  >>  >  >>  >> after the test bug fix).
>  >>  >  >>  >> As a result, I did not revisit the -1 for the compilation 
> problems -
>  >>  >  >>  >> the test failure seems like a -1 to me as well.
>  >>  >  >>  >
>  >>  >  >>  > In that case, I am honestly inclined to just remove / disable 
> the
>  >>  >  >>  > tests.  As I said before, they are fragile and frankly 
> half-baked.
>  >>  >  >>  > Unfortunately, they did uncover a real bug recently, so I am of 
> two
>  >>  >  >>  > minds on this.
>  >>  >  >>  >
>  >>  >  >>  > What is going on in the most recent failure you reported (line 
> 376
>  >>  >  >>  > of TestPerUserPoolDataSource) is a ThreadGroup is started 
> launching
>  >>  >  >>  > 2 * maxActive threads, all of which try to get connections, hold
>  >>  >  >>  > them for (sic) 1 ms and then release them.  MaxWait is 100 ms 
> and
>  >>  >  >>  > maxActive is 10.   This "should" work as the effective 
> throughput
>  >>  >  >>  > should be ~10 requests / ms (that assumes perfect efficiency 
> and no
>  >>  >  >>  > execution time, which is not quite right), so 20 requests should
>  >>  >  >>  > complete in ~20 ms.
>  >>  >  >>
>  >>  >  >>
>  >>  >  >> Sorry - that should be 2 ms.
>  >>  >  >
>  >>  >  > If maxWait is 100ms, and each thread waits 1ms, surely this should 
> always work?
>  >>  >  > Even if each wait actually takes 50ms, the first 10 requests will 
> take
>  >>  >  > approx 50ms, and the remaining 10 requests will then get their
>  >>  >  > connections.
>  >>  >  >
>  >>  >  > In the tests I ran last year (!), at least some of the failed tests
>  >>  >  > showed that 10 of the threads timed out, i.e. none of the original 
> 10
>  >>  >  > threads had finished. It seems a bit unlikely that this is really an
>  >>  >  > issue with the processing times.
>  >>  >  >
>  >>  >  > I think this needs closer investigation - I'll try and add some more
>  >>  >  > debug for the failed cases.
>  >>  >
>  >>  >
>  >>  > Thanks.  I just completed 1000 runs each using Apple 1.5, 1.6, Sun
>  >>  >  1.6 and JRockit 1.4 (last two on Ubuntu 9.10) with no failures.
>  >>
>  >>
>  >> Any tests using multiple core systems?
>  >>
>  >>
>  >>  >  You are correct that with maxActive = 10, throughput should be
>  >>  >  nearly 10/ms, so 20 should finish in 2ms.  There are three things
>  >>  >  that can dampen the throughput:
>  >>  >
>  >>  >  1) Elapsed time between when a thread invokes sleep(1) and performs
>  >>  >  its next action (which is to return the connection it is holding)
>  >>  >  2) Elapsed time waiting for a waiting thread to respond to notify
>  >>  >  3) There is a trivial amount of code executed by the threads holding
>  >>  >  the connections and of course the pool itself executes some code.
>  >>  >
>  >>  >  What JDK are you using when you see these failures?
>  >>
>  >>
>  >> java version "1.6.0_17"
>  >>  Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
>  >>  Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
>  >>
>  >>  This is on Windows XP, dual-processor (Centrino).
>  >>
>  >>  There is another bug in the test - it does not wait for all the
>  >>  threads to finish.
>  >>  However, I don't think this affects the result, as the first test is
>  >>  the one that fails, so there can't be any threads at that point.
>  >>  However it could affect the second test, as the same driver and pool
>  >>  is used. The two tests should probably be separate test cases.
>  >>
>  >
>  > When a test fails for me, 10 threads get timeouts.
>  > All the first 10 threads take longer than 100ms to complete and all
>  > take about the same amount of time (within 5ms or so).
>
>
> There should be 20 threads launched by the test that does not expect
>  timeouts.  So 10 are completing in time and 10 are timing out?

10 complete without any failures, however they all take over 100ms to
complete - e.g. 160ms or 200ms - and so the other 10 threads suffer
timeouts.


> >
>  > This does not seem to be due to cpu starvation, because the timeouts
>  > occur some while before the first 10 threads complete. This suggests
>  > to me that the JVM is not being stalled by garbage collection or
>  > external activities.
>
>
> I doubt it is either

Re: RESULT: Failed [VOTE] Release DBCP 1.3/1.4 - take three

2010-01-03 Thread Phil Steitz
sebb wrote:
> On 03/01/2010, Phil Steitz  wrote:
>> sebb wrote:
>>  > On 03/01/2010, sebb  wrote:
>>  >> On 02/01/2010, Phil Steitz  wrote:
>>  >>  > sebb wrote:
>>  >>  >  > On 01/01/2010, Phil Steitz  wrote:
>>  >>  >  >> Phil Steitz wrote:
>>  >>  >  >>  > sebb wrote:
>>  >>  >  >>  >> On 31/12/2009, Phil Steitz  wrote:
>>  >>  >  >>  >>> Comments have not changed sebb's -1, so I am going to 
>> consider this
>>  >>  >  >>  >>>  a failed VOTE and roll another RC with documentation fixes 
>> already
>>  >>  >  >>  >>>  made included and attempt at clearer release notes and 
>> README.
>>  >>  >  >>  >>>
>>  >>  >  >>  >>>  Thanks, all for review and sorry to take so long to get 
>> this right.
>>  >>  >  >>  >> Please note that I am still seeing the occasional test 
>> failures (even
>>  >>  >  >>  >> after the test bug fix).
>>  >>  >  >>  >> As a result, I did not revisit the -1 for the compilation 
>> problems -
>>  >>  >  >>  >> the test failure seems like a -1 to me as well.
>>  >>  >  >>  >
>>  >>  >  >>  > In that case, I am honestly inclined to just remove / disable 
>> the
>>  >>  >  >>  > tests.  As I said before, they are fragile and frankly 
>> half-baked.
>>  >>  >  >>  > Unfortunately, they did uncover a real bug recently, so I am 
>> of two
>>  >>  >  >>  > minds on this.
>>  >>  >  >>  >
>>  >>  >  >>  > What is going on in the most recent failure you reported (line 
>> 376
>>  >>  >  >>  > of TestPerUserPoolDataSource) is a ThreadGroup is started 
>> launching
>>  >>  >  >>  > 2 * maxActive threads, all of which try to get connections, 
>> hold
>>  >>  >  >>  > them for (sic) 1 ms and then release them.  MaxWait is 100 ms 
>> and
>>  >>  >  >>  > maxActive is 10.   This "should" work as the effective 
>> throughput
>>  >>  >  >>  > should be ~10 requests / ms (that assumes perfect efficiency 
>> and no
>>  >>  >  >>  > execution time, which is not quite right), so 20 requests 
>> should
>>  >>  >  >>  > complete in ~20 ms.
>>  >>  >  >>
>>  >>  >  >>
>>  >>  >  >> Sorry - that should be 2 ms.
>>  >>  >  >
>>  >>  >  > If maxWait is 100ms, and each thread waits 1ms, surely this should 
>> always work?
>>  >>  >  > Even if each wait actually takes 50ms, the first 10 requests will 
>> take
>>  >>  >  > approx 50ms, and the remaining 10 requests will then get their
>>  >>  >  > connections.
>>  >>  >  >
>>  >>  >  > In the tests I ran last year (!), at least some of the failed tests
>>  >>  >  > showed that 10 of the threads timed out, i.e. none of the original 
>> 10
>>  >>  >  > threads had finished. It seems a bit unlikely that this is really 
>> an
>>  >>  >  > issue with the processing times.
>>  >>  >  >
>>  >>  >  > I think this needs closer investigation - I'll try and add some 
>> more
>>  >>  >  > debug for the failed cases.
>>  >>  >
>>  >>  >
>>  >>  > Thanks.  I just completed 1000 runs each using Apple 1.5, 1.6, Sun
>>  >>  >  1.6 and JRockit 1.4 (last two on Ubuntu 9.10) with no failures.
>>  >>
>>  >>
>>  >> Any tests using multiple core systems?
>>  >>
>>  >>
>>  >>  >  You are correct that with maxActive = 10, throughput should be
>>  >>  >  nearly 10/ms, so 20 should finish in 2ms.  There are three things
>>  >>  >  that can dampen the throughput:
>>  >>  >
>>  >>  >  1) Elapsed time between when a thread invokes sleep(1) and performs
>>  >>  >  its next action (which is to return the connection it is holding)
>>  >>  >  2) Elapsed time waiting for a waiting thread to respond to notify
>>  >>  >  3) There is a trivial amount of code executed by the threads holding
>>  >>  >  the connections and of course the pool itself executes some code.
>>  >>  >
>>  >>  >  What JDK are you using when you see these failures?
>>  >>
>>  >>
>>  >> java version "1.6.0_17"
>>  >>  Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
>>  >>  Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
>>  >>
>>  >>  This is on Windows XP, dual-processor (Centrino).
>>  >>
>>  >>  There is another bug in the test - it does not wait for all the
>>  >>  threads to finish.
>>  >>  However, I don't think this affects the result, as the first test is
>>  >>  the one that fails, so there can't be any threads at that point.
>>  >>  However it could affect the second test, as the same driver and pool
>>  >>  is used. The two tests should probably be separate test cases.
>>  >>
>>  >
>>  > When a test fails for me, 10 threads get timeouts.
>>  > All the first 10 threads take longer than 100ms to complete and all
>>  > take about the same amount of time (within 5ms or so).
>>
>>
>> There should be 20 threads launched by the test that does not expect
>>  timeouts.  So 10 are completing in time and 10 are timing out?
> 
> 10 complete without any failures, however they all take over 100ms to
> complete - e.g. 160ms or 200ms - and so the other 10 threads suffer
> timeouts.
> 
> 
>>  > This does not seem to be due to cpu starvation, because the timeouts
>>  > occur some while before the first 10 threads