AIMP Forum

AIMP for Android => Ошибки и замечания / Bugs => Обработано / Processed => Topic started by: NDS on February 19, 2020, 17:17:58

Title: [+] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: NDS on February 19, 2020, 17:17:58
Устройство: Redmi Note 8
Версия Android: 9.0
Версия MIUI: 11 (MiRoom 20.1.2)

Описание проблемы: Невозможно зайти в каталог внутри SMB ресурса.
Порядок действий:
1. Создать плейлист.
2. Нажать на + для открытия окна выбора файлов.
3. В меню с тремя точками выбрать "Добавить хранилище..." -> "Общая папка Windows".
4. В поле "Сервер" указать IP адрес сетевого хранилища, с разрешённым анонимным доступом.
5. Нажать "ОK".
6. Нажать на только что добавленный сетевой источник данных.
7. Отобразится список каталогов первого уровня.
8. Нажать на любой из каталог.
9. Выпадает ошибка: "jcifs.smb.SmbException: The system cannot find the file specified".
В заголовке окна отображается правильный путь, но содержимое каталога пустое.

Скриншот ошибки:
(https://i.imgur.com/K7dRob9.jpg) (https://i.imgur.com/byjppfg.jpg)
Title: Re: [965] Невозможно зайти в каталог внутри SMB ресурса
Post by: Zhenya on February 19, 2020, 17:55:09
4. В поле "Сервер" указать IP адрес сетевого хранилища, с разрешённым анонимным доступом.

У меня сабж не повторился. Но у меня Windows 8.1.
Какая ОС на сетевом хранилище? Windows 10? Возможно дело в этом — Не открываются общие сетевые SMB папки в Windows 10 (https://winitpro.ru/index.php/2018/01/24/ne-otkryvayutsya-smb-papki-posle-ustanovki-windows-10-1709/)?
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса
Post by: NDS on February 19, 2020, 22:34:37
Сетевое хранилище Diskstation от Synology.

В настройках включён минимальный протокол SMB версии 2. Понижение до версии 1 и последующей перезагрузкой NAS и AIMP не помогло.

(https://i.imgur.com/9KLEuhL.png)


Только что попробовал из AIMP в расшареный каталог в Windows 7 зайти - получилось! Значит что-то именно с NAS... Странно что в корневой каталог без проблем заходит!

P.S. Никогда не было проблем с доступом к NAS из Android приложений. Как минимум ES Explorer, Root Explorer ходят нормально.
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса
Post by: NDS on February 20, 2020, 20:44:54
Провёл ряд экспериментов.
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса
Post by: Artem on February 20, 2020, 21:55:11
Да, все верно, используется jcifs-ng, в их списке вроде как заявлена поддержка v2 и частичная v3.
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса
Post by: NDS on February 21, 2020, 11:46:44
Почитал про jcifs-ng. Оказывается это наследник старого jcifs, и действительно поддерживает SMB 2.02 и некоторые возможности из SMB 3.

Создал простой Maven проект на компе, подключил последнюю версию библиотеки (2.1.3). Файл с настройками jcifs.properties не создавал, поэтому все настройки по умолчанию. В коде AIMP нашёл только один программно установленный параметр jcifs.smb.client.disableIdleTimeout = true. Может не все нашёл?
import jcifs.CIFSContext;
import jcifs.context.SingletonContext;
import jcifs.smb.SmbFile;

import java.io.IOException;

public class Main {
    public static void main(String[] argv) throws IOException {

        CIFSContext context = SingletonContext.getInstance();

        String path = "smb://192.168.3.111/music/";

        SmbFile[] files = new SmbFile(path, context).listFiles();

        System.out.println("Объектов в каталоге: " + files.length);

        for (SmbFile file : files) {
            System.out.println(file.getName());
        }

    }
}

В результате ошибок нет.
Объектов в каталоге: 27
A/
B/
C/
D/
E/
F/
G/
H/
I/
J/
K/
L/
M/
N/
O/
P/
Q/
R/
S/
T/
U/
V/
W/
Y/
Z/
А-Я/
0-9/

Обратил внимание, что в debug.log файле AIMP вместо IP адреса или сетевого имени ресурса отображается guid. Например, "smb://3d2b325d-2fba-32c8-a2a7-127c80394eee". Может что-то с этим связано? Откуда он там берётся?
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: Artem on February 21, 2020, 22:40:36
Это интересно - вы не использовали никакой авторизации и сервер вас пропустил. Возможно, дело именно в этом. А в плеере вы указываете логин и пароль? или оставляете поля пустыми?

GUID показывается только наружу, реальный путь подставляется непосредственно при запросе.
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: NDS on February 22, 2020, 21:11:52
Это интересно - вы не использовали никакой авторизации и сервер вас пропустил.
Судя по коду класса SingletonContext, если не указано явно, он использует логин "GUEST" и пароль в виде пустой строки.

На всякий случай попробовал их указать явно, но результат тот же - ошибки нет.

import jcifs.CIFSContext;
import jcifs.context.SingletonContext;
import jcifs.smb.NtlmPasswordAuthenticator;
import jcifs.smb.SmbFile;

import java.io.IOException;

public class Main {
    public static void main(String[] argv) throws IOException {

        CIFSContext context = SingletonContext.getInstance();

        context.withCredentials(new NtlmPasswordAuthenticator(null, "GUEST", ""));

        String path = "smb://192.168.3.111/music/";

        SmbFile[] files = new SmbFile(path, context).listFiles();

        System.out.println("Объектов в каталоге: " + files.length);

        for (SmbFile file : files) {
            System.out.println(file.getName());
        }

    }
}

А в плеере вы указываете логин и пароль? или оставляете поля пустыми?
Указываю только поле Сервер, имя пользователя, где указано GUEST, и пустой пароль не трогаю.

(https://i.imgur.com/xCWiKsa.jpg)


Было подозрение что ошибка может быть связана с работой на Android устройстве. Написал простое аналогичное приложение. Подозрение не подтвердилось: в эмуляторе и на реальном телефоне работает без проблем.  ???

Хотел задебажить smali код где происходит вызов SmbFile[] listFiles = toFile(fileURI, true).listFiles(), но что-то значения регистров не удаётся посмотреть.
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: Artem on February 22, 2020, 23:08:45
У вас тут ошибка:

Code: [Select]
        context.withCredentials(new NtlmPasswordAuthenticator(null, "GUEST", ""));

Должно быть так:

Code: [Select]
        context = context.withCredentials(new NtlmPasswordAuthenticator(null, "GUEST", ""));
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: Artem on February 22, 2020, 23:14:02
Попробуйте эту сборку:
https://yadi.sk/d/RaZeFibvYuBVTA
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: NDS on February 23, 2020, 11:07:55
Попробуйте эту сборку:
https://yadi.sk/d/RaZeFibvYuBVTA
Без изменений.

Должно быть так:

Code: [Select]
        context = context.withCredentials(new NtlmPasswordAuthenticator(null, "GUEST", ""));
Действительно, не доглядел.

Перепроверил авторизационные данные по умолчанию. Вы были правы что не было указано никакой авторизации. Мой косяк. По умолчанию логин пустой.
(https://i.imgur.com/xRh9V92.png)

Как только правильно применил Credentials с логином "GUEST", появилась эта злосчастная ошибка "The system cannot find the file specified".

Ну и в итоге проверил в 965-ом билде: если логин указать пустым, то всё работает! *facepalm* *facepalm* *facepalm*
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: NDS on February 23, 2020, 12:38:27
Получается что cifs-ng вводит в заблуждение выбрасывая некорректную ошибку о том, что путь не найден.

Подключил логгер и действительно, есть промежуточная ошибка jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password, которая потом заменяется на cifs.smb.SmbException: The system cannot find the file specified. Интересно что после получения ответа что логин/пароль неправильные, он ещё зачем-то пытается обратиться по пути unc=\\192.168.3.111\IPC$.

12:25:34.834 [main] DEBUG jcifs.context.SingletonContext - Initializing singleton context
12:25:35.036 [main] DEBUG jcifs.smb.SmbTransportPoolImpl - New transport connection Transport0[0.0.0.0<00>/192.168.3.111:445,state=0,signingEnforced=false,usage=1]
12:25:35.036 [main] DEBUG jcifs.util.transport.Transport - Connecting Transport0
12:25:35.036 [Transport0] DEBUG jcifs.smb.SmbTransportImpl - Connecting in state 1 addr 192.168.3.111
12:25:35.084 [Transport0] DEBUG jcifs.smb.SmbTransportImpl - Negotiation response on Transport0 :jcifs.internal.SmbNegotiation@57fcf35f
12:25:35.085 [Transport0] DEBUG jcifs.smb.SmbTransportImpl - Signature negotiation enforced false (server false) enabled false (server true)
12:25:35.088 [main] DEBUG jcifs.smb.SmbTransportImpl - Establishing new session SmbSession[credentials=GUEST,targetHost=192.168.3.111,targetDomain=null,uid=0,connectionState=0,usage=1] on Transport0
12:25:35.092 [main] DEBUG jcifs.smb.SmbTreeImpl - Connection state was 0
12:25:35.092 [main] DEBUG jcifs.smb.SmbTreeImpl - treeConnect: unc=\\192.168.3.111\MUSIC,service=?????
12:25:35.093 [main] DEBUG jcifs.smb.SmbSessionImpl - sessionSetup: GUEST
12:25:35.093 [main] DEBUG jcifs.smb.SmbSessionImpl - Remote host is 192.168.3.111
12:25:35.296 [main] DEBUG jcifs.smb.NtlmPasswordAuthenticator - Have initial token NegTokenInit[flags=0,mechs=[1.3.6.1.4.1.311.2.2.10],mic=null]
12:25:35.306 [main] DEBUG jcifs.smb.SmbTransportImpl - Breaking on error command=SMB2_SESSION_SETUP,status=More data is available.,flags=0x0001,mid=2,wordCount=0,byteCount=0
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Sign key is A66B8B492D1253C4AE320EF988DD96FF
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Verify key is 7B112733E25AC50E251E07C1E74ED223
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Seal key is B7A97D0752B5F6A5483BEADDE989E81F
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Server seal key is 269C1C7740A90AFA32E85066D04E1EAE
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Digest A7218A670C178337D4D26406A701EF77
12:25:35.737 [main] DEBUG jcifs.smb.NtlmContext - Truncated A7218A670C178337
12:25:35.738 [main] DEBUG jcifs.smb.NtlmContext - Encrypted 0083249D6A0D6D1F
12:25:35.738 [main] DEBUG jcifs.smb.SpnegoContext - Out Mech list [1.3.6.1.4.1.311.2.2.10]
12:25:35.738 [main] DEBUG jcifs.smb.SpnegoContext - Out Mech list encoded 300C060A2B06010401823702020A
12:25:35.738 [main] DEBUG jcifs.smb.SpnegoContext - Out Mech list MIC 010000000083249D6A0D6D1F00000000
12:25:35.767 [main] DEBUG jcifs.smb.SmbSessionImpl - Session setup failed
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
   at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1426)
   at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
   at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
   at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
   at jcifs.smb.SmbSessionImpl.sessionSetupSMB2(SmbSessionImpl.java:549)
   at jcifs.smb.SmbSessionImpl.sessionSetup(SmbSessionImpl.java:483)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:369)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:347)
   at jcifs.smb.SmbTreeImpl.treeConnect(SmbTreeImpl.java:611)
   at jcifs.smb.SmbTreeConnection.connectTree(SmbTreeConnection.java:614)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:568)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
   at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
   at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
   at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:551)
   at jcifs.smb.SmbEnumerationUtil.doEnum(SmbEnumerationUtil.java:221)
   at jcifs.smb.SmbEnumerationUtil.listFiles(SmbEnumerationUtil.java:279)
   at jcifs.smb.SmbFile.listFiles(SmbFile.java:1199)
   at Main.main(Main.java:17)
