public int getMappingFor(ObjectStreamClass desc) throws IOException { desc = prune(desc); ComparisonSerializableDataKey key = new ComparisonSerializableDataKey(desc); Integer value = (Integer) mappings.unsafeGet(key); if (value != null) { return value.intValue(); } if (locked) ManagerUtil.monitorEnter(writeLock, Manager.LOCK_TYPE_WRITE); try { value = (Integer) mappings.get(key); if (value != null) { return value.intValue(); } value = addMapping(desc); } finally { if (locked) ManagerUtil.monitorExit(writeLock, Manager.LOCK_TYPE_WRITE); } return value.intValue(); }
public int getMappingFor(ObjectStreamClass desc) throws IOException { desc = prune(desc); ComparisonSerializableDataKey key = new ComparisonSerializableDataKey(desc); Integer value = (Integer) mappings.unsafeGet(key); if (value != null) { return value.intValue(); } if (locked) ManagerUtil.monitorEnter(writeLock, Manager.LOCK_TYPE_WRITE); try { value = (Integer) mappings.get(key); if (value != null) { return value.intValue(); } value = addMapping(desc); } finally { if (locked) ManagerUtil.monitorExit(writeLock, Manager.LOCK_TYPE_WRITE); } return value.intValue(); }
private static boolean equals(SerializableDataKey k1, ComparisonSerializableDataKey k2) { if (k1.forClass() != null && k2.forClass() != null) { return k1.forClass() == k2.forClass(); } else if (k1.getFieldCount() == k2.getFieldCount() && Arrays.equals(k1.getSerializedOsc(), k2.getSerializedOsc())) { if (k1.forClass() == null && k2.forClass() != null) { k1.setClass(k2.forClass()); } return true; } else { return false; } }
private static boolean equals(SerializableDataKey k1, ComparisonSerializableDataKey k2) { if (k1.forClass() != null && k2.forClass() != null) { return k1.forClass() == k2.forClass(); } else if (k1.getFieldCount() == k2.getFieldCount() && Arrays.equals(k1.getSerializedOsc(), k2.getSerializedOsc())) { if (k1.forClass() == null && k2.forClass() != null) { k1.setClass(k2.forClass()); } return true; } else { return false; } }