jcifs eats InterruptedException
Igor Golikov <[email protected]> Fri, 6 Feb 2015 11:23:02 +0300
| Newsgroups | gmane.network.samba.java |
|---|---|
| Message-ID | <CAA+XuvMomzC+6tPYAiH=RY66W4yW2JNjhr2SU=HmFA-6DmFiBw@mail.gmail.com> |
--001a113602ac08f9e0050e6721b1
Content-Type: text/plain; charset=UTF-8
Hi all,
I found that it is impossible to interrupt thread that performs some
operations using jcifs.
Here is an example
java.lang.Object.wait(Object.java:-2)
java.lang.Object.wait(Object.java:503)
jcifs.UniAddress.lookupServerOrWorkgroup(UniAddress.java:176)
<----------- part A
jcifs.UniAddress.getAllByName(UniAddress.java:290)
jcifs.UniAddress.getByName(UniAddress.java:245) <----------- part B
jcifs.smb.Dfs.getTrustedDomains(Dfs.java:62)
jcifs.smb.Dfs.resolve(Dfs.java:167)
jcifs.smb.SmbFile.doConnect(SmbFile.java:902)
jcifs.smb.SmbFile.connect(SmbFile.java:954)
jcifs.smb.SmbFile.connect0(SmbFile.java:880)
jcifs.smb.SmbFile.open0(SmbFile.java:972)
jcifs.smb.SmbFile.open(SmbFile.java:1006)
jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:142)
jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:97)
jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:67)
Part A - replacing InterruptedException with UnknownHostException
============================================
...
} catch( InterruptedException ie ) {
throw new UnknownHostException( name );
}
...
Part B - hiding UnknownHostException
============================================
...
} catch (IOException ioe) {
if (log.level >= 3)
ioe.printStackTrace(log);
if (strictView && ioe instanceof SmbAuthException) {
throw (SmbAuthException)ioe;
}
}
...
Why it hides InterruptedException?
--001a113602ac08f9e0050e6721b1
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div>Hi all,</div><div><br></div><div>I found that it is i=
mpossible to interrupt thread that performs some operations using jcifs.</d=
iv><div><br></div><div>Here is an example</div><div><br></div><div>=C2=A0 =
=C2=A0 java.lang.Object.wait(Object.java:-2)</div><div>=C2=A0 =C2=A0 java.l=
ang.Object.wait(Object.java:503)</div><div>=C2=A0 =C2=A0 jcifs.UniAddress.l=
ookupServerOrWorkgroup(UniAddress.java:176) <----------- part A</div><di=
v>=C2=A0 =C2=A0 jcifs.UniAddress.getAllByName(UniAddress.java:290)</div><di=
v>=C2=A0 =C2=A0 jcifs.UniAddress.getByName(UniAddress.java:245) <-------=
---- part B</div><div>=C2=A0 =C2=A0 jcifs.smb.Dfs.getTrustedDomains(Dfs.jav=
a:62)</div><div>=C2=A0 =C2=A0 jcifs.smb.Dfs.resolve(Dfs.java:167)</div><div=
>=C2=A0 =C2=A0 jcifs.smb.SmbFile.doConnect(SmbFile.java:902)</div><div>=C2=
=A0 =C2=A0 jcifs.smb.SmbFile.connect(SmbFile.java:954)</div><div>=C2=A0 =C2=
=A0 jcifs.smb.SmbFile.connect0(SmbFile.java:880)</div><div>=C2=A0 =C2=A0 jc=
ifs.smb.SmbFile.open0(SmbFile.java:972)</div><div>=C2=A0 =C2=A0 jcifs.smb.S=
mbFile.open(SmbFile.java:1006)</div><div>=C2=A0 =C2=A0 jcifs.smb.SmbFileOut=
putStream.<init>(SmbFileOutputStream.java:142)</div><div>=C2=A0 =C2=
=A0 jcifs.smb.SmbFileOutputStream.<init>(SmbFileOutputStream.java:97)=
</div><div>=C2=A0 =C2=A0 jcifs.smb.SmbFileOutputStream.<init>(SmbFile=
OutputStream.java:67)</div><div><br></div><div><br></div><div>Part A - repl=
acing InterruptedException with UnknownHostException</div><div>=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div>...</div><div>} cat=
ch( InterruptedException ie ) {</div><div>=C2=A0 =C2=A0 throw new UnknownHo=
stException( name );</div><div>}</div><div>...</div><div><br></div><div><br=
></div><div>Part B - hiding UnknownHostException</div><div>=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</div><div>...</div><div>} catch =
(IOException ioe) {</div><div>=C2=A0 =C2=A0 if (log.level >=3D 3)</div><=
div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 ioe.printStackTrace(log);</div><div>=C2=A0 =
=C2=A0 if (strictView && ioe instanceof SmbAuthException) {</div><d=
iv>=C2=A0 =C2=A0 =C2=A0 =C2=A0 throw (SmbAuthException)ioe;</div><div>=C2=
=A0 =C2=A0 }</div><div>}</div><div>...</div><div><br></div><div><br></div><=
div>Why it hides InterruptedException?</div></div>
--001a113602ac08f9e0050e6721b1--