gerrit/java/com/google/gerrit/sshd
Edwin Kempin 5174d2d95e Prefer using Splitter to String.split
String.split(String) has surprising behaviour [1]:

String[] nothing = "".split(":"); // results in [""]
String[] bunchOfNothing = ":".split(":"); // results in []

More examples:

input  | input.split(":")  | Splitter.on(':').split(input)
=======|===================|==============================
""     | [""]              | [""]
":"    | []                | ["", ""]
":::"  | []                | ["", "", "", ""]
"a:::" | ["a"]             | ["a", "", "", ""]
":::b" | ["", "", "", "b"] | ["", "", "", "b"]

In addition using Splitter makes the code more readable as Splitter has
nicer methods that make it clearer which high-level operation should be
performed. E.g. in some places we can use
Splitter.on(CharMatcher.anyOf(something)) instead of matching on
patterns.

Tests and classes that are used by the GWT UI are not adapted.

[1] http://konigsberg.blogspot.com/2009/11/final-thoughts-java-puzzler-splitting.html

Change-Id: I6f141fb492e2fb94544089d794f245d0885f8649
Signed-off-by: Edwin Kempin <ekempin@google.com>
2018-02-12 11:04:20 +01:00
..
commands Prefer using Splitter to String.split 2018-02-12 11:04:20 +01:00
plugin Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
AbstractGitCommand.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
AdminHighPriorityCommand.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
AliasCommand.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
AliasCommandProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
BUILD Split off config REST endpoints from giant server lib 2017-12-20 20:09:17 +01:00
BaseCommand.java Merge branch 'stable-2.15' into master 2018-02-07 15:04:41 -05:00
CachingPublicKeyAuthenticator.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
ChangeArgumentParser.java Make project state check in READ explicit 2018-01-23 11:08:24 +01:00
CommandExecutor.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandExecutorProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandExecutorQueueProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandFactoryProvider.java Merge branch 'stable-2.15' into master 2018-02-07 15:04:41 -05:00
CommandMetaData.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandModule.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandName.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
CommandProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
Commands.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
DatabasePubKeyAuth.java AccountSshKey: Move from reviewdb.client package into server.account package 2018-02-05 16:06:04 +01:00
DispatchCommand.java Merge branch 'stable-2.15' into master 2018-02-07 15:04:41 -05:00
DispatchCommandProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
GerritGSSAuthenticator.java AccountCache#getByUsername: Return Optional<AccountState> 2018-01-19 10:52:27 +01:00
HostKeyProvider.java Remove support for SSH DSA keys 2018-01-09 12:50:51 +00:00
NoShell.java CurrentUser#getUserName: Return Optional<String> instead of nullable String 2018-01-25 12:07:03 +01:00
PluginCommandModule.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SingleCommandPluginModule.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshAutoRegisterModuleGenerator.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshCommand.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshDaemon.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshHostKeyModule.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshKeyCacheEntry.java AccountSshKey: Move from reviewdb.client package into server.account package 2018-02-05 16:06:04 +01:00
SshKeyCacheImpl.java AccountSshKey: Move from reviewdb.client package into server.account package 2018-02-05 16:06:04 +01:00
SshKeyCreatorImpl.java AccountSshKey: Move from reviewdb.client package into server.account package 2018-02-05 16:06:04 +01:00
SshLog.java Merge branch 'stable-2.15' into master 2018-02-07 15:04:41 -05:00
SshLogLayout.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshModule.java Prefer using Splitter to String.split 2018-02-12 11:04:20 +01:00
SshPluginStarterCallback.java Merge branch 'stable-2.15' into master 2018-02-07 15:04:41 -05:00
SshRemotePeerProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshScope.java Merge branch 'stable-2.15' 2017-11-15 19:48:38 +09:00
SshSession.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SshUtil.java AccountSshKey: Move from reviewdb.client package into server.account package 2018-02-05 16:06:04 +01:00
StreamCommandExecutor.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
StreamCommandExecutorProvider.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00
SuExec.java Dissolve gerrit-sshd top-level directory 2017-10-31 11:02:36 -04:00