You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2013/05/23 10:26:21 UTC
svn commit: r1485609 - in
/db/derby/code/trunk/java/engine/org/apache/derby/impl:
services/locks/LockSpace.java store/access/PropertyConglomerate.java
store/access/RAMAccessManager.java
Author: kahatlen
Date: Thu May 23 08:26:21 2013
New Revision: 1485609
URL: http://svn.apache.org/r1485609
Log:
DERBY-5840: Clean up compiler warnings introduced by using Java 5 language features
Make the declared type of the lock groups HashMap<Lock, Lock> instead
of HashMap<Lock, Object>.
Stop suppressing unchecked conversion warnings in
PropertyConglomerate, and make all conversions checked.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java?rev=1485609&r1=1485608&r2=1485609&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java Thu May 23 08:26:21 2013
@@ -53,7 +53,7 @@ import org.apache.derby.iapi.services.lo
final class LockSpace implements CompatibilitySpace {
/** Map from group references to groups of locks. */
- private final HashMap<Object,HashMap<Lock,Object>> groups;
+ private final HashMap<Object, HashMap<Lock, Lock>> groups;
/** Reference to the owner of this compatibility space. */
private final LockOwner owner;
@@ -61,8 +61,8 @@ final class LockSpace implements Compati
private static final int MAX_CACHED_GROUPS = 3;
/** Cached HashMaps for storing lock groups. */
- private final ArrayDeque<HashMap<Lock, Object>> spareGroups =
- new ArrayDeque<HashMap<Lock, Object>>(MAX_CACHED_GROUPS);
+ private final ArrayDeque<HashMap<Lock, Lock>> spareGroups =
+ new ArrayDeque<HashMap<Lock, Lock>>(MAX_CACHED_GROUPS);
// the Limit info.
private Object callbackGroup;
@@ -76,7 +76,7 @@ final class LockSpace implements Compati
* @param owner an object representing the owner of the compatibility space
*/
LockSpace(LockOwner owner) {
- groups = new HashMap<Object,HashMap<Lock,Object>>();
+ groups = new HashMap<Object, HashMap<Lock, Lock>>();
this.owner = owner;
}
@@ -97,11 +97,11 @@ final class LockSpace implements Compati
Lock lockInGroup = null;
- HashMap<Lock,Object> dl = groups.get(group);
+ HashMap<Lock, Lock> dl = groups.get(group);
if (dl == null) {
dl = getGroupMap(group);
} else if (lock.getCount() != 1) {
- lockInGroup = (Lock) dl.get(lock);
+ lockInGroup = dl.get(lock);
}
if (lockInGroup == null) {
@@ -145,7 +145,7 @@ final class LockSpace implements Compati
*/
synchronized void unlockGroup(LockTable lset, Object group) {
- HashMap<Lock,Object> dl = groups.remove(group);
+ HashMap<Lock, Lock> dl = groups.remove(group);
if (dl == null)
return;
@@ -160,17 +160,17 @@ final class LockSpace implements Compati
saveGroup(dl);
}
- private HashMap<Lock,Object> getGroupMap(Object group) {
- HashMap<Lock,Object> dl = spareGroups.poll();
+ private HashMap<Lock, Lock> getGroupMap(Object group) {
+ HashMap<Lock, Lock> dl = spareGroups.poll();
if (dl == null)
- dl = new HashMap<Lock,Object>(5, 0.8f);
+ dl = new HashMap<Lock, Lock>(5, 0.8f);
groups.put(group, dl);
return dl;
}
- private void saveGroup(HashMap<Lock, Object> dl) {
+ private void saveGroup(HashMap<Lock, Lock> dl) {
if (spareGroups.size() < MAX_CACHED_GROUPS) {
spareGroups.offer(dl);
dl.clear();
@@ -181,7 +181,7 @@ final class LockSpace implements Compati
Unlock all locks in the group that match the key
*/
synchronized void unlockGroup(LockTable lset, Object group, Matchable key) {
- HashMap<Lock,Object> dl = groups.get(group);
+ HashMap<Lock, Lock> dl = groups.get(group);
if (dl == null)
return; // no group at all
@@ -206,11 +206,11 @@ final class LockSpace implements Compati
}
synchronized void transfer(Object oldGroup, Object newGroup) {
- HashMap<Lock,Object> from = groups.get(oldGroup);
+ HashMap<Lock, Lock> from = groups.get(oldGroup);
if (from == null)
return;
- HashMap<Lock,Object> to = groups.get(newGroup);
+ HashMap<Lock, Lock> to = groups.get(newGroup);
if (to == null) {
// simple case
groups.put(newGroup, from);
@@ -237,11 +237,11 @@ final class LockSpace implements Compati
groups.remove(oldGroup);
}
- private void mergeGroups(HashMap<Lock,Object> from, HashMap<Lock,Object> into) {
+ private void mergeGroups(HashMap<Lock, Lock> from, HashMap<Lock, Lock> into) {
for (Lock lock : from.keySet()) {
- Object lockI = into.get(lock);
+ Lock lockI = into.get(lock);
if (lockI == null) {
// lock is only in from list
@@ -249,7 +249,7 @@ final class LockSpace implements Compati
} else {
// merge the locks
Lock fromL = lock;
- Lock intoL = (Lock) lockI;
+ Lock intoL = lockI;
intoL.count += fromL.getCount();
}
@@ -261,7 +261,7 @@ final class LockSpace implements Compati
Object qualifier, Object group) {
// look for locks matching our reference and qualifier.
- HashMap<Lock,Object> dl = groups.get(group);
+ HashMap<Lock, Lock> dl = groups.get(group);
if (dl == null)
return 0;
@@ -307,12 +307,11 @@ final class LockSpace implements Compati
synchronized boolean isLockHeld(Object group, Lockable ref, Object qualifier) {
// look for locks matching our reference and qualifier.
- HashMap<Lock,Object> dl = groups.get(group);
+ HashMap<Lock, Lock> dl = groups.get(group);
if (dl == null)
return false;
- Object heldLock = dl.get(new Lock(this, ref, qualifier));
- return (heldLock != null);
+ return dl.containsKey(new Lock(this, ref, qualifier));
}
synchronized void setLimit(Object group, int limit, Limit callback) {
@@ -347,7 +346,7 @@ final class LockSpace implements Compati
int count = 0;
- for (HashMap<Lock,Object> group: groups.values()) {
+ for (HashMap<Lock, Lock> group: groups.values()) {
for (Lock lock: group.keySet()) {
count += lock.getCount();
if (count > bail)
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java?rev=1485609&r1=1485608&r2=1485609&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/PropertyConglomerate.java Thu May 23 08:26:21 2013
@@ -96,7 +96,7 @@ class PropertyConglomerate
protected long propertiesConglomId;
protected Properties serviceProperties;
private LockFactory lf;
- private Dictionary cachedSet;
+ private Dictionary<String, Object> cachedSet;
private CacheLock cachedLock;
private PropertyFactory pf;
@@ -271,7 +271,7 @@ class PropertyConglomerate
else
{
synchronized (this) {
- Hashtable defaults = new Hashtable();
+ Hashtable<Object, Object> defaults = new Hashtable<Object, Object>();
getProperties(tc,defaults,false/*!stringsOnly*/,true/*defaultsOnly*/);
validate(key,value,defaults);
valueToSave = map(key,value,defaults);
@@ -360,13 +360,12 @@ class PropertyConglomerate
}
}
- @SuppressWarnings("unchecked")
void savePropertyDefault(TransactionController tc, String key, Serializable value)
throws StandardException
{
if (saveServiceProperty(key,value)) return;
- Hashtable<Object,Object> defaults = (Hashtable<Object,Object>)
+ FormatableHashtable defaults = (FormatableHashtable)
readProperty(tc,AccessFactoryGlobals.DEFAULT_PROPERTY_NAME);
if (defaults == null) defaults = new FormatableHashtable();
if (value==null)
@@ -381,7 +380,7 @@ class PropertyConglomerate
String key, Serializable value, boolean dbOnlyProperty)
throws StandardException
{
- Dictionary d = new Hashtable();
+ Dictionary<Object, Object> d = new Hashtable<Object, Object>();
getProperties(tc,d,false/*!stringsOnly*/,false/*!defaultsOnly*/);
Serializable mappedValue = pf.doValidateApplyAndMap(tc, key,
value, d, dbOnlyProperty);
@@ -656,13 +655,15 @@ class PropertyConglomerate
return getCachedPropertyDefault(tc,key,null);
}
}
-
- private Dictionary<String,Object> copyValues(Dictionary<String,Object> to, Dictionary<String,Object> from, boolean stringsOnly)
+
+ private <K, V> Dictionary<? super K, ? super V> copyValues(
+ Dictionary<? super K, ? super V> to,
+ Dictionary<K, V> from, boolean stringsOnly)
{
if (from == null) return to;
- for (Enumeration keys = from.keys(); keys.hasMoreElements(); ) {
- String key = (String) keys.nextElement();
- Object value = from.get(key);
+ for (Enumeration<K> keys = from.keys(); keys.hasMoreElements(); ) {
+ K key = keys.nextElement();
+ V value = from.get(key);
if ((value instanceof String) || !stringsOnly)
to.put(key, value);
}
@@ -679,28 +680,29 @@ class PropertyConglomerate
return p;
}
- @SuppressWarnings("unchecked")
public void getProperties(TransactionController tc,
- Dictionary d,
+ Dictionary<Object, Object> d,
boolean stringsOnly,
boolean defaultsOnly) throws StandardException
{
// See if I'm the exclusive owner. If so I cannot populate
// the cache as it would contain my uncommitted changes.
+ Dictionary<String, Object> dbProps;
if (iHoldTheUpdateLock(tc))
{
- Dictionary dbProps = readDbProperties(tc);
- Dictionary defaults = (Dictionary)dbProps.get(AccessFactoryGlobals.DEFAULT_PROPERTY_NAME);
- copyValues(d,defaults,stringsOnly);
- if (!defaultsOnly)copyValues(d,dbProps,stringsOnly);
+ dbProps = readDbProperties(tc);
}
else
{
- Dictionary dbProps = getCachedDbProperties(tc);
- Dictionary defaults = (Dictionary)dbProps.get(AccessFactoryGlobals.DEFAULT_PROPERTY_NAME);
- copyValues(d,defaults,stringsOnly);
- if (!defaultsOnly)copyValues(d,dbProps,stringsOnly);
+ dbProps = getCachedDbProperties(tc);
}
+
+ FormatableHashtable defaults = (FormatableHashtable)
+ dbProps.get(AccessFactoryGlobals.DEFAULT_PROPERTY_NAME);
+ copyValues(d, defaults, stringsOnly);
+ if (!defaultsOnly) {
+ copyValues(d, dbProps, stringsOnly);
+ }
}
void resetCache() {cachedSet = null;}
@@ -739,10 +741,11 @@ class PropertyConglomerate
return set;
}
- private Dictionary getCachedDbProperties(TransactionController tc)
+ private Dictionary<String, Object>
+ getCachedDbProperties(TransactionController tc)
throws StandardException
{
- Dictionary dbProps = cachedSet;
+ Dictionary<String, Object> dbProps = cachedSet;
//Get the cached set of properties.
if (dbProps == null)
{
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java?rev=1485609&r1=1485608&r2=1485609&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java Thu May 23 08:26:21 2013
@@ -876,7 +876,7 @@ public abstract class RAMAccessManager
// set up the initial values by calling the validate and apply methods.
// the map methods are not called as they will have been called
// at runtime when the user set the property.
- Dictionary d = new Hashtable();
+ Dictionary<Object, Object> d = new Hashtable<Object, Object>();
try {
xactProperties.getProperties(tc,d,false/*!stringsOnly*/,false/*!defaultsOnly*/);
} catch (StandardException se) {