/hg/icedtea-web: Fixed "could not clear cache" message and cache...
Andrew Azores
aazores at redhat.com
Thu Sep 5 06:10:29 PDT 2013
On 09/05/13 05:28, Jacob Wisor wrote:
> Jiri Vanek wrote:
>> On 09/04/2013 07:49 PM, aazores at icedtea.classpath.org wrote:
>>> changeset bb8132ebc241 in /hg/icedtea-web
>>> details:
>>> http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=bb8132ebc241
>>>
>>> author: Andrew Azores <aazores at redhat.com>
>>> date: Wed Sep 04 13:48:42 2013 -0400
>>>
>>> Fixed "could not clear cache" message and cache location in
>>> CacheReproducer
>>>
>>>
>>> diffstat:
>>>
>>> ChangeLog | 8 +
>>> netx/net/sourceforge/jnlp/config/Defaults.java | 2 +-
>>> tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
>>> | 95 +++++----
>>> 3 files changed, 64 insertions(+), 41 deletions(-)
>>>
>>> diffs (228 lines):
>>>
>>> diff -r 6c0e37585a5e -r bb8132ebc241 ChangeLog
>>> --- a/ChangeLog Wed Sep 04 12:22:16 2013 -0400
>>> +++ b/ChangeLog Wed Sep 04 13:48:42 2013 -0400
>>> @@ -1,3 +1,11 @@
>>> +2013-09-04 Andrew Azores <aazores at redhat.com>
>>> +
>>> + * netx/net/sourceforge/jnlp/config/Defaults.java:
>>> (USER_CACHE_HOME) made
>>> + public for use in CacheReproducer
>>> + *
>>> tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest:
>>> + updated "could not clear cache" message and cache location.
>>> Other minor
>>> + cleanup
>>> +
>>> 2013-09-04 Andrew Azores <aazores at redhat.com>
>>>
>>> * netx/net/sourceforge/jnlp/security/SecurityDialogs.java:
>>> diff -r 6c0e37585a5e -r bb8132ebc241
>>> netx/net/sourceforge/jnlp/config/Defaults.java
>>> --- a/netx/net/sourceforge/jnlp/config/Defaults.java Wed Sep 04
>>> 12:22:16 2013 -0400
>>> +++ b/netx/net/sourceforge/jnlp/config/Defaults.java Wed Sep 04
>>> 13:48:42 2013 -0400
>>> @@ -55,7 +55,7 @@
>>> final static String SYSTEM_HOME =
>>> System.getProperty("java.home");
>>> final static String SYSTEM_SECURITY = SYSTEM_HOME +
>>> File.separator + "lib" + File.separator + "security";
>>> final static String USER_CONFIG_HOME;
>>> - final static String USER_CACHE_HOME;
>>> + public final static String USER_CACHE_HOME;
>>> final static String USER_SECURITY;
>>> final static String LOCKS_DIR =
>>> System.getProperty("java.io.tmpdir") + File.separator
>>> + System.getProperty("user.name") + File.separator +
>>> "netx" + File.separator
>>> diff -r 6c0e37585a5e -r bb8132ebc241
>>> tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
>>>
>>> ---
>>> a/tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
>>> Wed Sep 04 12:22:16 2013 -0400
>>> +++
>>> b/tests/reproducers/signed/CacheReproducer/testcases/CacheReproducerTest.java
>>> Wed Sep 04 13:48:42 2013 -0400
>>> @@ -44,11 +44,13 @@
>>> import java.io.UnsupportedEncodingException;
>>> import java.util.Arrays;
>>> import java.util.List;
>>> +import java.util.PropertyResourceBundle;
>>> import java.util.regex.Matcher;
>>> import java.util.regex.Pattern;
>>> import net.sourceforge.jnlp.ServerAccess;
>>> -import net.sourceforge.jnlp.ServerAccess.ProcessResult;
>>> +import net.sourceforge.jnlp.ProcessResult;
>>> import net.sourceforge.jnlp.annotations.KnownToFail;
>>> +import net.sourceforge.jnlp.config.Defaults;
>>> import org.junit.AfterClass;
>>> import org.junit.Assert;
>>>
>>> @@ -60,24 +62,37 @@
>>> private static final List<String> clear = Arrays.asList(new
>>> String[]{server.getJavawsLocation(), "-Xclearcache",
>>> ServerAccess.HEADLES_OPTION});
>>> private static final List<String> trustedVerboses =
>>> Arrays.asList(new String[]{"-Xtrustall",
>>> ServerAccess.HEADLES_OPTION,"-verbose"});
>>> private static final List<String> verbosed = Arrays.asList(new
>>> String[]{"-verbose", ServerAccess.HEADLES_OPTION});
>>> - private static final String home =
>>> System.getProperty("user.home");
>>> - private static final String name =
>>> System.getProperty("user.name");
>>> - private static final String tmp =
>>> System.getProperty("java.io.tmpdir");
>>> - private static final File icedteaDir = new File(home + "/" +
>>> ".icedtea");
>>> - private static final File icedteaCache = new File(icedteaDir,
>>> "cache");
>>> - private static final File icedteaCacheFile = new
>>> File(icedteaCache, "recently_used");
>>> - private static final File netxLock = new File(tmp + "/" + name
>>> + "/netx/locks/netx_running");
>>> +
>>> private static final String lre = "LruCacheException";
>>> private static final String ioobe = "IndexOutOfBoundsException";
>>> private static final String corruptRegex = "\\d{13}";
>>> private static final Pattern corruptPatern =
>>> Pattern.compile(corruptRegex);
>>> private static final String corruptString = "156dsf1562kd5";
>>>
>>> - String testS = "#netx file\n"
>>> - + "#Mon Dec 12 16:20:46 CET 2011\n"
>>> - +
>>> "1323703236508,0=/home/xp13/.icedtea/cache/0/http/localhost/ReadPropertiesBySignedHack.jnlp\n"
>>>
>>> - +
>>> "1323703243086,2=/home/xp14/.icedtea/cache/2/http/localhost/ReadProperties.jar\n"
>>>
>>> - +
>>> "1323703243082,1=/home/xp15/.icedtea/cache/1/http/localhost/ReadPropertiesBySignedHack.jar";
>>>
>>> + private static final File icedteaCache = new
>>> File(Defaults.USER_CACHE_HOME, "cache");
>>> + private static final File icedteaCacheFile = new
>>> File(icedteaCache, "recently_used");
>>> + private static final File netxLock = new
>>> File(System.getProperty("java.io.tmpdir"),
>>> + System.getProperty("user.name") + File.separator +
>>> + "netx" + File.separator +
>>> + "locks" + File.separator +
>>> + "netx_running");
>>> +
>>> + private static final String messageResourcePath =
>>> "net/sourceforge/jnlp/resources/Messages.properties";
>>> + private static PropertyResourceBundle messageBundle = null;
>>> +
>>> + static {
>>> + try {
>>> + messageBundle =
>>> + new
>>> PropertyResourceBundle(CacheReproducerTest.class.getClassLoader().getResourceAsStream(messageResourcePath));
>>>
>>> + } catch (IOException e) {
>>> + }
>>> + }
>>> +
>>
>> Pleae NEVER consume an exception.
>>
>> In this case the
>>
>> } catch (IOException ex) {
>> throw new RuntimeException(ex);
>> }
>
> Throwing a chained RuntimeException is going to disrupt the program's
> flow. So, I would rather advise
>
> } catch (IOException e) {
> e.printStackTrace();
> }
>
> This will make IOException at least visible on stderr and preserve
> what has been previously intended, namely continuing program execution
> undisrupted.
>
>> Would be the best. You can push this without any other review (unless
>> you think about different fix)
>
> Regards,
> Jacob
As Jacob says, I'd rather not throw a chained exception here because
that would cause the entire reproducer to halt, would it not? But if the
messageBundle is not properly instantiated that's only really a blocker
for one test (clearCacheUnsucessfully). This exception being consumed
would manifest as a NPE in that later test, which would just result in
that single test failing. Printing the stack trace is agreeable enough
but I don't really think the entire reproducer needs to stop if we're
going to be unable to run one test.
Thanks,
--
Andrew A
More information about the distro-pkg-dev
mailing list