[ https://issues.apache.org/jira/browse/ZOOKEEPER-2140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14603823#comment-14603823 ]
Raul Gutierrez Segales commented on ZOOKEEPER-2140: --------------------------------------------------- [~arshad.mohammad]: if you are using git, you need to create the patch with: {code} git diff --no-prefix HEAD~1.. > ZOOKEEPER-2140.patch {code} Otherwise, jenkins won't be able to apply it and run the tests. Please recreate the patch and upload it again, thanks! > NettyServerCnxn and NIOServerCnxn code should be improved > --------------------------------------------------------- > > Key: ZOOKEEPER-2140 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2140 > Project: ZooKeeper > Issue Type: Improvement > Reporter: Arshad Mohammad > Fix For: 3.6.0 > > Attachments: ZOOKEEPER-2140-1.patch, ZOOKEEPER-2140-2.patch, > ZOOKEEPER-2140-3.patch > > > Classes org.apache.zookeeper.server.NIOServerCnxn and > org.apache.zookeeper.server.NettyServerCnxn have following need and scope for > improvement > 1) Duplicate code. > These two classes have around 250 line duplicate code. All the command > code is duplicated > 2) Many improvement/bugFix done in one class but not done in other class. > These changes should be synced > For example > In NettyServerCnxn > {code} > // clone should be faster than iteration > // ie give up the cnxns lock faster > AbstractSet<ServerCnxn> cnxns; > synchronized (factory.cnxns) { > cnxns = new HashSet<ServerCnxn>(factory.cnxns); > } > for (ServerCnxn c : cnxns) { > c.dumpConnectionInfo(pw, false); > pw.println(); > } > {code} > In NIOServerCnxn > {code} > for (ServerCnxn c : factory.cnxns) { > c.dumpConnectionInfo(pw, false); > pw.println(); > } > {code} > 3) NettyServerCnxn and NIOServerCnxn classes are bulky unnecessarily. > Command classes have altogether different functionality, the command classes > should go in different class files. > If this done it will be easy to add new command with minimal change to > existing classes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)