12:25:35.767 [main] DEBUG jcifs.smb.SmbTreeImpl - Disconnect tree on treeConnectFailure
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
   at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1426)
   at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
   at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
   at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
   at jcifs.smb.SmbSessionImpl.sessionSetupSMB2(SmbSessionImpl.java:549)
   at jcifs.smb.SmbSessionImpl.sessionSetup(SmbSessionImpl.java:483)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:369)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:347)
   at jcifs.smb.SmbTreeImpl.treeConnect(SmbTreeImpl.java:611)
   at jcifs.smb.SmbTreeConnection.connectTree(SmbTreeConnection.java:614)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:568)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
   at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
   at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
   at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:551)
   at jcifs.smb.SmbEnumerationUtil.doEnum(SmbEnumerationUtil.java:221)
   at jcifs.smb.SmbEnumerationUtil.listFiles(SmbEnumerationUtil.java:279)
   at jcifs.smb.SmbFile.listFiles(SmbFile.java:1199)
   at Main.main(Main.java:17)
12:25:35.767 [main] DEBUG jcifs.smb.SmbTreeConnection - Authentication failed
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
   at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1426)
   at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
   at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
   at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
   at jcifs.smb.SmbSessionImpl.sessionSetupSMB2(SmbSessionImpl.java:549)
   at jcifs.smb.SmbSessionImpl.sessionSetup(SmbSessionImpl.java:483)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:369)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:347)
   at jcifs.smb.SmbTreeImpl.treeConnect(SmbTreeImpl.java:611)
   at jcifs.smb.SmbTreeConnection.connectTree(SmbTreeConnection.java:614)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:568)
   at jcifs.smb.SmbTreeConnection.connectHost(SmbTreeConnection.java:489)
   at jcifs.smb.SmbTreeConnection.connect(SmbTreeConnection.java:465)
   at jcifs.smb.SmbTreeConnection.connectWrapException(SmbTreeConnection.java:426)
   at jcifs.smb.SmbFile.ensureTreeConnected(SmbFile.java:551)
   at jcifs.smb.SmbEnumerationUtil.doEnum(SmbEnumerationUtil.java:221)
   at jcifs.smb.SmbEnumerationUtil.listFiles(SmbEnumerationUtil.java:279)
   at jcifs.smb.SmbFile.listFiles(SmbFile.java:1199)
   at Main.main(Main.java:17)
