harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tony Wu" <wuyue...@gmail.com>
Subject Re: [classlib] [luni] Ignored Exceptions and HARMONY-2939
Date Wed, 10 Jan 2007 11:07:41 GMT
On 1/10/07, Sian January <sianjanuary@googlemail.com> wrote:
> Hi Tony,
>
> When I run this testcase with the RI I do see a SecurityException, but it's
> thrown from the call to new SecurityManager() on the last line of the test()
> method (and not the call to ucl.findResources("test.txt");).  So unless I'm
> doing something wrong it looks like the inconsistency between Harmony and
> the RI is not in the findResources method.
>

Oh, yes, you are right, that's another difference from RI. sorry for
inconvenience caused.

> Thanks,
>
> Sian
>
>
> On 09/01/07, Tony Wu <wuyuehao@gmail.com> wrote:
> >
> > I just scratched a testcase. It does cause a SecurityException on RI
> > whereas passes on Harmony. I post it below. Hope it could do some
> > help. bedtime ;-)
> >
> > public class Harmony2939 extends TestCase {
> >    public void test() throws IOException {
> >        URL[] urls = new URL[1];
> >        File dir = File.createTempFile("hytemp", "");
> >        dir.delete();
> >        dir.mkdir();
> >        File file = new File(dir.getPath() + "/test.txt");
> >        file.createNewFile();
> >        urls[0] = new URL("file:///" + dir.getPath()+"/");
> >        assertTrue(new File("/"+file.getAbsolutePath()).exists());
> >        URLClassLoader ucl = URLClassLoader.newInstance(urls);
> >        SecurityManager sm = new MySecurityManager(file.getPath());
> >        System.setSecurityManager(sm);
> >        ucl.findResources("test.txt");
> >        System.setSecurityManager(new SecurityManager());
> >    }
> >
> >    class MySecurityManager extends SecurityManager {
> >        private String dir;
> >        public MySecurityManager(String dir) {
> >            super();
> >            this.dir = dir;
> >        }
> >        public void checkPermission(Permission perm) {
> >            FilePermission p = new FilePermission(dir, "read");
> >            if(perm.equals(p)){
> >                throw new SecurityException();
> >            }
> >        }
> >    }
> > }
> >
> >
> > On 1/10/07, Sian January <sianjanuary@googlemail.com> wrote:
> > > Thanks Andrew and Alexey.  I tried writing a test case for the
> > > SecurityException as Andrew described and the RI does not throw an
> > > Exception, so it's definitely right that we should catch the
> > > SecurityException.  I'm still unsure about the IOException, especially
> > as
> > > the signature of the method states that an IOException is thrown, but if
> > it
> > > can't be tested then it's probably best to leave it.
> > >
> > > Sian
> > >
> > >
> > > On 09/01/07, Alexey Petrenko <alexey.a.petrenko@gmail.com> wrote:
> > > >
> > > > Sian,
> > > >
> > > > the logic looks OK for me in this method. SecurityException shows that
> > > > testing url should not be added to reduced list in this case.
> > > >
> > > > SY, Alexey
> > > >
> > > > 2007/1/8, Sian January <sianjanuary@googlemail.com>:
> > > > > Hello everyone,
> > > > >
> > > > > I have recently been looking at ignored Exceptions in luni (i.e.
> > places
> > > > > where an Exception is caught but the catch block is empty).  These
> > are
> > > > > generally a bad idea because if an Exception does occur it is lost
-
> > the
> > > > > user doesn't see it and it's not logged anywhere either, so if it
> > causes
> > > > a
> > > > > problem in the program it is very difficult to find the root cause.
> > > > >
> > > > > I would like to discuss one of these in particular, in
> > > > > URLCLassLoader.findResources where an IOException and a
> > > > > SecurityException are ignored.  Since the signature of the method
> > says
> > > > that
> > > > > it throws an IOException (and SecurityException is a subtype of
> > > > > RuntimeException) I thought the try-catch block could probably be
> > > > removed
> > > > > entirely.  However it is an API method and I am finding it difficult
> > to
> > > > > write a test case for this because I'm not sure how to force either
> > of
> > > > those
> > > > > Exceptions.
> > > > >
> > > > > Geir suggested it might be an interesting topic for the mailing list
> > so
> > > > > please post your thoughts.  Also if anyone knows how to write the
> > test
> > > > case
> > > > > that would be especially helpful.  Details at
> > > > > https://issues.apache.org/jira/browse/HARMONY-2939.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Sian
> > > > >
> > > > > --
> > > > > Sian January
> > > > >
> > > > > IBM Java Technology Centre, UK
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Sian January
> > >
> > > IBM Java Technology Centre, UK
> > >
> > >
> >
> >
> > --
> > Tony Wu
> > China Software Development Lab, IBM
> >
>
>
>
> --
> Sian January
>
> IBM Java Technology Centre, UK
>
>


-- 
Tony Wu
China Software Development Lab, IBM

Mime
View raw message