[GUMP@vmgump]: Project commons-configuration-test (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-configuration-test has an issue affecting its community 
integration.
This issue affects 1 projects,
 and has been outstanding for 43 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-configuration-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-configuration-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -WARNING- Overriding Maven settings: 
[/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml]
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: 
/srv/gump/public/workspace/apache-commons/configuration/pom.xml
 -INFO- Project Reports in: 
/srv/gump/public/workspace/apache-commons/configuration/target/surefire-reports



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-configuration-test/gump_work/build_apache-commons_commons-configuration-test.html
Work Name: build_apache-commons_commons-configuration-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 1 min 45 secs
Command Line: /opt/maven2/bin/mvn --batch-mode --settings 
/srv/gump/public/workspace/apache-commons/configuration/gump_mvn_settings.xml 
test 
[Working Directory: /srv/gump/public/workspace/apache-commons/configuration]
M2_HOME: /opt/maven2
-
Running org.apache.commons.configuration.TestHierarchicalConfigurationXMLReader
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
Running org.apache.commons.configuration.TestNullCompositeConfiguration
Tests run: 23, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.178 sec
Running org.apache.commons.configuration.interpol.TestConfigurationInterpolator
Tests run: 22, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.03 sec
Running org.apache.commons.configuration.interpol.TestEnvironmentLookup
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec
Running org.apache.commons.configuration.interpol.TestExprLookup
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.029 sec
Running org.apache.commons.configuration.interpol.TestConstantLookup
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 sec
Running org.apache.commons.configuration.TestPropertiesConfigurationLayout
Tests run: 38, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.055 sec
Running org.apache.commons.configuration.TestConfigurationConverter
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 sec
Running org.apache.commons.configuration.TestFileConfiguration
Tests run: 31, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.047 sec
Running org.apache.commons.configuration.TestPatternSubtreeConfiguration
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 sec
Running org.apache.commons.configuration.TestPropertyConverter
Tests run: 28, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 sec
Running org.apache.commons.configuration.TestConfigurationMap
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec
Running org.apache.commons.configuration.reloading.TestManagedReloadingStrategy
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 sec
Running 
org.apache.commons.configuration.reloading.TestVFSFileChangedReloadingStrategy
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.013 sec
Running 
org.apache.commons.configuration.reloading.TestFileChangedReloadingStrategy
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.966 sec

Results :

Failed tests:   
testValidation2(org.apache.commons.configuration.TestVFSConfigurationBuilder): 
The test key was not located

Tests run: 1593, Failures: 1, Errors: 0, Skipped: 0

[INFO] 
[ERROR] BUILD FAILURE
[INFO] 
[INFO] There are test failures.

Please refer to 
/srv/gump/public/workspace/apache-commons/configuration/target/surefire-reports 
for the individual test results.
[INFO] 
[INFO] For more information, run Maven with the -e switch
[INFO] 
[INFO] Total time: 1 minute 43 seconds
[INFO] Finished at: Wed Mar 14 06:21:20 UTC 2012
[INFO] Final 

[GUMP@vmgump]: Project commons-proxy-test (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-proxy-test has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 30 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-proxy-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -WARNING- Overriding Maven settings: 
[/srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml]
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: /srv/gump/public/workspace/apache-commons/proxy/pom.xml
 -INFO- Project Reports in: 
/srv/gump/public/workspace/apache-commons/proxy/target/surefire-reports



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/gump_work/build_apache-commons_commons-proxy-test.html
Work Name: build_apache-commons_commons-proxy-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 11 secs
Command Line: /opt/maven2/bin/mvn --batch-mode --settings 
/srv/gump/public/workspace/apache-commons/proxy/gump_mvn_settings.xml test 
[Working Directory: /srv/gump/public/workspace/apache-commons/proxy]
M2_HOME: /opt/maven2
-
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.commons.proxy.factory.util.TestMethodSignature
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running org.apache.commons.proxy.provider.TestConstantProvider
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.commons.proxy.interceptor.TestFilteredInterceptor
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec
Running org.apache.commons.proxy.interceptor.filter.TestPatternFilter
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.commons.proxy.interceptor.TestSerializingInterceptor
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 sec
Running org.apache.commons.proxy.interceptor.TestInterceptorChain
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
Running org.apache.commons.proxy.invoker.TestNullInvoker
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 sec
Running org.apache.commons.proxy.provider.remoting.TestBurlapProvider
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec
Running org.apache.commons.proxy.exception.TestDelegateProviderException
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running org.apache.commons.proxy.invoker.TestChainInvoker
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 sec
Running org.apache.commons.proxy.factory.javassist.TestJavassistProxyFactory
Tests run: 37, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.192 sec
Running org.apache.commons.proxy.exception.TestProxyFactoryException
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec
Running org.apache.commons.proxy.interceptor.filter.TestReturnTypeFilter
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running org.apache.commons.proxy.provider.TestBeanProvider
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec

Results :

Tests in error: 
  testInvalidHandlerName(org.apache.commons.proxy.invoker.TestXmlRpcInvoker)

Tests run: 179, Failures: 0, Errors: 1, Skipped: 0

[INFO] 
[ERROR] BUILD FAILURE
[INFO] 
[INFO] There are test failures.

Please refer to 
/srv/gump/public/workspace/apache-commons/proxy/target/surefire-reports for the 
individual test results.
[INFO] 
[INFO] For more information, run Maven with the -e switch
[INFO] 
[INFO] Total time: 10 seconds
[INFO] Finished at: Wed Mar 14 06:23:12 UTC 2012
[INFO] Final Memory: 24M/58M
[INFO] 
-

To subscribe to this information via syndicated feeds:
- RSS: 
http://vmgump.apache.org/gump/public/apache-commons/commons-proxy-test/rss.xml
- Atom: 

[GUMP@vmgump]: Project commons-id (in module commons-sandbox) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-id has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 4 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-id :  Commons Identifier Package


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

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole jar output [commons-id-14032012.jar] identifier set to project 
name
 -DEBUG- (Apache Gump generated) Apache Maven Properties in: 
/srv/gump/public/workspace/commons-sandbox/id/build.properties
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: /srv/gump/public/workspace/commons-sandbox/id/project.xml
 -DEBUG- Maven project properties in: 
/srv/gump/public/workspace/commons-sandbox/id/project.properties
 -INFO- Failed to extract fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/commons-sandbox/commons-id/gump_work/build_commons-sandbox_commons-id.html
Work Name: build_commons-sandbox_commons-id (Type: Build)
Work ended in a state of : Failed
Elapsed: 24 secs
Command Line: maven --offline jar 
[Working Directory: /srv/gump/public/workspace/commons-sandbox/id]
-
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.385 sec
[junit] Running org.apache.commons.id.uuid.state.NodeTest
[junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.335 sec
[junit] Running 
org.apache.commons.id.uuid.state.ReadOnlyResourceStateImplTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.45 sec
[junit] Running org.apache.commons.id.uuid.state.ReadWriteFileStateImplTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.453 sec
[junit] Running org.apache.commons.id.uuid.state.StateHelperTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 0.327 sec
[junit] Running org.apache.commons.id.uuid.state.InMemoryStateImplTest
[junit] Tests run: 5, Failures: 1, Errors: 0, Time elapsed: 0.354 sec
[junit] [ERROR] TEST org.apache.commons.id.uuid.state.InMemoryStateImplTest 
FAILED
[junit] Running org.apache.commons.id.uuid.UUIDTest
[junit] Tests run: 17, Failures: 0, Errors: 0, Time elapsed: 0.272 sec
[junit] Running org.apache.commons.id.uuid.NodeManagerImplTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.442 sec
[junit] Running org.apache.commons.id.uuid.task.UUIDTaskTest
[junit] Tests run: 5, Failures: 0, Errors: 0, Time elapsed: 0.543 sec
[junit] Running org.apache.commons.id.uuid.clock.ThreadClockImplTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.259 sec
[junit] Running org.apache.commons.id.uuid.clock.SystemClockImplTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0.26 sec
[junit] Running org.apache.commons.id.serial.AlphanumericGeneratorTest
[junit] Tests run: 9, Failures: 0, Errors: 0, Time elapsed: 0.275 sec
[junit] Running org.apache.commons.id.serial.LongGeneratorTest
[junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.281 sec
[junit] Running org.apache.commons.id.serial.PrefixedNumericGeneratorTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.284 sec
[junit] Running org.apache.commons.id.serial.NumericGeneratorTest
[junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.266 sec
[junit] Running 
org.apache.commons.id.serial.PrefixedLeftPaddedNumericGeneratorTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.263 sec
[junit] Running 
org.apache.commons.id.serial.PrefixedAlphanumericGeneratorTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.262 sec
[junit] Running 
org.apache.commons.id.serial.TimeBasedAlphanumericIdentifierGeneratorTest
[junit] Tests run: 12, Failures: 0, Errors: 0, Time elapsed: 0.742 sec
[junit] Running org.apache.commons.id.CompositeIdentifierGeneratorTest
[junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 0.268 sec
[junit] Running org.apache.commons.id.ConstantIdentifierGeneratorTest
[junit] Tests run: 6, Failures: 0, Errors: 0, Time elapsed: 0.257 sec

BUILD FAILED
File.. /home/gump/.maven/cache/maven-test-plugin-1.6.2/plugin.jelly
Element... fail
Line.. 181
Column 54
There were test failures.
Total time: 24 seconds
Finished at: Wed Mar 14 06:41:04 UTC 2012

-

To subscribe to this information via 

[GUMP@vmgump]: Project commons-vfs2-test (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-vfs2-test has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 30 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-vfs2-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-vfs2-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -WARNING- Overriding Maven settings: 
[/srv/gump/public/workspace/apache-commons/vfs/gump_mvn_settings.xml]
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/apache-commons/vfs/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: /srv/gump/public/workspace/apache-commons/vfs/pom.xml
 -INFO- Project Reports in: 
/srv/gump/public/workspace/apache-commons/vfs/core/target/surefire-reports



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-vfs2-test/gump_work/build_apache-commons_commons-vfs2-test.html
Work Name: build_apache-commons_commons-vfs2-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 2 mins 7 secs
Command Line: /opt/maven2/bin/mvn --batch-mode --settings 
/srv/gump/public/workspace/apache-commons/vfs/gump_mvn_settings.xml package 
[Working Directory: /srv/gump/public/workspace/apache-commons/vfs]
M2_HOME: /opt/maven2
-
Tests in error: 
  
testDefaultInstance(org.apache.commons.vfs2.test.FileSystemManagerFactoryTestCase):
 Could not create a file system manager of class 
org.apache.commons.vfs2.impl.StandardFileSystemManager.
  org.apache.commons.vfs2.PatternFileSelectorTest: Could not create a file 
system manager of class 
org.apache.commons.vfs2.impl.StandardFileSystemManager.
  org.apache.commons.vfs2.FileTypeSelectorTest: Could not create a file system 
manager of class org.apache.commons.vfs2.impl.StandardFileSystemManager.
  org.apache.commons.vfs2.FileIteratorTest: Could not create a file system 
manager of class org.apache.commons.vfs2.impl.StandardFileSystemManager.
  
junit.framework.TestSuite@c75e4fc(org.apache.commons.vfs2.test.CacheTestSuite): 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@7e78fc6(org.apache.commons.vfs2.test.CacheTestSuite): 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
testDelegatingBad(org.apache.commons.vfs2.util.DelegatingFileSystemOptionsBuilderTest):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
testConfiguration(org.apache.commons.vfs2.util.DelegatingFileSystemOptionsBuilderTest):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
testDelegatingGood(org.apache.commons.vfs2.util.DelegatingFileSystemOptionsBuilderTest):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@379e8f17(org.apache.commons.vfs2.test.ProviderTestSuite):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@39385660(org.apache.commons.vfs2.test.ProviderTestSuite):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@44a613f8(org.apache.commons.vfs2.test.ProviderTestSuite):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@40589e56(org.apache.commons.vfs2.test.ProviderTestSuite):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@6c69d02b(org.apache.commons.vfs2.provider.ftp.test.FtpProviderTestCase$1):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  
junit.framework.TestSuite@7c0b6548(org.apache.commons.vfs2.test.ProviderTestSuite):
 
org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
  org.apache.commons.vfs2.provider.test.FileObjectSortTestCase: Could not 
create a file system manager of class 
org.apache.commons.vfs2.impl.StandardFileSystemManager.
  

Re: [csv] Performance comparison

2012-03-14 Thread Emmanuel Bourg
After more experiments I'm less enthusiastic about providing an 
optimized BufferedReader. The result of the performance test is 
significantly different if the test is run alone or after all the other 
unit tests (about 30% slower). When all the tests are executed, the 
removal of the synchronized blocks in BufferedReader has no visible 
effect (maybe less than 1%), and the Harmony implementation becomes slower.


Emmanuel Bourg


Le 13/03/2012 10:20, Emmanuel Bourg a écrit :

Le 13/03/2012 02:47, Niall Pemberton a écrit :


IMO performance should be taken out of the equation by using the
Readable interface[1]. That way the users can use whatever
implementation suits them (for example using an underlying buffered
InputStream) to change/improve performance.


I you mean that the performance of BufferedReader should be taken out of
the equation then I agree. All CSV parsers should be compared with the
same input source, otherwise the comparison isn't fair.

Using Readable would be really nice, but that's very low level. We would
have to build line reading and mark/reset on top of that, that's almost
equivalent to reimplementing BufferedReader.

If [io] could provide a BufferedReader implementation that:
- takes a Readable in the constructor
- does not synchronize reads
- recognizes unicode line separators (and the classic ones)

then I buy it right away!

Emmanuel Bourg






smime.p7s
Description: S/MIME Cryptographic Signature


Re: [ALL] Commons Parent reports

2012-03-14 Thread Gilles Sadowski
On Tue, Mar 13, 2012 at 01:52:32PM -0400, Gary Gregory wrote:
 On Mar 13, 2012, at 12:40, Gilles Sadowski gil...@harfang.homelinux.org 
 wrote:
 
 
  [...]
 
  The tools are there, but you have to tell people that they _must_ use 
  them.
 
  Commons has already enough rules and process. As long as the releases
  are have clean code I wouldn't be too anal about the commits in
  between.
 
  I think that the main disagreement is here. Source code must be a clear 
  read
  for the _developers_. To put it bluntly, I don't care that the releases 
  have
  cleanly formatted code, as almost nobody is going to read those packaged
  sources!
 
 Au contraire, most users will /only/ look at the source jar because
 that is what you use in the debugger!

Here IMHO you are talking about _developers_.
By users I meant people who include the classes JAR in their classpath.
They will at most look at the API docs.


Gilles

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



Re: [ALL] Commons Parent reports

2012-03-14 Thread Gilles Sadowski
On Tue, Mar 13, 2012 at 01:59:25PM -0400, Gary Gregory wrote:
 On Mar 13, 2012, at 12:40, Gilles Sadowski gil...@harfang.homelinux.org 
 wrote:
 
  Hi.
 
 
  [...]
 
  The tools are there, but you have to tell people that they _must_ use 
  them.
 
  Commons has already enough rules and process. As long as the releases
  are have clean code I wouldn't be too anal about the commits in
  between.
 
  I think that the main disagreement is here. Source code must be a clear 
  read
  for the _developers_. To put it bluntly, I don't care that the releases 
  have
  cleanly formatted code, as almost nobody is going to read those packaged
  sources!
 
 And another thing: the formatting /is/ important in released sources
 because, again, this is what most users will see in their debuggers.
 Have you seen some of the JRE sources? Some files are a mess, others
 have blank lines in the middle of headers. Others look like they were
 entered by a prisoner blinded in the noon day sun after spending a
 month in the hole with bread and water ration and then given a stick
 of butter for lunch.

It sounds like I were arguing against well formatted sources. My point was
that sources must _always_ be well formatted, and not _only_ at release.


Gilles

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



Re: [ALL] Commons Parent reports

2012-03-14 Thread Gilles Sadowski
On Tue, Mar 13, 2012 at 06:37:21PM +0100, Emmanuel Bourg wrote:
 Le 13/03/2012 17:52, Gilles Sadowski a écrit :
 
 What about the Useful for the developer category?
 
 They are useful at release time only, then they become quickly
 outdated as the code evolves after the release.
 
 If I want to help Commons Math, I'll checkout the code and build the
 reports. Then I might inspect the Findbugs report and see if there
 is something to fix. But I'll never go to the website and browse
 months old reports.
 
 The point is, these reports are valuable if they are updated
 continuously, but that's not possible to do that, because if the
 documentation is updated, the site will expose information that is
 not applicable to the latest release, but to the next one.
 
 What I'd like to see is a more user oriented site, something clear
 and simple, and a developer oriented site with all the reports you
 want, automatically updated everyday.

+1
[All my comments were about the developer site (by which I mean the HTML
reports generated by mvn site) and not about the official web site.]


Gilles

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



Re: [csv] Performance comparison

2012-03-14 Thread Christian Grobmeier
On Tue, Mar 13, 2012 at 4:33 AM, Ralph Goers ralph.go...@dslextreme.com wrote:
 I don't think we should be trying to recode JDK classes.

 If the implementations suck, why not?

+1


-- 
http://www.grobmeier.de
https://www.timeandbill.de

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



Re: svn commit: r1300516 - in /commons/proper/csv/trunk/src: main/java/org/apache/commons/csv/UnicodeUnescapeReader.java test/java/org/apache/commons/csv/CharBufferTest.java test/java/org/apache/commo

2012-03-14 Thread sebb
On 14 March 2012 12:01,  ebo...@apache.org wrote:
 Author: ebourg
 Date: Wed Mar 14 12:01:47 2012
 New Revision: 1300516

 URL: http://svn.apache.org/viewvc?rev=1300516view=rev
 Log:
 Improved test coverage

 Modified:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java
    
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
    
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java

 Modified: 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java?rev=1300516r1=1300515r2=1300516view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java
  (original)
 +++ 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/UnicodeUnescapeReader.java
  Wed Mar 14 12:01:47 2012
 @@ -50,12 +50,7 @@ class UnicodeUnescapeReader extends Read

             if (c == '\\') {
                 int l = reader.read(sequence);
 -                if (l == sequence.length
 -                         'u' == sequence[0]
 -                         isHexadecimal(sequence[1])
 -                         isHexadecimal(sequence[2])
 -                         isHexadecimal(sequence[3])
 -                         isHexadecimal(sequence[4])) {
 +                if (l == sequence.length  isUnicodeSequence(sequence)) {
                     // unicode escape found
                     c = Integer.parseInt(new String(sequence, 1, 4), 16);

 @@ -71,7 +66,15 @@ class UnicodeUnescapeReader extends Read

         return count;
     }
 -
 +
 +    private boolean isUnicodeSequence(char[] sequence) {
 +        return 'u' == sequence[0]
 +                 isHexadecimal(sequence[1])
 +                 isHexadecimal(sequence[2])
 +                 isHexadecimal(sequence[3])
 +                 isHexadecimal(sequence[4]);
 +    }

What if the sequence is not exactly 5 characters long?

 +
     private boolean isHexadecimal(char c) {
         return ('0' = c  c = '9') || ('a' = c  c = 'f') || ('A' = c 
  c = 'F');
     }

 Modified: 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java?rev=1300516r1=1300515r2=1300516view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
  (original)
 +++ 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
  Wed Mar 14 12:01:47 2012
 @@ -164,4 +164,16 @@ public class CharBufferTest extends Test
         buffer.ensureCapacity(8);
         assertTrue(buffer.capacity() = 8);
     }
 +
 +    public void testTrim() throws Exception {
 +        CharBuffer buffer = new CharBuffer();
 +        buffer.append(          );
 +        buffer.trimTrailingWhitespace();
 +        assertEquals(0, buffer.length());
 +
 +        buffer = new CharBuffer();
 +        buffer.append(Hello World!    );
 +        buffer.trimTrailingWhitespace();
 +        assertEquals(Hello World!, buffer.toString());
 +    }
  }

 Modified: 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java?rev=1300516r1=1300515r2=1300516view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java
  (original)
 +++ 
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/ExtendedBufferedReaderTest.java
  Wed Mar 14 12:01:47 2012
 @@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 +
  package org.apache.commons.csv;

  import java.io.StringReader;
 @@ -21,15 +22,19 @@ import java.util.Arrays;

  import junit.framework.TestCase;

 -/**
 - * ExtendedBufferedReaderTest
 - */
  public class ExtendedBufferedReaderTest extends TestCase {

 -    public void testReadLookahead1() throws Exception {
 +    public void testEmptyInput() throws Exception {
 +        ExtendedBufferedReader br = getBufferedReader();
 +        assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.read());
 +        assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.lookAhead());
 +        assertEquals(ExtendedBufferedReader.END_OF_STREAM, br.readAgain());
 +        assertNull(br.readLine());
 +        assertEquals(0, br.read(new char[10], 0, 0));
 +    }

 -        assertEquals(ExtendedBufferedReader.END_OF_STREAM, 
 

Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Gary Gregory
On Wed, Mar 14, 2012 at 9:33 AM, sebb seb...@gmail.com wrote:

 I noticed that some of the CSV methods uses int l (ell).
 This is unfortunately very similar to 1 (one) in many fonts.

 ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
 both do this.

 Now that would perhaps be a good candidate for a CheckStyle report ?!


You cannot compile a variable name that starts with a number, so that's not
an issue (unless you do not know this.)

IMO, the rule should be that you should not start a local var or param name
with a upper case letter.

Unfortunately, highlighting upper-i vs lower-L might be interesting for one
letter names but the problem still exists for normal names. Did I write
normal with a lower-L or an upper-i? This might get siLLy quick!

Gary

Gary


 P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
 case you cannot tell.

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




-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
JUnit in Action, 2nd Ed: http://goog_1249600977http://bit.ly/ECvg0
Spring Batch in Action: http://s.apache.org/HOqhttp://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory


Re: svn commit: r1300516 - in /commons/proper/csv/trunk/src: main/java/org/apache/commons/csv/UnicodeUnescapeReader.java test/java/org/apache/commons/csv/CharBufferTest.java test/java/org/apache/commo

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 13:45, sebb a écrit :


What if the sequence is not exactly 5 characters long?


Nothing because it never happens :)


Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread sebb
On 14 March 2012 14:00, Gary Gregory garydgreg...@gmail.com wrote:
 On Wed, Mar 14, 2012 at 9:33 AM, sebb seb...@gmail.com wrote:

 I noticed that some of the CSV methods uses int l (ell).
 This is unfortunately very similar to 1 (one) in many fonts.

 ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
 both do this.

 Now that would perhaps be a good candidate for a CheckStyle report ?!


 You cannot compile a variable name that starts with a number, so that's not
 an issue (unless you do not know this.)

 IMO, the rule should be that you should not start a local var or param name
 with a upper case letter.

 Unfortunately, highlighting upper-i vs lower-L might be interesting for one
 letter names but the problem still exists for normal names. Did I write
 normal with a lower-L or an upper-i? This might get siLLy quick!

I see I did not provide enough context.
The problem is not the variable declaration, but the variable usage.

If one cannot easily distinguish l (ell) and 1 (one) then it makes it
very hard to follow the code, and easy for mistakes to creep in.
In the Eclipse editor (which uses Courier by default) the two have
identical glyphs (?) as far as I can tell.

 Gary

 Gary


 P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
 case you cannot tell.

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




 --
 E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
 JUnit in Action, 2nd Ed: http://goog_1249600977http://bit.ly/ECvg0
 Spring Batch in Action: http://s.apache.org/HOqhttp://bit.ly/bqpbCK
 Blog: http://garygregory.wordpress.com
 Home: http://garygregory.com/
 Tweet! http://twitter.com/GaryGregory

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



Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Gary Gregory
On Wed, Mar 14, 2012 at 10:27 AM, sebb seb...@gmail.com wrote:

 On 14 March 2012 14:00, Gary Gregory garydgreg...@gmail.com wrote:
  On Wed, Mar 14, 2012 at 9:33 AM, sebb seb...@gmail.com wrote:
 
  I noticed that some of the CSV methods uses int l (ell).
  This is unfortunately very similar to 1 (one) in many fonts.
 
  ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
  both do this.
 
  Now that would perhaps be a good candidate for a CheckStyle report ?!
 
 
  You cannot compile a variable name that starts with a number, so that's
 not
  an issue (unless you do not know this.)
 
  IMO, the rule should be that you should not start a local var or param
 name
  with a upper case letter.
 
  Unfortunately, highlighting upper-i vs lower-L might be interesting for
 one
  letter names but the problem still exists for normal names. Did I write
  normal with a lower-L or an upper-i? This might get siLLy quick!

 I see I did not provide enough context.
 The problem is not the variable declaration, but the variable usage.

 If one cannot easily distinguish l (ell) and 1 (one) then it makes it
 very hard to follow the code, and easy for mistakes to creep in.
 In the Eclipse editor (which uses Courier by default) the two have
 identical glyphs (?) as far as I can tell.


Right, that makes sense. I don't use Courier in Eclipse. Even in
non-Courier upper-i and lower-L is a problem.

A checkstyle would help then.

Gary



  Gary
 
  Gary
 
 
  P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
  case you cannot tell.
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
  For additional commands, e-mail: dev-h...@commons.apache.org
 
 
 
 
  --
  E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
  JUnit in Action, 2nd Ed: http://goog_1249600977http://bit.ly/ECvg0
  Spring Batch in Action: http://s.apache.org/HOqhttp://bit.ly/bqpbCK
  Blog: http://garygregory.wordpress.com
  Home: http://garygregory.com/
  Tweet! http://twitter.com/GaryGregory

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




-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
JUnit in Action, 2nd Ed: http://goog_1249600977http://bit.ly/ECvg0
Spring Batch in Action: http://s.apache.org/HOqhttp://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory


RE: [ALL] Commons Parent reports

2012-03-14 Thread Honton, Charles
As a user of commons libraries, I look at several reports.  I'll consult 
Javadoc first.  In the case the javadoc is silent about behavior, I look at 
JXR.  When I am debugging my code's interaction with the commons library, I 
want to have the sources available to my IDE, so that I can step through the 
commons library.

chas

-Original Message-
From: Gilles Sadowski [mailto:gil...@harfang.homelinux.org] 
Sent: Wednesday, March 14, 2012 1:51 AM
To: dev@commons.apache.org
Subject: Re: [ALL] Commons Parent reports

On Tue, Mar 13, 2012 at 01:52:32PM -0400, Gary Gregory wrote:
 On Mar 13, 2012, at 12:40, Gilles Sadowski gil...@harfang.homelinux.org 
 wrote:
 
 
  [...]
 
  The tools are there, but you have to tell people that they _must_ use 
  them.
 
  Commons has already enough rules and process. As long as the releases
  are have clean code I wouldn't be too anal about the commits in
  between.
 
  I think that the main disagreement is here. Source code must be a clear 
  read
  for the _developers_. To put it bluntly, I don't care that the releases 
  have
  cleanly formatted code, as almost nobody is going to read those packaged
  sources!
 
 Au contraire, most users will /only/ look at the source jar because
 that is what you use in the debugger!

Here IMHO you are talking about _developers_.
By users I meant people who include the classes JAR in their classpath.
They will at most look at the API docs.


Gilles

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


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



RE: [ALL] Commons Parent reports

2012-03-14 Thread Honton, Charles
Why should the developer site be any different than the release site?

-Original Message-
From: Gilles Sadowski [mailto:gil...@harfang.homelinux.org] 
Sent: Wednesday, March 14, 2012 2:18 AM
To: dev@commons.apache.org
Subject: Re: [ALL] Commons Parent reports

On Tue, Mar 13, 2012 at 06:37:21PM +0100, Emmanuel Bourg wrote:
 Le 13/03/2012 17:52, Gilles Sadowski a écrit :
 
 What about the Useful for the developer category?
 
 They are useful at release time only, then they become quickly
 outdated as the code evolves after the release.
 
 If I want to help Commons Math, I'll checkout the code and build the
 reports. Then I might inspect the Findbugs report and see if there
 is something to fix. But I'll never go to the website and browse
 months old reports.
 
 The point is, these reports are valuable if they are updated
 continuously, but that's not possible to do that, because if the
 documentation is updated, the site will expose information that is
 not applicable to the latest release, but to the next one.
 
 What I'd like to see is a more user oriented site, something clear
 and simple, and a developer oriented site with all the reports you
 want, automatically updated everyday.

+1
[All my comments were about the developer site (by which I mean the HTML
reports generated by mvn site) and not about the official web site.]


Gilles

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


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



Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Adrian Crum
Personally, I despise single character parameters/variable names. 
Seriously, is it that much work to type a few extra characters and make 
the name meaningful?


-Adrian

On 3/14/2012 1:33 PM, sebb wrote:

I noticed that some of the CSV methods uses int l (ell).
This is unfortunately very similar to 1 (one) in many fonts.

ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
both do this.

Now that would perhaps be a good candidate for a CheckStyle report ?!

P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
case you cannot tell.

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



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



Re: [ALL] Commons Parent reports

2012-03-14 Thread sebb
On 14 March 2012 16:27, Honton, Charles charles_hon...@intuit.com wrote:
 As a user of commons libraries, I look at several reports.  I'll consult 
 Javadoc first.  In the case the javadoc is silent about behavior, I look at 
 JXR.

+1, JXR has been very useful to me.

 When I am debugging my code's interaction with the commons library, I want to 
 have the sources available to my IDE, so that I can step through the commons 
 library.
 chas

 -Original Message-
 From: Gilles Sadowski [mailto:gil...@harfang.homelinux.org]
 Sent: Wednesday, March 14, 2012 1:51 AM
 To: dev@commons.apache.org
 Subject: Re: [ALL] Commons Parent reports

 On Tue, Mar 13, 2012 at 01:52:32PM -0400, Gary Gregory wrote:
 On Mar 13, 2012, at 12:40, Gilles Sadowski gil...@harfang.homelinux.org 
 wrote:

 
  [...]
 
  The tools are there, but you have to tell people that they _must_ use 
  them.
 
  Commons has already enough rules and process. As long as the releases
  are have clean code I wouldn't be too anal about the commits in
  between.
 
  I think that the main disagreement is here. Source code must be a clear 
  read
  for the _developers_. To put it bluntly, I don't care that the releases 
  have
  cleanly formatted code, as almost nobody is going to read those packaged
  sources!

 Au contraire, most users will /only/ look at the source jar because
 that is what you use in the debugger!

 Here IMHO you are talking about _developers_.
 By users I meant people who include the classes JAR in their classpath.
 They will at most look at the API docs.


 Gilles

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


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


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



Re: [ALL] Commons Parent reports

2012-03-14 Thread sebb
On 13 March 2012 11:48, sebb seb...@gmail.com wrote:
 Commons Parent 24 includes the following reports:

 Javadoc
 Jxr
 Surefire
 RAT
 Cobertura
 Clirr
 JDepend

 I think the following should be added:

 Changes/JIRA

Done.

 The following could be added:

 Findbugs
 Checkstyle

 Any others?

There's obviously a lot of argument about CheckStyle (and probably PMD
too) because the report can be configured to check different things,
and not everyone agrees on what to check. Let's leave that for a
separate discussion (in another thread).

The other argument is about whether to include certain reports that
are perhaps more developer-oriented.

My view is that if a report is likely to be useful to a 3rd party
developer, we should include it.
Yes, it may make the report list a bit longer, but that is a minor
issue - and maybe one day Maven will give more control over the
layout.

Commons components tend to be fairly low-level, and are generally used
by developers in building larger applications, so it seems natural for
the developer-style reports to be available. As someone already
mentioned, reports such as Cobertura and Findbugs can help show that
we take testing and code quality seriously.

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



Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread sebb
On 14 March 2012 16:39, Adrian Crum adrian.c...@sandglass-software.com wrote:
 Personally, I despise single character parameters/variable names. Seriously,
 is it that much work to type a few extra characters and make the name
 meaningful?

Sometimes single char names are clearer.
E.g. in for loops, using i and j is such a common idiom that renaming
won't necessarily improve readability.

 -Adrian


 On 3/14/2012 1:33 PM, sebb wrote:

 I noticed that some of the CSV methods uses int l (ell).
 This is unfortunately very similar to 1 (one) in many fonts.

 ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
 both do this.

 Now that would perhaps be a good candidate for a CheckStyle report ?!

 P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
 case you cannot tell.

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


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


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



Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 18:11, sebb a écrit :


Sometimes single char names are clearer.
E.g. in for loops, using i and j is such a common idiom that renaming
won't necessarily improve readability.


Same thing for x and y as coordinates.

Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Adrian Crum
Except in nested loops: Which integer is being incremented, the inner 
loop or outer loop? If the outer loop used outer instead of i, and the 
inner loop used inner instead of j, then the loop being incremented is 
obvious.


Idioms make sense as long as they're *your* idioms. To others it's 
confusing.


-Adrian

On 3/14/2012 5:11 PM, sebb wrote:

On 14 March 2012 16:39, Adrian Crumadrian.c...@sandglass-software.com  wrote:

Personally, I despise single character parameters/variable names. Seriously,
is it that much work to type a few extra characters and make the name
meaningful?

Sometimes single char names are clearer.
E.g. in for loops, using i and j is such a common idiom that renaming
won't necessarily improve readability.


-Adrian


On 3/14/2012 1:33 PM, sebb wrote:

I noticed that some of the CSV methods uses int l (ell).
This is unfortunately very similar to 1 (one) in many fonts.

ExtendedBufferedReader.read(...) and UnicodeUnescapeReader.read(...)
both do this.

Now that would perhaps be a good candidate for a CheckStyle report ?!

P.S. the subject has 1 (one) then l (ell) then I (upper-case i) in
case you cannot tell.

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


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


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



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



Re: svn commit: r1300659 - in /commons/proper/csv/trunk/src: main/java/org/apache/commons/csv/CSVParser.java main/java/org/apache/commons/csv/CharBuffer.java test/java/org/apache/commons/csv/CharBuffe

2012-03-14 Thread sebb
On 14 March 2012 17:42,  ebo...@apache.org wrote:
 Author: ebourg
 Date: Wed Mar 14 17:42:28 2012
 New Revision: 1300659

 URL: http://svn.apache.org/viewvc?rev=1300659view=rev
 Log:
 Replaced CharBuffer with StringBuilder (CSV-59)

 Removed:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CharBuffer.java
    
 commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
 Modified:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

 Modified: 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java?rev=1300659r1=1300658r2=1300659view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 (original)
 +++ 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 Wed Mar 14 17:42:28 2012
 @@ -235,7 +235,7 @@ class CSVLexer {
     /** length of the initial token (content-)buffer */
     private static final int INITIAL_TOKEN_LENGTH = 50;

 -    private final CharBuffer wsBuf = new CharBuffer();
 +    private final StringBuilder wsBuf = new StringBuilder();

     private final CSVFormat format;

 @@ -267,13 +267,13 @@ class CSVLexer {
         Type type = INVALID;

         /** The content buffer. */
 -        CharBuffer content = new CharBuffer(INITIAL_TOKEN_LENGTH);
 +        StringBuilder content = new StringBuilder(INITIAL_TOKEN_LENGTH);

         /** Token ready flag: indicates a valid token with content (ready for 
 the parser). */
         boolean isReady;

         Token reset() {
 -            content.clear();
 +            content.setLength(0);
             type = INVALID;
             isReady = false;
             return this;
 @@ -299,7 +299,7 @@ class CSVLexer {
      * @throws IOException on stream access error
      */
     Token nextToken(Token tkn) throws IOException {
 -        wsBuf.clear(); // reuse
 +        wsBuf.setLength(0); // reuse

         // get the last read char (required for empty line detection)
         int lastChar = in.readAgain();
 @@ -308,7 +308,6 @@ class CSVLexer {
         /* note: unfortunately isEndOfLine may consumes a character silently.
         *       this has no effect outside of the method. so a simple 
 workaround
         *       is to call 'readAgain' on the stream...
 -        *       uh: might using objects instead of base-types (jdk1.5 
 autoboxing!)
         */
         int c = in.read();
         boolean eol = isEndOfLine(c);
 @@ -427,12 +426,17 @@ class CSVLexer {
         }

         if (format.isTrailingSpacesIgnored()) {
 -            tkn.content.trimTrailingWhitespace();
 +            trimTrailingSpaces(tkn.content);
         }

         return tkn;
     }

 +    private void trimTrailingSpaces(StringBuilder buffer) {
 +        while (buffer.length()  0  
 Character.isWhitespace(buffer.charAt(buffer.length() - 1))) {
 +            buffer.setLength(buffer.length() - 1);
 +        }

The setLength() method is expensive, so should be taken out of the loop.

 +    }

     /**
      * An encapsulated token lexer



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



[continuum] BUILD FAILURE: Apache Commons - Commons CSV - Default Maven 2 Build Definition (Java 1.5)

2012-03-14 Thread Continuum@vmbuild
Online report : 
http://vmbuild.apache.org/continuum/buildResult.action?buildId=20121projectId=68

Build statistics:
  State: Failed
  Previous State: Ok
  Started at: Wed 14 Mar 2012 18:20:15 +
  Finished at: Wed 14 Mar 2012 18:20:39 +
  Total time: 23s
  Build Trigger: Schedule
  Build Number: 60
  Exit code: 1
  Building machine hostname: vmbuild
  Operating system : Linux(unknown)
  Java Home version : 
  java version 1.6.0_30
  Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
  Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)

  Builder version :
  Apache Maven 2.2.1 (r801777; 2009-08-06 19:16:01+)
  Java version: 1.6.0_30
  Java home: /usr/lib/jvm/jdk1.6.0_30/jre
  Default locale: en_US, platform encoding: ANSI_X3.4-1968
  OS name: linux version: 2.6.32-31-server arch: amd64 Family: 
unix


SCM Changes:

Changed: ebourg @ Wed 14 Mar 2012 17:42:28 +
Comment: Replaced CharBuffer with StringBuilder (CSV-59)
Files changed:
  /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
( 1300659 )
  
/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CharBuffer.java 
( 1300659 )
  
/commons/proper/csv/trunk/src/test/java/org/apache/commons/csv/CharBufferTest.java
 ( 1300659 )

Changed: sebb @ Wed 14 Mar 2012 17:43:35 +
Comment: CSV-60 CSVParser.iterator().remove() should throw throw new 
UnsupportedOperationException()
Files changed:
  /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
( 1300661 )

Changed: sebb @ Wed 14 Mar 2012 17:57:24 +
Comment: Not needed outside the iterator
Files changed:
  /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
( 1300664 )

Changed: sebb @ Wed 14 Mar 2012 17:59:09 +
Comment: It's not a line, it's a record
Files changed:
  /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
( 1300665 )


Dependencies Changes:

No dependencies changed



Build Definition:

POM filename: pom.xml
Goals: clean deploy   
Arguments: --batch-mode -Pjava-1.5
Build Fresh: false
Always Build: false
Default Build Definition: true
Schedule: COMMONS_SCHEDULE
Profile Name: Maven 2.2.1
Description: Default Maven 2 Build Definition (Java 1.5)


Test Summary:

Tests: 49
Failures: 0
Errors: 1
Success Rate: 97
Total time: 0.9746





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



Re: svn commit: r1300661 - /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 18:43 schrieb  s...@apache.org:
 Author: sebb
 Date: Wed Mar 14 17:43:35 2012
 New Revision: 1300661

 URL: http://svn.apache.org/viewvc?rev=1300661view=rev
 Log:
 CSV-60 CSVParser.iterator().remove() should throw throw new 
 UnsupportedOperationException()


is it reasonable to add a unit test, that makes sure an
UnsupportedOperationException is thrown?

 Modified:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

 Modified: 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java?rev=1300661r1=1300660r2=1300661view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 (original)
 +++ 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 Wed Mar 14 17:43:35 2012
 @@ -212,7 +212,9 @@ public class CSVParser implements Iterab
                 }
             }

 -            public void remove() { }
 +            public void remove() {
 +                throw new UnsupportedOperationException();
 +            }
         };
     }




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



Re: svn commit: r1300661 - /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 20:33 schrieb Benedikt Ritter benerit...@googlemail.com:
 Am 14. März 2012 18:43 schrieb  s...@apache.org:
 Author: sebb
 Date: Wed Mar 14 17:43:35 2012
 New Revision: 1300661

 URL: http://svn.apache.org/viewvc?rev=1300661view=rev
 Log:
 CSV-60 CSVParser.iterator().remove() should throw throw new 
 UnsupportedOperationException()


 is it reasonable to add a unit test, that makes sure an
 UnsupportedOperationException is thrown?


just saw the second commit on this one. Forget it.

 Modified:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java

 Modified: 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java?rev=1300661r1=1300660r2=1300661view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 (original)
 +++ 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVParser.java 
 Wed Mar 14 17:43:35 2012
 @@ -212,7 +212,9 @@ public class CSVParser implements Iterab
                 }
             }

 -            public void remove() { }
 +            public void remove() {
 +                throw new UnsupportedOperationException();
 +            }
         };
     }




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



Re: svn commit: r1300699 - /commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 20:48 schrieb  s...@apache.org:
 Author: sebb
 Date: Wed Mar 14 19:48:12 2012
 New Revision: 1300699

 URL: http://svn.apache.org/viewvc?rev=1300699view=rev
 Log:
 Javadoc

 Modified:
    
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java

 Modified: 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java
 URL: 
 http://svn.apache.org/viewvc/commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java?rev=1300699r1=1300698r2=1300699view=diff
 ==
 --- 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java 
 (original)
 +++ 
 commons/proper/csv/trunk/src/main/java/org/apache/commons/csv/CSVFormat.java 
 Wed Mar 14 19:48:12 2012
 @@ -225,7 +225,7 @@ public class CSVFormat implements Serial
     }

     /**
 -     * Tells if comments are supported by this format.
 +     * Specifies whether comments are supported by this format.
      *
      * @return tttrue/tt is comments are supported, ttfalse/tt 
 otherwise
      */
 @@ -313,7 +313,8 @@ public class CSVFormat implements Serial
     }

     /**
 -     * Tells if unicode escape sequences (i.e span\/spanu1234) are 
 turned into their corresponding character.
 +     * Tells if unicode escape sequences (e.g. span\/spanu1234) are 
 turned into their corresponding character

how about changing this to [...] (e.g. {@literal \u1234}) are [...]?
would be better readable in the source.

 +     * when parsing input.
      *
      * @return tttrue/tt if unicode escape sequences are interpreted, 
 ttfalse/tt if they are left as is.
      */
 @@ -333,9 +334,9 @@ public class CSVFormat implements Serial
     }

     /**
 -     * Tells if the empty lines between the records are ignored.
 +     * Specifies whether empty lines between records are ignored when 
 parsing input.
      *
 -     * @return tttrue/tt if empty lines between records are ignore, 
 ttfalse/tt if they are turned into empty records.
 +     * @return tttrue/tt if empty lines between records are ignored, 
 ttfalse/tt if they are turned into empty records.
      */
     public boolean isEmptyLinesIgnored() {
         return emptyLinesIgnored;



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



[csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Benedikt Ritter
Hey,

the subject of this mail is pretty self-explanatory. Why do we need a
package private validate() method, given the fact, that users can not
create custom instances (constructor is package private)? You could
even argue, that no validation is needed at all, since we are in
control of what formats can be created. However I'd say, the
validation makes sure that we do not unintentionally create invalid
formats. But then validate() can be made private and called at the end
of the constructor.

Benedikt

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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 21:52, Benedikt Ritter a écrit :


the subject of this mail is pretty self-explanatory. Why do we need a
package private validate() method, given the fact, that users can not
create custom instances (constructor is package private)? You could
even argue, that no validation is needed at all, since we are in
control of what formats can be created. However I'd say, the
validation makes sure that we do not unintentionally create invalid
formats. But then validate() can be made private and called at the end
of the constructor.


Because the format could temporarily be in an invalid state. Something 
like this would break (a bit far fetched, I agree):


CSVFormat.DEFAULT.withDelimiter('#').withCommentStart('/');

Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 22:02 schrieb Emmanuel Bourg ebo...@apache.org:
 Le 14/03/2012 21:52, Benedikt Ritter a écrit :


 the subject of this mail is pretty self-explanatory. Why do we need a
 package private validate() method, given the fact, that users can not
 create custom instances (constructor is package private)? You could
 even argue, that no validation is needed at all, since we are in
 control of what formats can be created. However I'd say, the
 validation makes sure that we do not unintentionally create invalid
 formats. But then validate() can be made private and called at the end
 of the constructor.


 Because the format could temporarily be in an invalid state. Something like
 this would break (a bit far fetched, I agree):

 CSVFormat.DEFAULT.withDelimiter('#').withCommentStart('/');


okay, I understand. But doesn't that make things worse? Users can
create invalid formats, but they can not call validate(), because it
is package private.

 Emmanuel Bourg


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread sebb
On 14 March 2012 21:02, Emmanuel Bourg ebo...@apache.org wrote:
 Le 14/03/2012 21:52, Benedikt Ritter a écrit :


 the subject of this mail is pretty self-explanatory. Why do we need a
 package private validate() method, given the fact, that users can not
 create custom instances (constructor is package private)? You could
 even argue, that no validation is needed at all, since we are in
 control of what formats can be created. However I'd say, the
 validation makes sure that we do not unintentionally create invalid
 formats. But then validate() can be made private and called at the end
 of the constructor.


 Because the format could temporarily be in an invalid state. Something like
 this would break (a bit far fetched, I agree):

 CSVFormat.DEFAULT.withDelimiter('#').withCommentStart('/');

In which case, reversing the order would work.
We would just have to document this as a restriction.

The problem with leaving the validation until later is that it
decouples the cause and effect.
This makes it a bit harder to debug.

It's also simpler if there is a single validation method.
At present some of the setters also perform validation.

BTW, we should probably reject delimiter == DISABLED.

Also, the DISABLED constant needs to be public (or available via a
public getter) otherwise it's not possible to disable all but the
delimiter.
Using a getter would allow the constant to be changed if it became necessary.

 Emmanuel Bourg


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 22:16 schrieb sebb seb...@gmail.com:
 On 14 March 2012 21:02, Emmanuel Bourg ebo...@apache.org wrote:
 Le 14/03/2012 21:52, Benedikt Ritter a écrit :


 the subject of this mail is pretty self-explanatory. Why do we need a
 package private validate() method, given the fact, that users can not
 create custom instances (constructor is package private)? You could
 even argue, that no validation is needed at all, since we are in
 control of what formats can be created. However I'd say, the
 validation makes sure that we do not unintentionally create invalid
 formats. But then validate() can be made private and called at the end
 of the constructor.


 Because the format could temporarily be in an invalid state. Something like
 this would break (a bit far fetched, I agree):

 CSVFormat.DEFAULT.withDelimiter('#').withCommentStart('/');

 In which case, reversing the order would work.
 We would just have to document this as a restriction.

 The problem with leaving the validation until later is that it
 decouples the cause and effect.
 This makes it a bit harder to debug.

 It's also simpler if there is a single validation method.
 At present some of the setters also perform validation.


I agree with you on this. However, I think it would be better to tie
validation to the object creation. Maybe the Builder Pattern like
shown in Effective Java p. 14-15 is a reasonable solution for this
case? It would be a bit more verbose, but we can be sure that
everything will be validated.

 BTW, we should probably reject delimiter == DISABLED.

 Also, the DISABLED constant needs to be public (or available via a
 public getter) otherwise it's not possible to disable all but the
 delimiter.
 Using a getter would allow the constant to be changed if it became necessary.


Only if we remove Serializable...

 Emmanuel Bourg


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


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 22:15, Benedikt Ritter a écrit :


okay, I understand. But doesn't that make things worse? Users can
create invalid formats, but they can not call validate(), because it
is package private.


Worse? There was no validation originally, users could do any kind of 
absurd things.


I don't think this is an issue, the format will be validated one line 
later when it's used for parsing or printing.


Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 22:25, Benedikt Ritter a écrit :


I agree with you on this. However, I think it would be better to tie
validation to the object creation. Maybe the Builder Pattern like
shown in Effective Java p. 14-15 is a reasonable solution for this
case? It would be a bit more verbose, but we can be sure that
everything will be validated.


That's too verbose, please let's keep this simple API.

Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Benedikt Ritter
Am 14. März 2012 22:33 schrieb Emmanuel Bourg ebo...@apache.org:
 Le 14/03/2012 22:25, Benedikt Ritter a écrit :


 I agree with you on this. However, I think it would be better to tie
 validation to the object creation. Maybe the Builder Pattern like
 shown in Effective Java p. 14-15 is a reasonable solution for this
 case? It would be a bit more verbose, but we can be sure that
 everything will be validated.


 That's too verbose, please let's keep this simple API.


okay!
although, I don't find
CSVFormat format =
CSVFormat.defaults().withDelimiter('#').withCommentStart('/').build()
too verbose ;)

Bonne nuit!
Benedikt

 Emmanuel Bourg


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 22:16, sebb a écrit :


In which case, reversing the order would work.
We would just have to document this as a restriction.


Too much burden on the user.



The problem with leaving the validation until later is that it
decouples the cause and effect.
This makes it a bit harder to debug.


It'll break one line bellow the creation of the format in 99.99% of the 
cases, and the exception thrown is very explicit.




It's also simpler if there is a single validation method.
At present some of the setters also perform validation.


I don't see this as an issue.



BTW, we should probably reject delimiter == DISABLED.


Ok



Also, the DISABLED constant needs to be public (or available via a
public getter) otherwise it's not possible to disable all but the
delimiter.


I'd better use a null value to disable a feature than exposing the 
DISABLED constant.



Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread sebb
On 14 March 2012 21:41, Emmanuel Bourg ebo...@apache.org wrote:
 Le 14/03/2012 22:16, sebb a écrit :


 In which case, reversing the order would work.
 We would just have to document this as a restriction.


 Too much burden on the user.



 The problem with leaving the validation until later is that it
 decouples the cause and effect.
 This makes it a bit harder to debug.


 It'll break one line bellow the creation of the format in 99.99% of the
 cases, and the exception thrown is very explicit.



 It's also simpler if there is a single validation method.
 At present some of the setters also perform validation.


 I don't see this as an issue.



 BTW, we should probably reject delimiter == DISABLED.


 Ok



 Also, the DISABLED constant needs to be public (or available via a
 public getter) otherwise it's not possible to disable all but the
 delimiter.


 I'd better use a null value to disable a feature than exposing the DISABLED
 constant.

It's not possible to use null for a char value.


 Emmanuel Bourg


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread sebb
On 14 March 2012 21:40, Benedikt Ritter benerit...@googlemail.com wrote:
 Am 14. März 2012 22:33 schrieb Emmanuel Bourg ebo...@apache.org:
 Le 14/03/2012 22:25, Benedikt Ritter a écrit :


 I agree with you on this. However, I think it would be better to tie
 validation to the object creation. Maybe the Builder Pattern like
 shown in Effective Java p. 14-15 is a reasonable solution for this
 case? It would be a bit more verbose, but we can be sure that
 everything will be validated.


 That's too verbose, please let's keep this simple API.


 okay!
 although, I don't find
 CSVFormat format =
 CSVFormat.defaults().withDelimiter('#').withCommentStart('/').build()
 too verbose ;)

Agree entirely.

And parse and format could perform an implicit build().

It would also allow one to eliminate the additional instance creation.

 Bonne nuit!

Gute Nacht ?

 Benedikt

 Emmanuel Bourg


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


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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 22:44, sebb a écrit :


It's not possible to use null for a char value.


It assumed we changed the signature of the methods with 
java.lang.Character, while retaining the primitive internally. But 
that's not possible due to the getters.


If possible I'd like to not expose this constant. The idea was that we 
start with disabled features by default in the predefined formats, and 
then we enable what's necessary. Thus we never have to disable anything.


Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread sebb
On 14 March 2012 21:56, Emmanuel Bourg ebo...@apache.org wrote:
 Le 14/03/2012 22:44, sebb a écrit :


 It's not possible to use null for a char value.


 It assumed we changed the signature of the methods with java.lang.Character,
 while retaining the primitive internally. But that's not possible due to the
 getters.

I've just realised that the DISABLED value is actually exposed - just
use a format with a disabled character and fetch it.

It's not too late to change to using Character.

 If possible I'd like to not expose this constant. The idea was that we start
 with disabled features by default in the predefined formats, and then we
 enable what's necessary. Thus we never have to disable anything.

It's not possible currently to create a format with encapsulator,
commentStart and escape all null, except by knowing the value of
DISABLED.

Maybe that's not allowed, but it's not rejected by validation, and can
be created by using '\ufffe' directly.

Likewise, encapsulator and escape are not mutually exclusive.
Should they be?

 Emmanuel Bourg

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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 14/03/2012 23:35, sebb a écrit :


It's not too late to change to using Character.


The issue is the parser, this will probably degrade the performance. 
Unless the fields are made package private and accessed directly by the 
parser.




It's not possible currently to create a format with encapsulator,
commentStart and escape all null, except by knowing the value of
DISABLED.


The solution might be to introduce a quoting mode to the format. I 
planned to add this for the printer, but it can be useful for the parser 
too. This mode would have 3 states:

- NEVER: Don't use quotes, even if the encapsulator is defined
- ALWAYS: Always enclose values into quotes
- REQUIRED: Enclose the values only if necessary

Thus the quotes could be disabled with:

CSVFormat.DEFAULT.withEncapsulation(NEVER)



Likewise, encapsulator and escape are not mutually exclusive.
Should they be?


I wish it was, but MySQL actually produces files with quotes and escaped 
characters (delimiter and line feeds). I'm reviewing other RDBMS to see 
what formats we can expect in the wild.


Emmanuel Bourg




smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread sebb
On 14 March 2012 22:54, Emmanuel Bourg ebo...@apache.org wrote:
 Le 14/03/2012 23:35, sebb a écrit :


 It's not too late to change to using Character.


 The issue is the parser, this will probably degrade the performance. Unless
 the fields are made package private and accessed directly by the parser.

I don't see why, so long as you fetch the values once at the start.

There's a theoretical problem with using a valid char value as a
disabled indicator, at least with the parser as it stands.
It assumes that the disabled char cannot occur in a file; that is not
strictly true, so it could detect an escape where there is none.

The example string pu\\ufffeblic is parsed as puBELlic when using
CSVFormat.TDF.withUnicodeEscapesInterpreted(true) - i.e. the disabled
char is treated as an escape, and \b = BEL.

This could be avoided by checking isEscaping in the parser; similarly
for the other chars that can be disabled.



 It's not possible currently to create a format with encapsulator,
 commentStart and escape all null, except by knowing the value of
 DISABLED.


 The solution might be to introduce a quoting mode to the format. I planned
 to add this for the printer, but it can be useful for the parser too. This
 mode would have 3 states:
 - NEVER: Don't use quotes, even if the encapsulator is defined

I think it would be confusing to have a format with an encapsulator
that is not used.

 - ALWAYS: Always enclose values into quotes
 - REQUIRED: Enclose the values only if necessary

 Thus the quotes could be disabled with:

 CSVFormat.DEFAULT.withEncapsulation(NEVER)

Or provide a constant format with all 3 disabled.

But it would still be simpler to be able to override each and every
char independently; using Character is going to be the simplest way to
achieve that.

Probably still need to make output encapsulation switchable, but
that's a different matter.



 Likewise, encapsulator and escape are not mutually exclusive.
 Should they be?


 I wish it was, but MySQL actually produces files with quotes and escaped
 characters (delimiter and line feeds). I'm reviewing other RDBMS to see what
 formats we can expect in the wild.

OK.

 Emmanuel Bourg



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



Re: [csv] Why does CSVFormat provide a validate() method instead of validating parameters passed to its constructor?

2012-03-14 Thread Emmanuel Bourg

Le 15/03/2012 00:32, sebb a écrit :


I don't see why, so long as you fetch the values once at the start.


I tried that and the parser was slower. Don't ask me why.



There's a theoretical problem with using a valid char value as a
disabled indicator, at least with the parser as it stands.
It assumes that the disabled char cannot occur in a file; that is not
strictly true, so it could detect an escape where there is none.

The example string pu\\ufffeblic is parsed as puBELlic when using
CSVFormat.TDF.withUnicodeEscapesInterpreted(true) - i.e. the disabled
char is treated as an escape, and \b =BEL.

This could be avoided by checking isEscaping in the parser; similarly
for the other chars that can be disabled.


Good point, I didn't see this one. It can also be avoided by filtering 
invalid sequences in UnicodeUnescapeReader (or \ufffe specifically). 
Character.isDefined(char) will tell us if the character exists. U+FFFE 
doesn't:


http://www.fileformat.info/info/unicode/char/fffe

Emmanuel Bourg



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [csv] Headers

2012-03-14 Thread Emmanuel Bourg
There is another alternative, we might replace the records returned as a 
String[] by a CSVRecord class able to access the fields by id or by 
name. This would be similar to a JDBC resultset (except for the looping 
logic)


This avoids the duplication of the parser, which might still be 
generified later to support custom beans.


The example becomes:

  CSVFormat format = CSVFormat.DEFAULT.withHeader();

  for (CSVRecord record : format.parse(in)) {
  Person person = new Person();
  person.setName(record.get(name));
  person.setEmail(record.get(email));
  person.setPhone(record.get(phone));
  persons.add(person);
  }

The record is not a Map to keep it simple, it only exposes 3 methods: 
get(int), get(String) and size()


Emmanuel Bourg




smime.p7s
Description: S/MIME Cryptographic Signature


[GUMP@vmgump]: Project commons-digester3 (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-digester3 has an issue affecting its community integration.
This issue affects 2 projects,
 and has been outstanding for 64 runs.
The current state of this project is 'Failed', with reason 'Missing Build 
Outputs'.
For reference only, the following projects are affected by this:
- commons-digester3 :  XML to Java Object Configuration
- commons-digester3-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-digester3/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole jar output [commons-digester3-*[0-9T].jar] identifier set to 
project name
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/apache-commons/digester/gump_mvn_settings.xml
 -DEBUG- Maven POM in: 
/srv/gump/public/workspace/apache-commons/digester/pom.xml
 -INFO- Failed with reason missing build outputs
 -ERROR- Missing Output: 
/srv/gump/public/workspace/apache-commons/digester/target/commons-digester3-*[0-9T].jar
 -ERROR- See Directory Listing Work for Missing Outputs
 -INFO- Failed to extract fallback artifacts from Gump Repository



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-digester3/gump_work/build_apache-commons_commons-digester3.html
Work Name: build_apache-commons_commons-digester3 (Type: Build)
Work ended in a state of : Success
Elapsed: 1 min 40 secs
Command Line: /opt/maven2/bin/mvn --batch-mode -DskipTests=true --settings 
/srv/gump/public/workspace/apache-commons/digester/gump_mvn_settings.xml 
package 
[Working Directory: /srv/gump/public/workspace/apache-commons/digester]
M2_HOME: /opt/maven2
-
Downloading: 
http://localhost:8192/maven2/org/codehaus/plexus/plexus-archiver/1.1/plexus-archiver-1.1.pom

Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom

Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.pom

Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-common-artifact-filters/1.0-alpha-1/maven-common-artifact-filters-1.0-alpha-1.pom

Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-shared-components/6/maven-shared-components-6.pom

Downloading: 
http://localhost:8192/maven2/org/codehaus/plexus/plexus-archiver/1.1/plexus-archiver-1.1.jar
Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar


Downloading: 
http://localhost:8192/maven2/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.jar

[INFO] [assembly:single {execution: default}]
[INFO] Reading assembly descriptor: 
/srv/gump/public/workspace/apache-commons/digester/dist/src/main/assembly/bin.xml
[INFO] Reading assembly descriptor: 
/srv/gump/public/workspace/apache-commons/digester/dist/src/main/assembly/src.xml
[INFO] Building tar : 
/srv/gump/public/workspace/apache-commons/digester/dist/target/commons-digester3-3.3-SNAPSHOT-bin.tar.gz
[INFO] Building zip: 
/srv/gump/public/workspace/apache-commons/digester/dist/target/commons-digester3-3.3-SNAPSHOT-bin.zip
[INFO] Building tar : 
/srv/gump/public/workspace/apache-commons/digester/dist/target/commons-digester3-3.3-SNAPSHOT-src.tar.gz
[INFO] Building zip: 
/srv/gump/public/workspace/apache-commons/digester/dist/target/commons-digester3-3.3-SNAPSHOT-src.zip
[INFO] 
[INFO] 
[INFO] 
[INFO] Reactor Summary:
[INFO] 
[INFO] Apache Commons Digester ... SUCCESS [11.672s]
[INFO] Apache Commons Digester :: Core ... SUCCESS [30.987s]
[INFO] Apache Commons Digester :: Annotations Processor .. SUCCESS [2.551s]
[INFO] Commons Digester :: Examples .. SUCCESS [0.562s]
[INFO] Apache Commons Digester :: Examples :: Annotations :: Atom  SUCCESS 
[3.474s]
[INFO] Apache Commons Digester :: Examples :: API :: Address Book  SUCCESS 
[2.274s]
[INFO] Apache Commons Digester :: Examples :: API :: Catalog . SUCCESS [2.215s]
[INFO] Apache Commons Digester :: Examples :: API :: DB Insert  SUCCESS [2.048s]
[INFO] Apache Commons Digester :: Examples :: API :: Document Markup  SUCCESS 
[1.749s]
[INFO] Apache Commons Digester :: Examples :: EDSL :: Atom ... SUCCESS [2.016s]
[INFO] Apache Commons Digester :: Examples :: Plugins :: Pipeline  SUCCESS 
[1.721s]
[INFO] Apache Commons Digester :: 

[GUMP@vmgump]: Project commons-collections4-testframework (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-collections4-testframework has an issue affecting its community 
integration.
This issue affects 1 projects,
 and has been outstanding for 3 runs.
The current state of this project is 'Failed', with reason 'Missing Build 
Outputs'.
For reference only, the following projects are affected by this:
- commons-collections4-testframework :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-collections4-testframework/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -DEBUG- Sole jar output [commons-collections-testframework-*[0-9T].jar] 
identifier set to project name
 -INFO- Failed with reason missing build outputs
 -ERROR- Missing Output: 
/srv/gump/public/workspace/apache-commons/collections/target/commons-collections-testframework-*[0-9T].jar
 -ERROR- See Directory Listing Work for Missing Outputs
 -INFO- Failed to extract fallback artifacts from Gump Repository

To subscribe to this information via syndicated feeds:
- RSS: 
http://vmgump.apache.org/gump/public/apache-commons/commons-collections4-testframework/rss.xml
- Atom: 
http://vmgump.apache.org/gump/public/apache-commons/commons-collections4-testframework/atom.xml

== Gump Tracking Only ===
Produced by Apache Gump(TM) version 2.3.
Gump Run 1215032012, vmgump.apache.org:vmgump:1215032012
Gump E-mail Identifier (unique within run) #19.

--
Apache Gump
http://gump.apache.org/ [Instance: vmgump]

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



Re: [ALL] Is that 1 or l or I ?

2012-03-14 Thread Ralph Goers

On Mar 14, 2012, at 10:14 AM, Emmanuel Bourg wrote:

 Le 14/03/2012 18:11, sebb a écrit :
 
 Sometimes single char names are clearer.
 E.g. in for loops, using i and j is such a common idiom that renaming
 won't necessarily improve readability.
 
 Same thing for x and y as coordinates.

I doubt anyone would make a mistake seeing x and y.  

But 

int I = 1;
int l = 2;

int amt = I + 1;

would make me very upset.

however, that isn't the same as 

for (int i=0; i   100; ++i) {
….
}

Ralph


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



[GUMP@vmgump]: Project commons-scxml-test (in module apache-commons) failed

2012-03-14 Thread Gump
To whom it may engage...

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

Project commons-scxml-test has an issue affecting its community integration.
This issue affects 1 projects,
 and has been outstanding for 45 runs.
The current state of this project is 'Failed', with reason 'Build Failed'.
For reference only, the following projects are affected by this:
- commons-scxml-test :  Apache Commons


Full details are available at:

http://vmgump.apache.org/gump/public/apache-commons/commons-scxml-test/index.html

That said, some information snippets are provided here.

The following annotations (debug/informational/warning/error messages) were 
provided:
 -WARNING- Overriding Maven settings: 
[/srv/gump/public/workspace/apache-commons/scxml/gump_mvn_settings.xml]
 -DEBUG- (Apache Gump generated) Apache Maven Settings in: 
/srv/gump/public/workspace/apache-commons/scxml/gump_mvn_settings.xml
 -INFO- Failed with reason build failed
 -DEBUG- Maven POM in: /srv/gump/public/workspace/apache-commons/scxml/pom.xml
 -INFO- Project Reports in: 
/srv/gump/public/workspace/apache-commons/scxml/target/surefire-reports



The following work was performed:
http://vmgump.apache.org/gump/public/apache-commons/commons-scxml-test/gump_work/build_apache-commons_commons-scxml-test.html
Work Name: build_apache-commons_commons-scxml-test (Type: Build)
Work ended in a state of : Failed
Elapsed: 19 secs
Command Line: /opt/maven2/bin/mvn --batch-mode -Dsimplelog.defaultlog=info 
--settings 
/srv/gump/public/workspace/apache-commons/scxml/gump_mvn_settings.xml test 
[Working Directory: /srv/gump/public/workspace/apache-commons/scxml]
M2_HOME: /opt/maven2
-
[INFO] SimpleSCXMLListener - /s2/s2.1/e1.2
[INFO] SimpleSCXMLListener - /s2/s2.1/e1.2
[INFO] SimpleSCXMLListener - /s2/s2.1
[INFO] SimpleSCXMLListener - /s2
[INFO] SimpleSCXMLListener - transition (event = s2.1.done, cond = null, from = 
/s2, to = /s3)
[INFO] SimpleSCXMLListener - /s3
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.156 sec
Running org.apache.commons.scxml.issues.Issue64Test
[INFO] SCXMLSemantics - null: Begin transition bug test ...
[INFO] SimpleSCXMLListener - /tranbug
[INFO] SimpleSCXMLListener - /tranbug
[INFO] SCXMLSemantics - null: somedata
[INFO] SCXMLSemantics - null: *somedata
[INFO] SimpleSCXMLListener - transition (event = show.bug, cond = null, from = 
/tranbug, to = /end)
[INFO] SimpleSCXMLListener - /end
[WARN] SCXMLParser - Ignoring element misplaced in namespace 
http://www.w3.org/2005/07/scxml; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:30:21
 and digester match scxml/datamodel/misplaced
[WARN] SCXMLParser - Ignoring element foo in namespace 
http://www.w3.org/2005/07/scxml; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:36:19
 and digester match scxml/state/onentry/foo
[WARN] SCXMLParser - Ignoring element bar in namespace 
http://my.foo.example/; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:37:22
 and digester match scxml/state/onentry/bar
[WARN] SCXMLParser - Ignoring element datamodel in namespace 
http://www.w3.org/2005/07/scxml; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:41:21
 and digester match scxml/state/transition/datamodel
[WARN] SCXMLParser - Ignoring element data in namespace 
http://www.w3.org/2005/07/scxml; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:42:41
 and digester match scxml/state/transition/datamodel/data
[WARN] SCXMLParser - Ignoring element baz in namespace 
http://my.foo.example/; at 
file:/srv/gump/public/workspace/apache-commons/scxml/target/test-classes/org/apache/commons/scxml/issues/issue64-02.xml:49:14
 and digester match scxml/baz
[INFO] SCXMLSemantics - null: Begin transition bug test ...
[INFO] SimpleSCXMLListener - /tranbug
[INFO] SimpleSCXMLListener - /tranbug
[INFO] SCXMLSemantics - null: null
[WARN] SimpleErrorReporter - EXPRESSION_ERROR (eval(''*' + dummy'):null): 
[INFO] SimpleSCXMLListener - transition (event = show.bug, cond = null, from = 
/tranbug, to = /end)
[INFO] SimpleSCXMLListener - /end
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.14 sec

Results :

Failed tests: 
  testCustomActionCallbacks(org.apache.commons.scxml.model.CustomActionTest)

Tests run: 229, Failures: 1, Errors: 0, Skipped: 0

[INFO] 
[ERROR] BUILD FAILURE
[INFO]