[jcifs] Problem reading files from a share
Ingo Rockel
irockel at pironet-ndh.com
Tue Nov 7 09:14:36 GMT 2006
Hi,
we did some further analysis and it looks like it is caused by this issue:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6448787
So my question: should UnicodeLittleUnmarked used from now on? (That
encoding works, see last comment in bug)
regards,
Ingo
Ingo Rockel schrieb:
> Hi Mike,
>
> thanx for the hint, but it looks like the mentioned code never gets
> called in the example, so no HexDump-Output.
>
> I've attached the example again inline, so it doesn't get stripped:
>
> import java.io.PrintStream;
> import java.net.URL;
> import jcifs.Config;
> import jcifs.smb.SmbFile;
>
> public class JCifsTest1
> {
> public static void main(String args[])
> throws Exception
> {
> if(args[0].lastIndexOf('/') != args[0].length() - 1)
> args[0] = args[0].substring(0, args[0].length() - 1);
> System.out.println("****** Argument: >>>" + args[0] + "<<<");
> System.out.println("****** new SmbFile");
> Config.registerSmbURLHandler();
> SmbFile smbfile = new SmbFile(args[0]);
> long l = System.currentTimeMillis();
> System.out.println("file.getURL().getPath(): " +
> smbfile.getURL().getPath());
> System.out.println("file.getPath(): " + smbfile.getPath());
> String s = smbfile.getURL().getPath();
> System.out.println("p: >>" + s + "<<");
> System.out.println("lastIndexOf: " + s.lastIndexOf('/'));
> System.out.println("length: " + s.length());
> if(s.lastIndexOf('/') != s.length() - 1)
> System.out.println("DEBUG: " + smbfile.getURL().getPath() +
> " directory must end with '/' !!!!");
> else
> System.out.println("DEBUG: " + smbfile.getURL().getPath() +
> " directory is ok");
> System.out.println();
> System.out.println();
> System.out.println();
> System.out.println();
> System.out.flush();
> System.out.println("****** file.listFiles");
> SmbFile asmbfile[] = smbfile.listFiles();
> long l1 = System.currentTimeMillis() - l;
> System.out.println("****** loop files");
> for(int i = 0; i < asmbfile.length; i++)
> System.out.println("****** " + asmbfile[i]);
>
> System.out.println();
> System.out.println(asmbfile.length + " files in " + l1 + "ms");
> }
> }
>
> thanx,
>
> Ingo
>
> Michael B Allen schrieb:
>> I think your attachment got stripped but it sure looks like an encoding
>> problem. But the fact that it happends in a new build of Sun's JRE is
>> interesting in itself. Try adding a Hexdump.hexdump() call just before
>> src/jcifs/smb/NetShareEnumResponse.java:105.
>>
>> Mike
>>
>> On Thu, 26 Oct 2006 14:44:49 +0200
>> Ingo Rockel <irockel at pironet-ndh.com> wrote:
>>
>>> Hi all,
>>>
>>> we recently switched to j2sdk1.4.2_12 and there we have a Problem
>>> fetching contents of a share using jcifs. The problem doesn't exists
>>> in j2sdk1.4.2_11 nor in jdk1.5.0_08 nor recent RC of 1.6.
>>>
>>> I've attached a small test class demonstrating the problem. The class
>>> tries to connect to a share passed as param (something like
>>> "smb://user:pw@some.machine/some_share/") and lists the content. With
>>> all jdks except 1.4.2_12 the result is ok, but with 1.4.2_12
>>> something like this is returned:
>>>
>>> ****** loop files
>>> ****** smb://x:x@some.server/webdav_test/?/
>>> ****** smb://x:x@some.server/webdav_test/??/
>>> ****** smb://x:x@some.server/webdav_test/???????????????
>>> ****** smb://x:x@some.server/webdav_test/????????????/
>>> ****** smb://x:x@some.server/webdav_test/??/
>>> ****** smb://x:x@some.server/webdav_test/??????????
>>> ****** smb://x:x@some.server/webdav_test/???????????????
>>>
>>> I tried connections to (german) win2000 and win2003 server, both
>>> return the result above. If connecting to a smb-server running on
>>> linux the result is ok. I tried setting jcifs.encoding to different
>>> values (cp1252, utf8) but without any success.
>>>
>>> I checked the release notes of 1.4.2_12 but anything of the changes
>>> looks like it affects this.
>>>
>>> Any Ideas?
>>>
>>> Ingo
>>>
>>> --
>>> PIRONET NDH AG
>>> Dipl. Inf. Ingo Rockel - Produktentwicklung
>>> Maarweg 149-161, 50825 Koeln
>>> Tel.: +49 (0)221-770-1788 / Fax: +49 (0)221-770-1005
>>> mailto:irockel at pironet-ndh.com - http://www.pironet-ndh.com
>>>
>>
>>
>
>
--
PIRONET NDH AG
Dipl. Inf. Ingo Rockel - Produktentwicklung
Maarweg 149-161, 50825 Koeln
Tel.: +49 (0)221-770-1788 / Fax: +49 (0)221-770-1005
mailto:irockel at pironet-ndh.com - http://www.pironet-ndh.com
More information about the jcifs
mailing list