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*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