12:25:35.767 [main] DEBUG jcifs.smb.SmbTransportImpl - Establishing new session SmbSession[credentials=,targetHost=192.168.3.111,targetDomain=null,uid=0,connectionState=0,usage=1] on Transport0
12:25:35.767 [main] DEBUG jcifs.smb.SmbTreeImpl - Connection state was 0
12:25:35.768 [main] DEBUG jcifs.smb.SmbTreeImpl - treeConnect: unc=\\192.168.3.111\IPC$,service=?????
12:25:35.768 [main] DEBUG jcifs.smb.SmbSessionImpl - sessionSetup:
12:25:35.768 [main] DEBUG jcifs.smb.SmbSessionImpl - Remote host is 192.168.3.111
12:25:35.768 [main] DEBUG jcifs.smb.NtlmPasswordAuthenticator - Have initial token NegTokenInit[flags=0,mechs=[1.3.6.1.4.1.311.2.2.10],mic=null]
12:25:35.770 [main] DEBUG jcifs.smb.SmbTransportImpl - Breaking on error command=SMB2_SESSION_SETUP,status=More data is available.,flags=0x0001,mid=4,wordCount=0,byteCount=0
12:25:35.796 [main] DEBUG jcifs.smb.SmbSessionImpl - Context is established
12:25:35.796 [main] DEBUG jcifs.smb.SmbSessionImpl - No digest setup true B false
12:25:35.986 [main] DEBUG jcifs.smb.SmbTreeImpl - Secure negotiation does not apply
12:25:35.986 [main] DEBUG jcifs.smb.SmbTreeConnection - Anonymous retry succeeded
12:25:35.986 [main] DEBUG jcifs.smb.SmbTreeConnection - Switching tree
12:25:35.986 [main] DEBUG jcifs.smb.SmbTreeConnection - Acquired tree on switch SmbTree[share=IPC$,service=null,tid=-1470021481,inDfs=false,inDomainDfs=false,connectionState=2,usage=1]
12:25:35.988 [main] DEBUG jcifs.smb.SmbTreeImpl - Usage dropped to zero, release session
12:25:35.993 [main] DEBUG j.i.smb2.create.Smb2CreateRequest - Opening
12:25:35.993 [main] DEBUG j.i.smb2.create.Smb2CreateRequest - Flags are 0000
12:25:35.995 [Transport0] DEBUG jcifs.smb.SmbTransportImpl - Compound next command 0 read size 80 remain 80
12:25:35.996 [main] DEBUG jcifs.smb.SmbTransportImpl - Error code: 0xC0000034 for Smb2CreateRequest
12:25:35.996 [main] DEBUG jcifs.smb.SmbTreeConnection - Not retrying
jcifs.smb.SmbException: The system cannot find the file specified.
   at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1457)
   at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
   at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
   at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:409)
   at jcifs.smb.SmbTreeImpl.send(SmbTreeImpl.java:472)
   at jcifs.smb.SmbTreeConnection.send0(SmbTreeConnection.java:404)
   at jcifs.smb.SmbTreeConnection.send(SmbTreeConnection.java:318)
   at jcifs.smb.SmbTreeConnection.send(SmbTreeConnection.java:298)
   at jcifs.smb.SmbTreeHandleImpl.send(SmbTreeHandleImpl.java:130)
   at jcifs.smb.SmbTreeHandleImpl.send(SmbTreeHandleImpl.java:117)
   at jcifs.smb.DirFileEntryEnumIterator2.open(DirFileEntryEnumIterator2.java:94)
   at jcifs.smb.DirFileEntryEnumIteratorBase.<init>(DirFileEntryEnumIteratorBase.java:67)
   at jcifs.smb.DirFileEntryEnumIterator2.<init>(DirFileEntryEnumIterator2.java:56)
   at jcifs.smb.SmbEnumerationUtil.doEnum(SmbEnumerationUtil.java:223)
   at jcifs.smb.SmbEnumerationUtil.listFiles(SmbEnumerationUtil.java:279)
   at jcifs.smb.SmbFile.listFiles(SmbFile.java:1199)
   at Main.main(Main.java:17)
