[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