Hi Tharindu, Noted. Nice to hear it is working. Need to look why digests of those two InputStreams are differed and will update here.
Thanks. On Mon, Mar 2, 2015 at 11:22 AM, Tharindu Dharmarathna <[email protected]> wrote: > adding rasika. > > On Mon, Mar 2, 2015 at 11:21 AM, Tharindu Dharmarathna <[email protected] > > wrote: > >> Hi Sajith, >> >> Thank you for your response . As done offline chat with Rasika he come up >> with a good one without using md5sum we can do same thing from >> org.apache.commons.io.IOUtils class in apache, from there we can check >> two input streams are same by contentEquals method. >> >> Documentation for this class >> https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/IOUtils.html >> >> On Mon, Mar 2, 2015 at 11:08 AM, Sajith Ariyarathna <[email protected]> >> wrote: >> >>> Hi Tharindu, >>> >>> I think this is caused by "chunking" in input streams. It might happen >>> because of HTTP protocol or a bug in Java, I'm not sure. >>> >>> As an alternative solution you can run the MD5 command and compare its >>> output. Like this, >>> >>> >>> public String getMd5Checksum(String filePath) throws IOException { >>> >>> final String md5Command = "md5sum "; // Linux 'md5sum', MacOS 'md5' >>> >>> Process p = Runtime.getRuntime().exec(md5Command + filePath); >>> Scanner scn = new Scanner(p.getInputStream()); >>> String rv = scn.nextLine(); >>> scn.close(); >>> return rv; >>> } >>> >>> >>> >>> >>> >>> On Sun, Mar 1, 2015 at 2:28 PM, Tharindu Dharmarathna < >>> [email protected]> wrote: >>> >>>> Hi Iqbal, >>>> >>>> I checked those two files manually I got same hash value to two files. >>>> This happens in random manner when running the tests >>>> >>>> >>>> On Sun, Mar 1, 2015 at 1:48 PM, Rasika Perera <[email protected]> wrote: >>>> >>>>> Hi Tharindu, >>>>> >>>>> I checked your `readMD5(InputStream inputStream)` method and it is >>>>> working as expected. The problem is with the inputStream you are passing >>>>> into the method. >>>>> >>>>> Please verify that you are not passing the *same inputStream* on the >>>>> second time. Because once it is utilized pos has reached the end. So, the >>>>> second time you are creating a hash of an empty stream. >>>>> >>>>> On Sun, Mar 1, 2015 at 1:41 PM, Irham Iqbal <[email protected]> wrote: >>>>> >>>>>> Hi Tharindu >>>>>> >>>>>> Did you try to hash those files manually ? >>>>>> If not try to hash those files manually(i.e *md5sum file.txt) *and >>>>>> check hash values are same >>>>>> >>>>>> Thanks, >>>>>> Iqbal >>>>>> >>>>>> >>>>>> >>>>>> On Sun, Mar 1, 2015 at 12:30 PM, Tharindu Dharmarathna < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> >>>>>>> I wrote test case on APIDocDownload for the API Manager .When I Run >>>>>>> the tests It gives me two md5sums for equal files . >>>>>>> >>>>>>> here's the code sample I write to get md5 value from the files >>>>>>> >>>>>>> private String readMD5(InputStream inputStream) throws >>>>>>>> NoSuchAlgorithmException, IOException { >>>>>>>> MessageDigest md = MessageDigest.getInstance("MD5"); >>>>>>>> byte[] dataBytes = new byte[1024]; >>>>>>>> int read; >>>>>>>> try { >>>>>>>> while ((read = inputStream.read(dataBytes)) != -1) { >>>>>>>> md.update(dataBytes, 0, read); >>>>>>>> } >>>>>>>> } catch (IOException e) { >>>>>>>> log.error("File couldn't found to read md5", e); >>>>>>>> throw e; >>>>>>>> } finally { >>>>>>>> inputStream.close(); >>>>>>>> } >>>>>>>> byte[] mdBytes = md.digest(); >>>>>>>> //convert the byte to hex format >>>>>>>> StringBuilder sb = new StringBuilder(); >>>>>>>> for (byte mdByte : mdBytes) { >>>>>>>> sb.append(Integer.toString((mdByte & 0xff) + 0x100, >>>>>>>> 16).substring(1)); >>>>>>>> } >>>>>>>> return sb.toString(); >>>>>>>> } >>>>>>> >>>>>>> Is there any best way to get two files are identical ?. >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> *Tharindu Dharmarathna*Associate Software Engineer >>>>>>> WSO2 Inc.; http://wso2.com >>>>>>> lean.enterprise.middleware >>>>>>> >>>>>>> mobile: *+94779109091 <%2B94779109091>* >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> [email protected] >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Irham Iqbal >>>>>> Software Engineer - Test Automation >>>>>> WSO2, Inc.: http://wso2.com >>>>>> lean. enterprise. middleware >>>>>> phone: +94 777888452 >>>>>> >>>>>> _______________________________________________ >>>>>> Dev mailing list >>>>>> [email protected] >>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> With Regards, >>>>> >>>>> *Rasika Perera* >>>>> Software Engineer >>>>> M: +94 71 680 9060 E: [email protected] >>>>> LinkedIn: http://lk.linkedin.com/in/rasika90 >>>>> >>>>> WSO2 Inc. www.wso2.com >>>>> lean.enterprise.middleware >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> *Tharindu Dharmarathna*Associate Software Engineer >>>> WSO2 Inc.; http://wso2.com >>>> lean.enterprise.middleware >>>> >>>> mobile: *+94779109091 <%2B94779109091>* >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> Sajith Ariyarathna >>> Software Engineer; WSO2, Inc.; http://wso2.com/ >>> mobile: +94 77 6602284, +94 71 3951048 >>> >> >> >> >> -- >> >> *Tharindu Dharmarathna*Associate Software Engineer >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> >> mobile: *+94779109091 <%2B94779109091>* >> > > > > -- > > *Tharindu Dharmarathna*Associate Software Engineer > WSO2 Inc.; http://wso2.com > lean.enterprise.middleware > > mobile: *+94779109091 <%2B94779109091>* > -- With Regards, *Rasika Perera* Software Engineer M: +94 71 680 9060 E: [email protected] LinkedIn: http://lk.linkedin.com/in/rasika90 WSO2 Inc. www.wso2.com lean.enterprise.middleware
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