12:25:35.996 [main] DEBUG jcifs.smb.SmbTreeConnection - Tree connection no longer in use, release tree SmbTree[share=IPC$,service=null,tid=-1470021481,inDfs=false,inDomainDfs=false,connectionState=2,usage=2]
12:25:35.996 [main] DEBUG jcifs.smb.SmbTreeImpl - Usage dropped to zero, release session
12:25:35.996 [main] DEBUG jcifs.smb.SmbSessionImpl - Usage dropped to zero, release connection Transport0[0.0.0.0<00>/192.168.3.111:445,state=3,signingEnforced=false,usage=2]
12:25:35.998 [Thread-0] DEBUG jcifs.smb.SmbTransportPoolImpl - Closing pool
12:25:35.998 [Thread-0] WARN  jcifs.smb.SmbTransportImpl - Disconnecting transport while still in use Transport0[0.0.0.0<00>/192.168.3.111:445,state=5,signingEnforced=false,usage=1]: [SmbSession[credentials=GUEST,targetHost=192.168.3.111,targetDomain=null,uid=0,connectionState=0,usage=3], SmbSession[credentials=,targetHost=192.168.3.111,targetDomain=null,uid=0,connectionState=2,usage=0]]
12:25:35.999 [Thread-0] DEBUG jcifs.smb.SmbTransportImpl - Disconnecting transport Transport0[0.0.0.0<00>/192.168.3.111:445,state=5,signingEnforced=false,usage=1]
12:25:35.999 [Thread-0] DEBUG jcifs.smb.SmbSessionImpl - Logging off session on Transport0[0.0.0.0<00>/192.168.3.111:445,state=5,signingEnforced=false,usage=2]
12:25:35.999 [Thread-0] DEBUG jcifs.smb.SmbSessionImpl - Disconnect tree on logoff
12:25:35.999 [Thread-0] DEBUG jcifs.smb.SmbSessionImpl - Reacquire transport
12:25:36.000 [Thread-0] DEBUG jcifs.util.transport.Transport - Trying to connect a disconnected transport
12:25:36.000 [Thread-0] DEBUG jcifs.smb.SmbSessionImpl - Usage dropped to zero, release connection Transport0[0.0.0.0<00>/192.168.3.111:445,state=5,signingEnforced=false,usage=3]
12:25:36.001 [Thread-0] DEBUG jcifs.util.transport.Transport - Trying to connect a disconnected transport
12:25:36.002 [Thread-0] DEBUG jcifs.smb.SmbTransportPoolImpl - Removing transport connection Transport0[0.0.0.0<00>/192.168.3.111:445,state=5,signingEnforced=false,usage=1] (353453645)
12:25:36.003 [Transport0] DEBUG jcifs.util.transport.Transport - recv failed
java.net.SocketException: Socket Closed
   at java.net.SocketInputStream.socketRead0(Native Method)
   at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
   at java.net.SocketInputStream.read(SocketInputStream.java:171)
   at java.net.SocketInputStream.read(SocketInputStream.java:141)
   at jcifs.util.transport.Transport.readn(Transport.java:70)
   at jcifs.smb.SmbTransportImpl.peekKey(SmbTransportImpl.java:824)
   at jcifs.util.transport.Transport.loop(Transport.java:420)
   at jcifs.util.transport.Transport.run(Transport.java:769)
   at java.lang.Thread.run(Thread.java:745)
