X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Futil%2FPersistentObjectCache.java;h=17be956b10563cc1ebb20ae723434af4e8cf8038;hb=3ce0dd16e69302365d3bc802f298a5388b293d86;hp=c95f5037b232022e7ea7e0ea0ef49d8a6a91edbe;hpb=c65149247819e0719d2aad891954a389a607e830;p=Dictionary.git diff --git a/src/com/hughes/android/util/PersistentObjectCache.java b/src/com/hughes/android/util/PersistentObjectCache.java index c95f503..17be956 100644 --- a/src/com/hughes/android/util/PersistentObjectCache.java +++ b/src/com/hughes/android/util/PersistentObjectCache.java @@ -41,10 +41,10 @@ import java.util.Map; public class PersistentObjectCache { private final File dir; - private final Map objects = new HashMap(); + private final Map objects = new HashMap<>(); class ConstrainedOIS extends ObjectInputStream { - public ConstrainedOIS(InputStream in) throws IOException { + ConstrainedOIS(InputStream in) throws IOException { super(in); } @@ -52,16 +52,16 @@ public class PersistentObjectCache { String name = desc.getName(); // Note: try to avoid adding more classes. // LinkedHashMap is already more than enough for a DoS - if (!name.equals(ArrayList.class.getName()) && - !name.equals(HashMap.class.getName()) && - !name.equals(LinkedHashMap.class.getName()) && - !name.equals(String.class.getName()) && - !name.equals(DictionaryApplication.DictionaryConfig.class.getName()) && - !name.equals(DictionaryInfo.class.getName()) && - !name.equals(DictionaryInfo.IndexInfo.class.getName())) { - throw new InvalidClassException("Not allowed to deserialize class", name); + if (name.equals(String.class.getName()) || + name.equals(DictionaryInfo.IndexInfo.class.getName()) || + name.equals(ArrayList.class.getName()) || + name.equals(HashMap.class.getName()) || + name.equals(DictionaryInfo.class.getName()) || + name.equals(DictionaryApplication.DictionaryConfig.class.getName()) || + name.equals(LinkedHashMap.class.getName())) { + return super.resolveClass(desc); } - return super.resolveClass(desc); + throw new InvalidClassException("Not allowed to deserialize class", name); } } @@ -86,7 +86,7 @@ public class PersistentObjectCache { Log.e(getClass().getSimpleName(), "Deserialization failed: " + src, e); try { if (in != null) in.close(); - } catch (IOException e2) {} + } catch (IOException ignored) {} return null; } objects.put(filename, object); @@ -108,7 +108,7 @@ public class PersistentObjectCache { } try { if (out != null) out.close(); - } catch (IOException e) {} + } catch (IOException ignored) {} } private PersistentObjectCache(final Context context) {