[jira] Created: (JELLY-221) Soap invoke and invokeRaw tags should allow the result to be available as SAX event stream to it's containing tag
Soap invoke and invokeRaw tags should allow the result to be available as SAX event stream to it's containing tag - Key: JELLY-221 URL: http://issues.apache.org/jira/browse/JELLY-221 Project: jelly Type: Improvement Components: taglib.soap Reporter: Tony Robertson Currently the result of a Soap call can only be saved to a variable through the var attribute. It would be good if the XML could be available to the containing tag through the normal event pipeline, in the way that the example at http://jakarta.apache.org/commons/jelly/pipeline.html suggests. As it is now, it's a bit sad that the one example given for how great Jelly is at doing XML pipelines actually doesn't work. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[pool] synchronization issues in Pool
Hello, I'm a PhD student in Computer Science at Stanford University, evaluating a static race detection tool I'm developing on open source Java programs. I ran it on the 5 implementations of pools in Apache Commons Pool, and found some bugs. The output of the tool is here: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/softref/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic_keyed/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack_keyed/index.html I will explain one race in detail. Following the [grouped by field] link on the first link above and then the [details] link under the heading Races on field org.apache.commons.pool.BaseObjectPool: boolean closed leads you to: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/R8_trace.html Traversing the [up] links on this page yields at least one pair of paths in the call graph along which a common lock is not held and hence a race can occur if that pair of paths is executed by different threads: PATH 1: GenericHarness:27 org.apache.commons.pool.impl.GenericObjectPool:853 org.apache.commons.pool.BaseObjectPool:77 leading to a read access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:73 PATH 2: GenericHarness:33 org.apache.commons.pool.impl.GenericObjectPool:901 leading to a write access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:62 [GenericHarness is a test harness that my tool automatically generates.] The above race is due to missing synchronization in method returnObject of class GenericObjectPool. In fact, it can cause a null pointer exception: thread 1 calls the returnObject method which executes the assertOpen method and finds the pool to be open. thread 2 calls the close method which sets _factory to null. thread 1 executes the addObjectToPool method which deferences _factory. Many other races are because parts of some methods implementing the pool interfaces (ex. invalidateObject below) that access _factory are not synchronized: public void invalidateObject(Object obj) throws Exception { assertOpen(); try { _factory.destroyObject(obj); } finally { synchronized(this) { _numActive--; notifyAll(); } } } Perhaps, the developer expects the client methods implementing the factory interface to be synchronized. If this is indeed the case, it should perhaps be documented somewhere so that unwitting users don't implement the factory interface without synchronization. Even if users implement the factory interface with synchronization, there is a problem: if one thread executes the invalidateObject method and another executes the close method (which sets _factory to null), then there can be a null pointer exception similar to the scenario outlined above. Most of the races I found are harmful (ex. causing null pointer exceptions) if the close method is called concurrently with some other pool interface method. Perhaps, it is highly unlikely that a client would do that. However, since the pool interface is intended to be thread-safe, I think it's implementations should handle this scenario gracefully. I have summarized below all possible bugs I found by inspecting the above reports generated by my race detection tool. I would be happy if you can confirm/refute these bugs. Thanks! -- Mayur org.apache.commons.pool.impl.GenericObjectPool == The returnObject(Object) and addObject() methods must be synchronized. The synchronization inside the body of the method addObjectToPool is then unnecessary since all callers of this method are synchronized. The entire invalidateObject(Object) method must be synchronized, not just parts of it. The entire borrowObject() method must be synchronized, not just parts of it. Note that there are dereferences of _factory in the unsynchronized portions of this method, so there will be a null pointer dereference if it is called concurrently with the close method. Once the entire borrowObject method is synchronized, you can also move the assertOpen() call at the start of each iteration of the loop in this method to outside the loop. org.apache.commons.pool.impl.StackObjectPool The entire returnObject(Object) method must be synchronized, not just parts of it. The getNumIdle() method must be synchronized. The getNumActive() method must be synchronized. The entire addObject() method must be synchronized, not just parts of it. org.apache.commons.pool.impl.SoftReferenceObjectPool The entire returnObject(Object) method must be synchronized, not just parts of it. The
[EMAIL PROTECTED]: Project commons-jelly-test (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-test has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-test : Commons Jelly Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-test/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on jakarta-servletapi-5-servlet exists, no need to add for property maven.jar.servletapi. -DEBUG- Dependency on jakarta-taglibs-standard exists, no need to add for property maven.jar.jstl. -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -WARNING- Overriding Maven properties: [/usr/local/gump/public/workspace/commons-jelly/build.properties] -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/target/test-reports The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-test/gump_work/build_commons-jelly_commons-jelly-test.html Work Name: build_commons-jelly_commons-jelly-test (Type: Build) Work ended in a state of : Failed Elapsed: 52 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/cli/target/commons-cli-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/discovery/dist/commons-discovery.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/lang/dist/commons-lang-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/forehead/forehead-1.0-beta-5.jar:/usr/local/gump/public/workspace/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:/usr/local/gump/public/workspace/jakarta-taglibs/dist/standard/lib/jstl.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar - [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] org.apache.commons.jelly.JellyTagException: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly:359:75: test:assertEquals expected:[22] but was:[22] [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:712) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] Caused by: org.apache.commons.jelly.tags.junit.JellyAssertionFailedError: expected:[22] but was:[22] [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] at org.apache.commons.jelly.tags.junit.AssertTagSupport.fail(AssertTagSupport.java:39) [junit] at org.apache.commons.jelly.tags.junit.AssertTagSupport.failNotEquals(AssertTagSupport.java:62) [junit] at org.apache.commons.jelly.tags.junit.AssertEqualsTag.doTag(AssertEqualsTag.java:55) [junit]
[EMAIL PROTECTED]: Project commons-jelly-test (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-test has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-test : Commons Jelly Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-test/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Dependency on jakarta-servletapi-5-servlet exists, no need to add for property maven.jar.servletapi. -DEBUG- Dependency on jakarta-taglibs-standard exists, no need to add for property maven.jar.jstl. -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -WARNING- Overriding Maven properties: [/usr/local/gump/public/workspace/commons-jelly/build.properties] -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/target/test-reports The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-test/gump_work/build_commons-jelly_commons-jelly-test.html Work Name: build_commons-jelly_commons-jelly-test (Type: Build) Work ended in a state of : Failed Elapsed: 52 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/cli/target/commons-cli-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/discovery/dist/commons-discovery.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/lang/dist/commons-lang-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/forehead/forehead-1.0-beta-5.jar:/usr/local/gump/public/workspace/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:/usr/local/gump/public/workspace/jakarta-taglibs/dist/standard/lib/jstl.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar - [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] org.apache.commons.jelly.JellyTagException: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly:359:75: test:assertEquals expected:[22] but was:[22] [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:712) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] Caused by: org.apache.commons.jelly.tags.junit.JellyAssertionFailedError: expected:[22] but was:[22] [junit] Expected expression: ${singleSize*2} [junit] Actual expression: ${doubleSize} File: file:/x1/gump/public/workspace/commons-jelly/target/test-classes/org/apache/commons/jelly/suite.jelly At tag test:assertEquals: line: 359 column: 75 [junit] at org.apache.commons.jelly.tags.junit.AssertTagSupport.fail(AssertTagSupport.java:39) [junit] at org.apache.commons.jelly.tags.junit.AssertTagSupport.failNotEquals(AssertTagSupport.java:62) [junit] at org.apache.commons.jelly.tags.junit.AssertEqualsTag.doTag(AssertEqualsTag.java:55) [junit]
[EMAIL PROTECTED]: Project commons-jelly-tags-xml (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-tags-xml has an issue affecting its community integration. This issue affects 11 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-define : Commons Jelly - commons-jelly-tags-html : Commons Jelly - commons-jelly-tags-http : Commons Jelly - commons-jelly-tags-jetty : Commons Jelly - commons-jelly-tags-jface : Commons Jelly - commons-jelly-tags-jsl : Commons Jelly - commons-jelly-tags-swing : Commons Jelly - commons-jelly-tags-xml : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - maven : Project Management Tools - maven-bootstrap : Project Management Tools Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-jelly-tags-xml-23102005.jar] identifier set to project name -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/gump_work/build_commons-jelly_commons-jelly-tags-xml.html Work Name: build_commons-jelly_commons-jelly-tags-xml (Type: Build) Work ended in a state of : Failed Elapsed: 43 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetSingleNodeAndAsString(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] at org.apache.commons.jelly.tags.xml.SetTag.doTag(SetTag.java:86) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetStringLists(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] at
[EMAIL PROTECTED]: Project commons-jelly-tags-xml (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-tags-xml has an issue affecting its community integration. This issue affects 11 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-define : Commons Jelly - commons-jelly-tags-html : Commons Jelly - commons-jelly-tags-http : Commons Jelly - commons-jelly-tags-jetty : Commons Jelly - commons-jelly-tags-jface : Commons Jelly - commons-jelly-tags-jsl : Commons Jelly - commons-jelly-tags-swing : Commons Jelly - commons-jelly-tags-xml : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - maven : Project Management Tools - maven-bootstrap : Project Management Tools Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-jelly-tags-xml-23102005.jar] identifier set to project name -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/gump_work/build_commons-jelly_commons-jelly-tags-xml.html Work Name: build_commons-jelly_commons-jelly-tags-xml (Type: Build) Work ended in a state of : Failed Elapsed: 43 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetSingleNodeAndAsString(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] at org.apache.commons.jelly.tags.xml.SetTag.doTag(SetTag.java:86) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetStringLists(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] at
[EMAIL PROTECTED]: Project commons-latka (in module jakarta-commons) failed
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 [EMAIL PROTECTED] Project commons-latka has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-latka : Functional Testing Suite Full details are available at: http://vmgump.apache.org/gump/public/jakarta-commons/commons-latka/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-latka.jar] identifier set to project name -DEBUG- Dependency on packaged-jaxen exists, no need to add for property jaxen.jar. -INFO- Made directory [/usr/local/gump/public/workspace/jakarta-commons/latka/target/classes] -INFO- Made directory [/usr/local/gump/public/workspace/jakarta-commons/latka/target/test-classes] -INFO- Failed with reason build failed -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/jakarta-commons/commons-latka/gump_work/build_jakarta-commons_commons-latka.html Work Name: build_jakarta-commons_commons-latka (Type: Build) Work ended in a state of : Failed Elapsed: 10 secs Command Line: java -Djava.awt.headless=true -Xbootclasspath/p:/usr/local/gump/public/workspace/xml-xerces2/java/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/usr/local/gump/public/workspace/xml-xalan/java/build/serializer.jar:/usr/local/gump/public/workspace/xml-xalan/java/build/xalan-unbundled.jar org.apache.tools.ant.Main -Dgump.merge=/x1/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Djaxen.jar=/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar dist [Working Directory: /usr/local/gump/public/workspace/jakarta-commons/latka] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/latka/target/classes:/usr/local/gump/public/workspace/jakarta-commons/latka/target/test-classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar:/usr/local/gump/public/workspace/xml-commons/java/build/resolver.jar:/usr/local/gump/public/workspace/jakarta-commons/httpclient/dist/commons-httpclient.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/codec/dist/commons-codec-23102005.jar:/usr/local/gump/public/workspace/logging-log4j/log4j-23102005.jar:/usr/local/gump/public/workspace/jakarta-regexp/build/jakarta-regexp-23102005.jar:/usr/local/gump/public/workspace/jakarta-servletapi-4/lib/servlet.jar:/usr/local/gump/public/workspace/jdom/build/jdom.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/lang/dist/commons-lang-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.604 sec [junit] - Standard Output --- [junit] log4j:INFO Using URL [file:/x1/gump/public/workspace/jakarta-commons/latka/target/classes/log4j.properties] for automatic log4j configuration of repository named [default]. [junit] ESE [junit] [message] boo1 [junit] http://example.net:80/ [junit] REQUEST ERROR (-1 millis) [junit] java.net.UnknownHostException: example.net [junit] [message] boo2 [junit] http://example.org:80/ [junit] REQUEST SKIPPED (-1 millis) [junit] [message] boo3 [junit] http://example.net:80/ [junit] REQUEST ERROR (-1 millis) [junit] java.net.UnknownHostException: example.net [junit] SUITE FAILED
[EMAIL PROTECTED]: Project commons-latka (in module jakarta-commons) failed
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 [EMAIL PROTECTED] Project commons-latka has an issue affecting its community integration. This issue affects 1 projects, and has been outstanding for 13 runs. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-latka : Functional Testing Suite Full details are available at: http://vmgump.apache.org/gump/public/jakarta-commons/commons-latka/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-latka.jar] identifier set to project name -DEBUG- Dependency on packaged-jaxen exists, no need to add for property jaxen.jar. -INFO- Made directory [/usr/local/gump/public/workspace/jakarta-commons/latka/target/classes] -INFO- Made directory [/usr/local/gump/public/workspace/jakarta-commons/latka/target/test-classes] -INFO- Failed with reason build failed -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/jakarta-commons/commons-latka/gump_work/build_jakarta-commons_commons-latka.html Work Name: build_jakarta-commons_commons-latka (Type: Build) Work ended in a state of : Failed Elapsed: 10 secs Command Line: java -Djava.awt.headless=true -Xbootclasspath/p:/usr/local/gump/public/workspace/xml-xerces2/java/build/xercesImpl.jar:/usr/local/gump/public/workspace/xml-commons/java/external/build/xml-apis.jar:/usr/local/gump/public/workspace/xml-xalan/java/build/serializer.jar:/usr/local/gump/public/workspace/xml-xalan/java/build/xalan-unbundled.jar org.apache.tools.ant.Main -Dgump.merge=/x1/gump/public/gump/work/merge.xml -Dbuild.sysclasspath=only -Djaxen.jar=/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar dist [Working Directory: /usr/local/gump/public/workspace/jakarta-commons/latka] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/latka/target/classes:/usr/local/gump/public/workspace/jakarta-commons/latka/target/test-classes:/usr/local/gump/public/workspace/ant/dist/lib/ant-jmf.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-swing.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-apache-resolver.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-trax.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-junit.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-launcher.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant-nodeps.jar:/usr/local/gump/public/workspace/ant/dist/lib/ant.jar:/usr/local/gump/public/workspace/dist/junit/junit.jar:/usr/local/gump/public/workspace/xml-commons/java/build/resolver.jar:/usr/local/gump/public/workspace/jakarta-commons/httpclient/dist/commons-httpclient.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/codec/dist/commons-codec-23102005.jar:/usr/local/gump/public/workspace/logging-log4j/log4j-23102005.jar:/usr/local/gump/public/workspace/jakarta-regexp/build/jakarta-regexp-23102005.jar:/usr/local/gump/public/workspace/jakarta-servletapi-4/lib/servlet.jar:/usr/local/gump/public/workspace/jdom/build/jdom.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/lang/dist/commons-lang-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0.604 sec [junit] - Standard Output --- [junit] log4j:INFO Using URL [file:/x1/gump/public/workspace/jakarta-commons/latka/target/classes/log4j.properties] for automatic log4j configuration of repository named [default]. [junit] ESE [junit] [message] boo1 [junit] http://example.net:80/ [junit] REQUEST ERROR (-1 millis) [junit] java.net.UnknownHostException: example.net [junit] [message] boo2 [junit] http://example.org:80/ [junit] REQUEST SKIPPED (-1 millis) [junit] [message] boo3 [junit] http://example.net:80/ [junit] REQUEST ERROR (-1 millis) [junit] java.net.UnknownHostException: example.net [junit] SUITE FAILED
DO NOT REPLY [Bug 37102] - [vfs] Exception using ftp when copying to a directory with a tab in its name
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://issues.apache.org/bugzilla/show_bug.cgi?id=37102. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE. http://issues.apache.org/bugzilla/show_bug.cgi?id=37102 --- Additional Comments From [EMAIL PROTECTED] 2005-10-23 14:41 --- Hi, As I pointed out before, the copy action itself works fine, even if I copy a file into a directory which name contains a space. The exception occurs when I try to check the filesize on the remote server with the method myFileObject.getContent().getSize(). Do you have a reference code/code snippet which test the behaviour of the methods getContent() and getSize()? I'm using the standard/default Solaris 8 ftp. Thanks -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug, or are watching the assignee. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327789 - /jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java
Author: olegk Date: Sun Oct 23 06:17:00 2005 New Revision: 327789 URL: http://svn.apache.org/viewcvs?rev=327789view=rev Log: Additional test coverage for the bug report #37204 Modified: jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java Modified: jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java?rev=327789r1=327788r2=327789view=diff == --- jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java (original) +++ jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieNetscapeDraft.java Sun Oct 23 06:17:00 2005 @@ -238,7 +238,6 @@ /** * Tests Netscape specific expire attribute parsing. */ - public void testNetscapeCookieExpireAttribute() throws Exception { CookieSpec cookiespec = new NetscapeDraftSpec(); Header header = new Header(Set-Cookie, @@ -256,6 +255,21 @@ } } +/** + * Tests Netscape specific expire attribute without a time zone. + */ +public void testNetscapeCookieExpireAttributeNoTimeZone() throws Exception { +CookieSpec cookiespec = new NetscapeDraftSpec(); +Header header = new Header(Set-Cookie, +name=value; expires=Thu, 01-Jan-2006 00:00:00 ); +try { +cookiespec.parse(myhost.mydomain.com, 80, /, false, header ); +fail(MalformedCookieException should have been thrown); +} catch (MalformedCookieException ex) { +// expected +} +} + /** * Tests if cookie values with embedded comma are handled correctly. */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327791 - in /jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart: MultipartRequestEntity.java Part.java
Author: olegk Date: Sun Oct 23 06:27:39 2005 New Revision: 327791 URL: http://svn.apache.org/viewcvs?rev=327791view=rev Log: PR #37089 (need members of MultipartRequestEntity to be protected instead of private to make it extendable for multipart/related) Contributed by Guillaume Cottenceau poubelle2005 at yahoo.fr and Ortwin Glueck Reviewed by Oleg Kalnichevski Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java?rev=327791r1=327790r2=327791view=diff == --- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java (original) +++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.java Sun Oct 23 06:27:39 2005 @@ -99,7 +99,8 @@ return bytes; } -private Part[] parts; +/** The MIME parts as set by the constructor */ +protected Part[] parts; private byte[] multipartBoundary; @@ -121,7 +122,16 @@ this.params = params; } -private byte[] getMultipartBoundary() { +/** + * Returns the MIME boundary string that is used to demarcate boundaries of + * this part. The first call to this method will implicitly create a new + * boundary string. To create a boundary string first the + * HttpMethodParams.MULTIPART_BOUNDARY parameter is considered. Otherwise + * a random one is generated. + * + * @return The boundary string of this entity in ASCII encoding. + */ +protected byte[] getMultipartBoundary() { if (multipartBoundary == null) { String temp = (String) params.getParameter(HttpMethodParams.MULTIPART_BOUNDARY); if (temp != null) { Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java?rev=327791r1=327790r2=327791view=diff == --- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java (original) +++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/methods/multipart/Part.java Sun Oct 23 06:27:39 2005 @@ -122,7 +122,7 @@ /** * Return the boundary string. * @return the boundary string - * @deprecated + * @deprecated uses a constant string. Rather use [EMAIL PROTECTED] #getPartBoundary} */ public static String getBoundary() { return BOUNDARY; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 37210] New: - Can't find commons-logging-optional.jar
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://issues.apache.org/bugzilla/show_bug.cgi?id=37210. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE. http://issues.apache.org/bugzilla/show_bug.cgi?id=37210 Summary: Can't find commons-logging-optional.jar Product: Commons Version: 1.0.4 Platform: Other URL: http://jakarta.apache.org/commons/logging/guide.html#Jar s%20Included%20in%20the%20Standard%20Distribution OS/Version: other Status: NEW Severity: normal Priority: P2 Component: Logging AssignedTo: commons-dev@jakarta.apache.org ReportedBy: [EMAIL PROTECTED] The documentation for Commons Logging 1.0.4 says that commons-logging-optional.jar is included in the standard distribution, but it does not seem to be in either the binary or source zip files. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug, or are watching the assignee. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327792 - /jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java
Author: olegk Date: Sun Oct 23 06:34:28 2005 New Revision: 327792 URL: http://svn.apache.org/viewcvs?rev=327792view=rev Log: Removed unused import Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java Modified: jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java?rev=327792r1=327791r2=327792view=diff == --- jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java (original) +++ jakarta/commons/proper/httpclient/trunk/src/java/org/apache/commons/httpclient/HttpConnection.java Sun Oct 23 06:34:28 2005 @@ -41,7 +41,6 @@ import java.net.SocketException; import org.apache.commons.httpclient.params.HttpConnectionParams; -import org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [pool] synchronization issues in Pool
This looks interesting. I'll leave the pool comments to a pool developer. However, could adding a lot more synchronoization could cause other issues with locking and performance? My main question is can these tests be run against any class? We're particularly stuck with http://issues.apache.org/bugzilla/show_bug.cgi?id=32573 collections LRUMap at present where a bug can easily be reproduced when you don't sync, but not at all when you do sync. Yet we have bugs reported! So, is your tool an internal project for your PhD, or intended to be for general open source usage. Stephen Mayur Naik wrote: Hello, I'm a PhD student in Computer Science at Stanford University, evaluating a static race detection tool I'm developing on open source Java programs. I ran it on the 5 implementations of pools in Apache Commons Pool, and found some bugs. The output of the tool is here: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/softref/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic_keyed/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack_keyed/index.html I will explain one race in detail. Following the [grouped by field] link on the first link above and then the [details] link under the heading Races on field org.apache.commons.pool.BaseObjectPool: boolean closed leads you to: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/R8_trace.html Traversing the [up] links on this page yields at least one pair of paths in the call graph along which a common lock is not held and hence a race can occur if that pair of paths is executed by different threads: PATH 1: GenericHarness:27 org.apache.commons.pool.impl.GenericObjectPool:853 org.apache.commons.pool.BaseObjectPool:77 leading to a read access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:73 PATH 2: GenericHarness:33 org.apache.commons.pool.impl.GenericObjectPool:901 leading to a write access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:62 [GenericHarness is a test harness that my tool automatically generates.] The above race is due to missing synchronization in method returnObject of class GenericObjectPool. In fact, it can cause a null pointer exception: thread 1 calls the returnObject method which executes the assertOpen method and finds the pool to be open. thread 2 calls the close method which sets _factory to null. thread 1 executes the addObjectToPool method which deferences _factory. Many other races are because parts of some methods implementing the pool interfaces (ex. invalidateObject below) that access _factory are not synchronized: public void invalidateObject(Object obj) throws Exception { assertOpen(); try { _factory.destroyObject(obj); } finally { synchronized(this) { _numActive--; notifyAll(); } } } Perhaps, the developer expects the client methods implementing the factory interface to be synchronized. If this is indeed the case, it should perhaps be documented somewhere so that unwitting users don't implement the factory interface without synchronization. Even if users implement the factory interface with synchronization, there is a problem: if one thread executes the invalidateObject method and another executes the close method (which sets _factory to null), then there can be a null pointer exception similar to the scenario outlined above. Most of the races I found are harmful (ex. causing null pointer exceptions) if the close method is called concurrently with some other pool interface method. Perhaps, it is highly unlikely that a client would do that. However, since the pool interface is intended to be thread-safe, I think it's implementations should handle this scenario gracefully. I have summarized below all possible bugs I found by inspecting the above reports generated by my race detection tool. I would be happy if you can confirm/refute these bugs. Thanks! -- Mayur org.apache.commons.pool.impl.GenericObjectPool == The returnObject(Object) and addObject() methods must be synchronized. The synchronization inside the body of the method addObjectToPool is then unnecessary since all callers of this method are synchronized. The entire invalidateObject(Object) method must be synchronized, not just parts of it. The entire borrowObject() method must be synchronized, not just parts of it. Note that there are dereferences of _factory in the unsynchronized portions of this method, so there will be a null pointer dereference if it is called concurrently with the close method. Once the entire borrowObject method is synchronized, you can also move the assertOpen() call at the
Re: [pool] synchronization issues in Pool
On 23/10/05, Stephen Colebourne [EMAIL PROTECTED] wrote: My main question is can these tests be run against any class? We're particularly stuck with http://issues.apache.org/bugzilla/show_bug.cgi?id=32573 collections LRUMap at present where a bug can easily be reproduced when you don't sync, but not at all when you do sync. Yet we have bugs reported! So, is The issue is not clear to me on the exact circumstances when the reported bugs do occur: - do problems ever occur in single-threaded use? - if problems only occur in multi-threaded use, is access synchronized? and, just as important: - are all uses of Iterators synchronized on the map? See for example: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html#synchronizedMap(java.util.Map) HTH. S. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327795 - in /jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider: ftp/FtpFileSystemConfigBuilder.java sftp/SftpFileSystemConfigBuilder.java
Author: imario Date: Sun Oct 23 07:39:51 2005 New Revision: 327795 URL: http://svn.apache.org/viewcvs?rev=327795view=rev Log: fix: overlapping key names for configuration entries Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java?rev=327795r1=327794r2=327795view=diff == --- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java (original) +++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystemConfigBuilder.java Sun Oct 23 07:39:51 2005 @@ -30,9 +30,9 @@ private final static FtpFileSystemConfigBuilder builder = new FtpFileSystemConfigBuilder(); private final static String FACTORY_KEY = FTPFileEntryParserFactory.class.getName() + .KEY; -private final static String PASSIVE_MODE = FTPFileEntryParserFactory.class.getName() + .PASSIVE; -private final static String USER_DIR_IS_ROOT = FTPFileEntryParserFactory.class.getName() + .USER_DIR_IS_ROOT; -private final static String DATA_TIMEOUT = FTPFileEntryParserFactory.class.getName() + .DATA_TIMEOUT; +private final static String PASSIVE_MODE = FtpFileSystemConfigBuilder.class.getName() + .PASSIVE; +private final static String USER_DIR_IS_ROOT = FtpFileSystemConfigBuilder.class.getName() + .USER_DIR_IS_ROOT; +private final static String DATA_TIMEOUT = FtpFileSystemConfigBuilder.class.getName() + .DATA_TIMEOUT; public static FtpFileSystemConfigBuilder getInstance() { Modified: jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java?rev=327795r1=327794r2=327795view=diff == --- jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java (original) +++ jakarta/commons/proper/vfs/trunk/src/java/org/apache/commons/vfs/provider/sftp/SftpFileSystemConfigBuilder.java Sun Oct 23 07:39:51 2005 @@ -16,7 +16,6 @@ package org.apache.commons.vfs.provider.sftp; import com.jcraft.jsch.UserInfo; -import org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory; import org.apache.commons.vfs.FileSystemConfigBuilder; import org.apache.commons.vfs.FileSystemException; import org.apache.commons.vfs.FileSystemOptions; @@ -33,7 +32,7 @@ { private final static SftpFileSystemConfigBuilder builder = new SftpFileSystemConfigBuilder(); -private final static String USER_DIR_IS_ROOT = FTPFileEntryParserFactory.class.getName() + .USER_DIR_IS_ROOT; +private final static String USER_DIR_IS_ROOT = SftpFileSystemConfigBuilder.class.getName() + .USER_DIR_IS_ROOT; public static SftpFileSystemConfigBuilder getInstance() { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
DO NOT REPLY [Bug 37102] - [vfs] Exception using ftp when copying to a directory with a tab in its name
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://issues.apache.org/bugzilla/show_bug.cgi?id=37102. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE. http://issues.apache.org/bugzilla/show_bug.cgi?id=37102 [EMAIL PROTECTED] changed: What|Removed |Added Status|REOPENED|NEEDINFO --- Additional Comments From [EMAIL PROTECTED] 2005-10-23 16:43 --- getSize() is mainly a list directory - we already checked this. Though, from your output if have seen you used the directory-name /tmp/DeltaBuckets - Americas/ could you please try the check with /tmp/DeltaBuckets - Americas too (without the trailing slash) Sorry, no further idea. If possible, please send a tcpdump/ethereal capture. If this server is reachable over internet it might also help if you could provide me a temporary login for testings. Thanks! -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug, or are watching the assignee. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[pool] synchronization issues in Pool
Hello, I'm a PhD student in Computer Science at Stanford University, evaluating a static race detection tool I'm developing on open source Java programs. I ran it on the 5 implementations of pools in Apache Commons Pool, and found some bugs. The output of the tool is here: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/softref/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic_keyed/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack_keyed/index.html I will explain one race in detail. Following the [grouped by field] link on the first link above and then the [details] link under the heading Races on field org.apache.commons.pool.BaseObjectPool: boolean closed leads you to: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/R8_trace.html Traversing the [up] links on this page yields at least one pair of paths in the call graph along which a common lock is not held and hence a race can occur if that pair of paths is executed by different threads: PATH 1: GenericHarness:27 org.apache.commons.pool.impl.GenericObjectPool:853 org.apache.commons.pool.BaseObjectPool:77 leading to a read access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:73 PATH 2: GenericHarness:33 org.apache.commons.pool.impl.GenericObjectPool:901 leading to a write access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:62 [GenericHarness is a test harness that my tool automatically generates.] The above race is due to missing synchronization in method returnObject of class GenericObjectPool. In fact, it can cause a null pointer exception: thread 1 calls the returnObject method which executes the assertOpen method and finds the pool to be open. thread 2 calls the close method which sets _factory to null. thread 1 executes the addObjectToPool method which deferences _factory. Many other races are because parts of some methods implementing the pool interfaces (ex. invalidateObject below) that access _factory are not synchronized: public void invalidateObject(Object obj) throws Exception { assertOpen(); try { _factory.destroyObject(obj); } finally { synchronized(this) { _numActive--; notifyAll(); } } } Perhaps, the developer expects the client methods implementing the factory interface to be synchronized. If this is indeed the case, it should perhaps be documented somewhere so that unwitting users don't implement the factory interface without synchronization. Even if users implement the factory interface with synchronization, there is a problem: if one thread executes the invalidateObject method and another executes the close method (which sets _factory to null), then there can be a null pointer exception similar to the scenario outlined above. Most of the races I found are harmful (ex. causing null pointer exceptions) if the close method is called concurrently with some other pool interface method. Perhaps, it is highly unlikely that a client would do that. However, since the pool interface is intended to be thread-safe, I think it's implementations should handle this scenario gracefully. I have summarized below all possible bugs I found by inspecting the above reports generated by my race detection tool. I would be happy if you can confirm/refute these bugs. Thanks! -- Mayur org.apache.commons.pool.impl.GenericObjectPool == The returnObject(Object) and addObject() methods must be synchronized. The synchronization inside the body of the method addObjectToPool is then unnecessary since all callers of this method are synchronized. The entire invalidateObject(Object) method must be synchronized, not just parts of it. The entire borrowObject() method must be synchronized, not just parts of it. Note that there are dereferences of _factory in the unsynchronized portions of this method, so there will be a null pointer dereference if it is called concurrently with the close method. Once the entire borrowObject method is synchronized, you can also move the assertOpen() call at the start of each iteration of the loop in this method to outside the loop. org.apache.commons.pool.impl.StackObjectPool The entire returnObject(Object) method must be synchronized, not just parts of it. The getNumIdle() method must be synchronized. The getNumActive() method must be synchronized. The entire addObject() method must be synchronized, not just parts of it. org.apache.commons.pool.impl.SoftReferenceObjectPool The entire returnObject(Object) method
Re: [pool] synchronization issues in Pool
On Sun, 2005-10-23 at 04:12 -0700, Mayur Naik wrote: Hello, I'm a PhD student in Computer Science at Stanford University, evaluating a static race detection tool I'm developing on open source Java programs. an open source static race detector? if so, then it sounds very cool :) if you have an long term URL for your project then please post it. - robert - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [pool] synchronization issues in Pool
Hi Mayur, that really sounds like a cool tool. You results are also quite impressive. I actually can not comment on them, but would like to know if your tool is available anywhere? If not - and I suppose so - could you also run it on the commons transaction code where any race condition really would be very harmful. I already know of one that has been fixed in CVS, but not in a final release. Thanks in advance Oliver 2005/10/23, Mayur Naik [EMAIL PROTECTED]: Hello, I'm a PhD student in Computer Science at Stanford University, evaluating a static race detection tool I'm developing on open source Java programs. I ran it on the 5 implementations of pools in Apache Commons Pool, and found some bugs. The output of the tool is here: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/softref/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic_keyed/index.html http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/stack_keyed/index.html I will explain one race in detail. Following the [grouped by field] link on the first link above and then the [details] link under the heading Races on field org.apache.commons.pool.BaseObjectPool: boolean closed leads you to: http://suif.stanford.edu/~mhn/commons-pool-1.2/build/classes/PASS1/generic/R8_trace.html Traversing the [up] links on this page yields at least one pair of paths in the call graph along which a common lock is not held and hence a race can occur if that pair of paths is executed by different threads: PATH 1: GenericHarness:27 org.apache.commons.pool.impl.GenericObjectPool:853 org.apache.commons.pool.BaseObjectPool:77 leading to a read access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:73 PATH 2: GenericHarness:33 org.apache.commons.pool.impl.GenericObjectPool:901 leading to a write access of the field 'closed' at org.apache.commons.pool.BaseObjectPool:62 [GenericHarness is a test harness that my tool automatically generates.] The above race is due to missing synchronization in method returnObject of class GenericObjectPool. In fact, it can cause a null pointer exception: thread 1 calls the returnObject method which executes the assertOpen method and finds the pool to be open. thread 2 calls the close method which sets _factory to null. thread 1 executes the addObjectToPool method which deferences _factory. Many other races are because parts of some methods implementing the pool interfaces (ex. invalidateObject below) that access _factory are not synchronized: public void invalidateObject(Object obj) throws Exception { assertOpen(); try { _factory.destroyObject(obj); } finally { synchronized(this) { _numActive--; notifyAll(); } } } Perhaps, the developer expects the client methods implementing the factory interface to be synchronized. If this is indeed the case, it should perhaps be documented somewhere so that unwitting users don't implement the factory interface without synchronization. Even if users implement the factory interface with synchronization, there is a problem: if one thread executes the invalidateObject method and another executes the close method (which sets _factory to null), then there can be a null pointer exception similar to the scenario outlined above. Most of the races I found are harmful (ex. causing null pointer exceptions) if the close method is called concurrently with some other pool interface method. Perhaps, it is highly unlikely that a client would do that. However, since the pool interface is intended to be thread-safe, I think it's implementations should handle this scenario gracefully. I have summarized below all possible bugs I found by inspecting the above reports generated by my race detection tool. I would be happy if you can confirm/refute these bugs. Thanks! -- Mayur org.apache.commons.pool.impl.GenericObjectPool == The returnObject(Object) and addObject() methods must be synchronized. The synchronization inside the body of the method addObjectToPool is then unnecessary since all callers of this method are synchronized. The entire invalidateObject(Object) method must be synchronized, not just parts of it. The entire borrowObject() method must be synchronized, not just parts of it. Note that there are dereferences of _factory in the unsynchronized portions of this method, so there will be a null pointer dereference if it is called concurrently with the close method. Once the entire borrowObject method is synchronized, you can also move the assertOpen() call at the start of each iteration of the loop in this method to
[chain] Please change version number in project.xml
The Commons Chain project.xml file still specifies version 1.0. This means that if you build it locally, Maven will overwrite the official commons-chain-1.0.jar file in your local repository with one containing any changes that have been made since the release. Please change the version number in project.xml, maybe 1.1-dev or 1.0.1-dev would be appropriate. Thanks, Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [pool] synchronization issues in Pool
On Sun, 2005-10-23 at 14:56 +0100, Stephen Colebourne wrote: This looks interesting. I'll leave the pool comments to a pool developer. However, could adding a lot more synchronoization could cause other issues with locking and performance? probably. however, IMHO an object pool really needs to be thread safe. i've taken a quick look and think that perhaps it'd be better to fix any race conditions as the performance price that has to be paid for the design chosen. opinions? are there any pool developers out there with time to pick this up? otherwise, we could probably do with a volunteer to go through and analyse these issues. anyone fancy taking a crack at this? - robert - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327833 - in /jakarta/commons/sandbox/scxml/trunk/src: main/java/org/apache/commons/scxml/ main/java/org/apache/commons/scxml/model/ test/java/org/apache/commons/scxml/
Author: rahul Date: Sun Oct 23 11:45:42 2005 New Revision: 327833 URL: http://svn.apache.org/viewcvs?rev=327833view=rev Log: 1) Bug fix: SCXMLHelper#getAncestorClosure() overzealous to jump upper bounds for self transitions; correct (simplify) samples accordingly 2) Update xmlns in samples Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/SCXMLHelper.java jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/model/SCXML.java jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-01.xml jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-02.xml jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/transitions-01.xml Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/SCXMLHelper.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/SCXMLHelper.java?rev=327833r1=327832r2=327833view=diff == --- jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/SCXMLHelper.java (original) +++ jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/SCXMLHelper.java Sun Oct 23 11:45:42 2005 @@ -84,15 +84,15 @@ Set closure = new HashSet(states.size() * 2); for (Iterator i = states.iterator(); i.hasNext();) { TransitionTarget tt = (TransitionTarget) i.next(); -closure.add(tt); -while ((tt = tt.getParent()) != null) { -if (upperBounds != null upperBounds.contains(tt)) { +while (tt != null) { +if (!closure.add(tt)) { +//tt is already a part of the closure break; } -if (!closure.add(tt)) { -//parent is already a part of the closure +if (upperBounds != null upperBounds.contains(tt)) { break; } +tt = tt.getParent(); } } return closure; Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/model/SCXML.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/model/SCXML.java?rev=327833r1=327832r2=327833view=diff == --- jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/model/SCXML.java (original) +++ jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/model/SCXML.java Sun Oct 23 11:45:42 2005 @@ -39,7 +39,7 @@ /** * The SCXML XMLNS. */ -public static final String XMLNS = http://www.w3.org/2005/01/SCXML;; +public static final String XMLNS = http://www.w3.org/2005/07/SCXML;; /** * The xmlns attribute on the root lt;smxmlgt; element. Modified: jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-01.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-01.xml?rev=327833r1=327832r2=327833view=diff == --- jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-01.xml (original) +++ jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-01.xml Sun Oct 23 11:45:42 2005 @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. -- -scxml xmlns=http://www.w3.org/2005/01/SCXML; +scxml xmlns=http://www.w3.org/2005/07/SCXML; version=1.0 initialstate=off @@ -39,14 +39,14 @@ if cond=${empty cook_time} !-- default setting -- var name=cook_time expr=${5}/ -!-- timer variable -- -var name=timer expr=${0}/ /if !-- again, door_closed should be a part of a global context -- if cond=${empty door_closed} !-- default setting -- var name=door_closed expr=${true}/ /if + !-- timer variable -- + var name=timer expr=${0}/ /onentry transition event=turn_off @@ -79,11 +79,6 @@ target next=cooking/ /transition /state - -onexit - !-- reset timer -- - assign name=timer expr=${0}/ -/onexit /state Modified: jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-02.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/test/java/org/apache/commons/scxml/microwave-02.xml?rev=327833r1=327832r2=327833view=diff == ---
svn commit: r327834 - /jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java
Author: rahul Date: Sun Oct 23 11:51:03 2005 New Revision: 327834 URL: http://svn.apache.org/viewcvs?rev=327834view=rev Log: Bug fix: Histories have no relevance in entry lists. Bugs fixed in r327833 (missed a credit in that message) and this commit were reported by Jaroslav Gergic. Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java Modified: jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java?rev=327834r1=327833r2=327834view=diff == --- jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java (original) +++ jakarta/commons/sandbox/scxml/trunk/src/main/java/org/apache/commons/scxml/semantics/SCXMLSemanticsImpl.java Sun Oct 23 11:51:03 2005 @@ -775,8 +775,12 @@ for (Iterator i = transitions.iterator(); i.hasNext();) { Transition t = (Transition) i.next(); entered.addAll(t.getPath().getDownwardSegment()); +// If target is a History pseudo state, remove from entered list +if (t.getRuntimeTarget() instanceof History) { +entered.remove(t.getRuntimeTarget()); +} } -// Chech whether the computed state config is legal +// Check whether the computed state config is legal targetSet.addAll(residual); residual.clear(); if (!SCXMLHelper.isLegalConfig(targetSet, errorReporter)) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327837 - in /jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow: RewritingTestCase.java SerializationTestCase.java flow/ClassAccessBugFlow.java flow/CounterFlow.j
Author: tcurdt Date: Sun Oct 23 11:57:59 2005 New Revision: 327837 URL: http://svn.apache.org/viewcvs?rev=327837view=rev Log: some more testcases Added: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/ClassAccessBugFlow.java (with props) jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/NoReferenceBugFlow.java (with props) Modified: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/RewritingTestCase.java jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/SerializationTestCase.java jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/CounterFlow.java Modified: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/RewritingTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/RewritingTestCase.java?rev=327837r1=327836r2=327837view=diff == --- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/RewritingTestCase.java (original) +++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/RewritingTestCase.java Sun Oct 23 11:57:59 2005 @@ -1,8 +1,10 @@ package org.apache.commons.javaflow; import org.apache.commons.javaflow.flow.BlackRedFlow; +import org.apache.commons.javaflow.flow.ClassAccessBugFlow; import org.apache.commons.javaflow.flow.CounterFlow; import org.apache.commons.javaflow.flow.NewObjectFlow; +import org.apache.commons.javaflow.flow.NoReferenceBugFlow; import org.apache.commons.javaflow.flow.StackBugFlow; @@ -19,6 +21,18 @@ final Continuation c = Continuation.startWith(r); assertTrue(c == null); } + +public void testNoReferenceBug() throws Exception { +final Runnable r = new NoReferenceBugFlow(); +final Continuation c = Continuation.startWith(r); +assertTrue(c != null); +} + +public void testClassAccessBug() throws Exception { +final Runnable r = new ClassAccessBugFlow(); +final Continuation c = Continuation.startWith(r); +assertTrue(c != null); +} public void testBlackRed() throws Exception { final Runnable r = new BlackRedFlow(); @@ -30,7 +44,7 @@ public void testCounter() throws Exception { final int count = 5; -final Runnable r = new CounterFlow(new Integer(count)); +final Runnable r = new CounterFlow(count); int i = 0; for(Continuation c = Continuation.startWith(r); c != null; c = Continuation.continueWith(c)) { Modified: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/SerializationTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/SerializationTestCase.java?rev=327837r1=327836r2=327837view=diff == --- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/SerializationTestCase.java (original) +++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/SerializationTestCase.java Sun Oct 23 11:57:59 2005 @@ -65,17 +65,21 @@ } public void testSerializableCheck() throws Exception { -final Runnable r1 = new SimpleSerializableFlow(); +final Runnable r1 = new SimpleFlow(); Continuation c1 = Continuation.startWith(r1); -assertTrue(c1.isSerializable()); +assertTrue(c1 != null); +assertTrue(!c1.isSerializable()); final Runnable r2 = new SimpleSerializableFlow(); -Continuation c2 = Continuation.startWith(new Invoker(r2)); +Continuation c2 = Continuation.startWith(r2); +assertTrue(c2 != null); assertTrue(c2.isSerializable()); -final Runnable r3 = new SimpleFlow(); -Continuation c3 = Continuation.startWith(r3); -assertTrue(!c3.isSerializable()); +final Runnable r3 = new SimpleSerializableFlow(); +Continuation c3 = Continuation.startWith(new Invoker(r3)); +assertTrue(c3 != null); +assertTrue(c3.isSerializable()); + } } Added: jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/ClassAccessBugFlow.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/ClassAccessBugFlow.java?rev=327837view=auto == --- jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/ClassAccessBugFlow.java (added) +++ jakarta/commons/sandbox/javaflow/trunk/src/test/org/apache/commons/javaflow/flow/ClassAccessBugFlow.java Sun Oct 23 11:57:59 2005 @@ -0,0 +1,15 @@ +package
Re: [chain] Please change version number in project.xml
On 10/23/05, Wendy Smoak [EMAIL PROTECTED] wrote: The Commons Chain project.xml file still specifies version 1.0. This means that if you build it locally, Maven will overwrite the official commons-chain-1.0.jar file in your local repository with one containing any changes that have been made since the release. Please change the version number in project.xml, maybe 1.1-dev or 1.0.1-dev would be appropriate. snip/ As an aside for whoever picks this up, the Maven preferred version numbers contain SNAPSHOT (rather than dev). -Rahul Thanks, Wendy Smoak - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
svn commit: r327839 - /jakarta/commons/proper/chain/trunk/project.xml
Author: brett Date: Sun Oct 23 12:30:11 2005 New Revision: 327839 URL: http://svn.apache.org/viewcvs?rev=327839view=rev Log: since the tree has changed since 1.0, update the version to avoid confusion building from trunk Modified: jakarta/commons/proper/chain/trunk/project.xml Modified: jakarta/commons/proper/chain/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/chain/trunk/project.xml?rev=327839r1=327838r2=327839view=diff == --- jakarta/commons/proper/chain/trunk/project.xml (original) +++ jakarta/commons/proper/chain/trunk/project.xml Sun Oct 23 12:30:11 2005 @@ -21,7 +21,7 @@ logo/images/chain-logo-white.png/logo - currentVersion1.0/currentVersion + currentVersion1.1-SNAPSHOT/currentVersion inceptionYear2003/inceptionYear shortDescriptionCommons Chain/shortDescription descriptionAn implmentation of the GoF Chain of Responsibility pattern/description - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Bug report for Commons [2005/10/23]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=CriticalMAJ=Major | | | | MIN=Minor NOR=Normal ENH=Enhancement | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | | 6508|Ass|Enh|2002-02-17|[lakta] HttpClient now supports proxyHost and prox| | 6826|Ass|Enh|2002-03-04|[lakta] Need to have xml files validated against D| | 6829|Ass|Enh|2002-03-04|[lakta] Allow easier way of user specified tests | | 7069|Ass|Enh|2002-03-13|[lakta] DTD and DOM Validators| | 7135|Opn|Enh|2002-03-14|[beanutils] Misleading error message when beaninfo| | 7226|Opn|Enh|2002-03-19|[beanutils] Nested Bean Collection| | 7367|New|Nor|2002-03-22|[services] ServiceManager not actually serializabl| | 7465|New|Nor|2002-03-25|[lakta] Need better 'dist' build | | 7981|Ver|Nor|2002-04-11|[codec][PATCH] add 2 new methods for encoding stri| |10319|New|Enh|2002-06-28|[beanutils] Instantiate property if null in form b| |12807|New|Nor|2002-09-19|[lakta][PATCH] Update build.xml to use commons-log| |13390|New|Nor|2002-10-07|[lakta] ResponseHeaderHandler and ResponseHeaderVa| |13426|New|Enh|2002-10-08|[lakta][PATCH] xml-reference.xml responseHeader ad| |13743|Opn|Enh|2002-10-17|[beanutils] Need getPropertyType(Class theClass, S| |14394|Ver|Nor|2002-11-08|[beanutils] Excessive exceptions log under securit| |14471|Inf|Enh|2002-11-12|[validator] validator-rules.xml JavaScript fails w| |14667|Ver|Maj|2002-11-19|[beanutils] PropertyUtils.copyProperties does not | |15451|Opn|Enh|2002-12-17|[beanutils] Multiple mapped properties not possibl| |15519|Ver|Maj|2002-12-19|[beanutils] PropertyUtils.getPropertyType() for ja| |15744|New|Nor|2002-12-31|[scaffold] Scaffold ResultSet used after statement| |16038|Opn|Enh|2003-01-13|[beanutils] LocaleBeanUtils.copyProperties() does | |16394|New|Enh|2003-01-24|[validator] Enhance the IndexedListProperty to han| |16525|Opn|Enh|2003-01-29|[beanutils] BeanUtils.setProperty is over-zealous | |16600|New|Nor|2003-01-30|[lakta] JUnitTestAdapter throws SAXException becau| |16634|New|Enh|2003-01-31|[validator] Change ValidatorUtils.getValueAsString| |16873|New|Enh|2003-02-07|[lakta] Specifying a different latka.properties fi| |17002|New|Enh|2003-02-12|[beanutils] Problem with index property | |17102|New|Enh|2003-02-15|[lakta] Can't embed characters in paramValue | |17306|Opn|Enh|2003-02-22|[validator] Extend field tag with forward attr| |17501|New|Enh|2003-02-27|[beanutils] Add dynamic discovery of mapped proper| |17662|New|Nor|2003-03-05|[cli] Unknown options are ignored instead of throw| |17663|New|Nor|2003-03-05|[beanutils] getArrayProperty does not use ConvertU| |17682|New|Nor|2003-03-05|[cli] HelpFormatter does not wrap lines correctly | |17769|New|Blk|2003-03-07|[scaffold] pre-mature closing of Statement and Pre| |17957|New|Cri|2003-03-13|[launcher] - on OutOfMemoryError no message | |18087|New|Enh|2003-03-18|[beanutils] Add BeanFactory class for dynamic fact| |18773|New|Enh|2003-04-07|[reflect] Can add a method cache in MethodUtils | |18811|New|Min|2003-04-08|[beanutils] Misleading error message in Converting| |18942|New|Enh|2003-04-11|[beanutils] Add t/f to BooleanConverter | |19781|New|Nor|2003-05-08|[beanutils] PropertyUtils.copyProperties throws ex| |19857|New|Enh|2003-05-12|[beanutils] Methods ConvertUtilsBean.convert could| |20015|Ass|Nor|2003-05-18|[lang] Make Entities public and unit test | |20027|New|Enh|2003-05-19|[beanutils] ConvertUtils enhancements | |20057|New|Nor|2003-05-20|[lakta] Difficulty to download sample Latka test| |20067|New|Nor|2003-05-20|[lakta] sample Latka test suite SUITE FAILED - c| |20449|New|Enh|2003-06-03|[validator] Define flag for validating current pag| |20520|New|Enh|2003-06-05|[beanutils] MethodUtils: Need easy way to invoke s| |20523|New|Enh|2003-06-05|[fileupload] Model FileUpload model to mimic javax| |20549|New|Enh|2003-06-06|[beanutils] Handling of exceptions thrown during B| |20686|New|Enh|2003-06-11|[beanutils] Register converters by both target cla| |20836|New|Enh|2003-06-17|[beanutils] Localizing beanutils |
Re: [pool] synchronization issues in Pool
On 23/10/05, robert burrell donkin [EMAIL PROTECTED] wrote: On Sun, 2005-10-23 at 14:56 +0100, Stephen Colebourne wrote: This looks interesting. I'll leave the pool comments to a pool developer. However, could adding a lot more synchronoization could cause other issues with locking and performance? probably. however, IMHO an object pool really needs to be thread safe. i've taken a quick look and think that perhaps it'd be better to fix any race conditions as the performance price that has to be paid for the design chosen. opinions? As Knuth put it ... premature optimization is the root of all evil. And Jackson: Rule 1. Don't do it Rule 2. (for experts only). Don't do it yet - that is, not until you have a perfectly clear and unoptimized solution. [From Bloch, Effective Java, Item 37] It's not only race conditions that might need to be fixed - Synchronization is required for reliable communication between threads as well as for mutual exclusion. [Ibid, Item 48] He says that modern JVMs have much lower overheads for synchronisation than the early releases, especially if the synchronisation is uncontended, as would be the case for single-threaded access. So I'd suggest doing enough synch to ensure that the user can use all the methods individually without needing to synchronise. Iterators would likely still need external synch (except when running single-threaded). are there any pool developers out there with time to pick this up? otherwise, we could probably do with a volunteer to go through and analyse these issues. anyone fancy taking a crack at this? - robert - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[EMAIL PROTECTED]: Project commons-jelly-tags-xml (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-tags-xml has an issue affecting its community integration. This issue affects 11 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-define : Commons Jelly - commons-jelly-tags-html : Commons Jelly - commons-jelly-tags-http : Commons Jelly - commons-jelly-tags-jetty : Commons Jelly - commons-jelly-tags-jface : Commons Jelly - commons-jelly-tags-jsl : Commons Jelly - commons-jelly-tags-swing : Commons Jelly - commons-jelly-tags-xml : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - maven : Project Management Tools - maven-bootstrap : Project Management Tools Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-jelly-tags-xml-23102005.jar] identifier set to project name -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/gump_work/build_commons-jelly_commons-jelly-tags-xml.html Work Name: build_commons-jelly_commons-jelly-tags-xml (Type: Build) Work ended in a state of : Failed Elapsed: 43 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetSingleNodeAndAsString(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] at org.apache.commons.jelly.tags.xml.SetTag.doTag(SetTag.java:86) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetStringLists(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] at
[EMAIL PROTECTED]: Project commons-jelly-tags-xml (in module commons-jelly) failed
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 [EMAIL PROTECTED] Project commons-jelly-tags-xml has an issue affecting its community integration. This issue affects 11 projects. The current state of this project is 'Failed', with reason 'Build Failed'. For reference only, the following projects are affected by this: - commons-jelly-tags-define : Commons Jelly - commons-jelly-tags-html : Commons Jelly - commons-jelly-tags-http : Commons Jelly - commons-jelly-tags-jetty : Commons Jelly - commons-jelly-tags-jface : Commons Jelly - commons-jelly-tags-jsl : Commons Jelly - commons-jelly-tags-swing : Commons Jelly - commons-jelly-tags-xml : Commons Jelly - commons-jelly-tags-xmlunit : Commons Jelly - maven : Project Management Tools - maven-bootstrap : Project Management Tools Full details are available at: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/index.html That said, some information snippets are provided here. The following annotations (debug/informational/warning/error messages) were provided: -DEBUG- Sole output [commons-jelly-tags-xml-23102005.jar] identifier set to project name -DEBUG- Dependency on xml-xerces exists, no need to add for property maven.jar.xerces. -DEBUG- (Gump generated) Maven Properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/build.properties -INFO- Failed with reason build failed -DEBUG- Maven POM in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.xml -DEBUG- Maven project properties in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/project.properties -INFO- Project Reports in: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-reports -INFO- Failed to extract fallback artifacts from Gump Repository The following work was performed: http://vmgump.apache.org/gump/public/commons-jelly/commons-jelly-tags-xml/gump_work/build_commons-jelly_commons-jelly-tags-xml.html Work Name: build_commons-jelly_commons-jelly-tags-xml (Type: Build) Work ended in a state of : Failed Elapsed: 43 secs Command Line: maven --offline jar [Working Directory: /usr/local/gump/public/workspace/commons-jelly/jelly-tags/xml] CLASSPATH: /opt/jdk1.4/lib/tools.jar:/usr/local/gump/public/workspace/jakarta-commons/beanutils/dist/commons-beanutils-core.jar:/usr/local/gump/public/workspace/jakarta-commons/collections/build/commons-collections-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/target/commons-jelly-23102005.jar:/usr/local/gump/public/workspace/commons-jelly/jelly-tags/junit/target/commons-jelly-tags-junit-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/jexl/dist/commons-jexl-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-23102005.jar:/usr/local/gump/public/workspace/jakarta-commons/logging/dist/commons-logging-api-23102005.jar:/usr/local/gump/public/workspace/dom4j/build/dom4j.jar:/usr/local/gump/packages/jaxen-1.1-beta-6/jaxen-1.1-beta-6.jar - [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetSingleNodeAndAsString(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:294:81: x:set You must define an attribute called 'select' for this tag. [junit] at org.apache.commons.jelly.tags.xml.SetTag.doTag(SetTag.java:86) [junit] at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:262) [junit] at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95) [junit] at org.apache.commons.jelly.tags.junit.CaseTag$1.runTest(CaseTag.java:59) [junit] [junit] [junit] Testcase: testSetStringLists(org.apache.commons.jelly.tags.junit.CaseTag$1): Caused an ERROR [junit] file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] org.apache.commons.jelly.MissingAttributeException: file:/x1/gump/public/workspace/commons-jelly/jelly-tags/xml/target/test-classes/org/apache/commons/jelly/tags/xml/suite.jelly:339:82: x:set You must define an attribute called 'select' for this tag. [junit] at
DO NOT REPLY [Bug 32360] - [jxpath] Default Namespace not handled correctly
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://issues.apache.org/bugzilla/show_bug.cgi?id=32360. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE. http://issues.apache.org/bugzilla/show_bug.cgi?id=32360 --- Additional Comments From [EMAIL PROTECTED] 2005-10-24 04:53 --- Sorry for my previous comment. I found an interesting article: http://www.xml.com/pub/a/2004/02/25/qanda.html Hence, if this works in jxpat as explained about, then we can close this bug. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are the assignee for the bug, or are watching the assignee. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]