Exception in thread "main" cifs.smb.SmbException: The system cannot find the file specified.
   at jcifs.smb.SmbTransportImpl.checkStatus2(SmbTransportImpl.java:1457)
   at jcifs.smb.SmbTransportImpl.checkStatus(SmbTransportImpl.java:1568)
   at jcifs.smb.SmbTransportImpl.sendrecv(SmbTransportImpl.java:1023)
   at jcifs.smb.SmbTransportImpl.send(SmbTransportImpl.java:1539)
   at jcifs.smb.SmbSessionImpl.send(SmbSessionImpl.java:409)
   at jcifs.smb.SmbTreeImpl.send(SmbTreeImpl.java:472)
   at jcifs.smb.SmbTreeConnection.send0(SmbTreeConnection.java:404)
   at jcifs.smb.SmbTreeConnection.send(SmbTreeConnection.java:318)
   at jcifs.smb.SmbTreeConnection.send(SmbTreeConnection.java:298)
   at jcifs.smb.SmbTreeHandleImpl.send(SmbTreeHandleImpl.java:130)
   at jcifs.smb.SmbTreeHandleImpl.send(SmbTreeHandleImpl.java:117)
   at jcifs.smb.DirFileEntryEnumIterator2.open(DirFileEntryEnumIterator2.java:94)
   at jcifs.smb.DirFileEntryEnumIteratorBase.<init>(DirFileEntryEnumIteratorBase.java:67)
   at jcifs.smb.DirFileEntryEnumIterator2.<init>(DirFileEntryEnumIterator2.java:56)
   at jcifs.smb.SmbEnumerationUtil.doEnum(SmbEnumerationUtil.java:223)
   at jcifs.smb.SmbEnumerationUtil.listFiles(SmbEnumerationUtil.java:279)
   at jcifs.smb.SmbFile.listFiles(SmbFile.java:1199)
   at Main.main(Main.java:17)

Process finished with exit code 1
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: NDS on February 23, 2020, 14:06:12
Ошибка действительно в cifs-ng и была исправлена три месяца назад в ветке master, но нового релиза с тех пор не было.

Если авторизация к шаре не удалась, то выполнялось подключение не к той же шаре, а к "корневой" - IPC$.

https://github.com/preempt/jcifs-ng/commit/a15b4958a9f050ae4f51999774f5c29281f3c2d1#diff-306a608fd5b3b5107f9da6da26f8155d

Остаётся только дождаться следующего релиза библиотеки  :-\

В любом случае, спасибо за помощь и отличный плеер!
Title: Re: [?] [965] Невозможно зайти в каталог внутри SMB ресурса на Synology Diskstation
Post by: Artem on February 23, 2020, 23:26:05
Да можно попробовать самому из исходников собрать... Главное, что work-around есть.