[ http://issues.apache.org/jira/browse/HADOOP-538?page=comments#action_12448027 ] Arun C Murthy commented on HADOOP-538: --------------------------------------
Wrt ZlibFactory, I agree it looks a little ugly for now - and above direction. However I feel we can do sligthly better by getting ZlibFactory to return the 'Class' instead of the instance i.e. public Class getZlibCompressorClass() & public Class getZlibDecompressorClass() (This of course is Owen's original suggestion...) This will require that ReflectionUtils has a new method: public static Object newInstance(Class theClass, Object[] arguments, Configuration conf) { // Constructor signature Class[] constructorSignature = new Class[arguments.length]; for (int i=0; i < arguments.length; ++i) { constructorSignature[i] = arguments[i].getClass(); } Object result; try { Constructor meth = theClass.getConstructor(constructorSignature); meth.setAccessible(true); result = meth.newInstance(arguments); } catch (Exception e) { throw new RuntimeException(e); } if (conf != null) { if (result instanceof Configurable) { ((Configurable) result).setConf(conf); } if (conf instanceof JobConf && result instanceof JobConfigurable) { ((JobConfigurable)result).configure((JobConf) conf); } } return result; } which can then be used to call constructors with arguments (ala http://java.sun.com/docs/books/tutorial/reflect/object/arg.html). This is necessary since I will need to call Zlib{Com|Decom}pressor with arguments to make it 'behave' like a Gzip {com|decom}pressor. The api can probably be useful elsewhere too... Thoughts? > Implement a nio's 'direct buffer' based wrapper over zlib to improve > performance of java.util.zip.{De|In}flater as a 'custom codec' > ----------------------------------------------------------------------------------------------------------------------------------- > > Key: HADOOP-538 > URL: http://issues.apache.org/jira/browse/HADOOP-538 > Project: Hadoop > Issue Type: Improvement > Affects Versions: 0.6.1 > Reporter: Arun C Murthy > Assigned To: Arun C Murthy > Fix For: 0.9.0 > > Attachments: HADOOP-538.patch, HADOOP-538_20061005.tgz, > HADOOP-538_20061011.tgz, HADOOP-538_20061026.tgz, HADOOP-538_20061030.tgz, > HADOOP-538_20061107.tgz, HADOOP-538_benchmarks.tgz > > > There has been more than one instance where java.util.zip's {De|In}flater > classes perform unreliably, a simple wrapper over zlib-1.2.3 (latest stable) > using java.nio.ByteBuffer (i.e. direct buffers) should go a long way in > alleviating these woes. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira