diff --git a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/DBAnnotatedObject.java b/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/DBAnnotatedObject.java index 66d1f204b3..76066b4ae1 100644 --- a/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/DBAnnotatedObject.java +++ b/Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/DBAnnotatedObject.java @@ -281,17 +281,6 @@ public class DBAnnotatedObject extends DbObject { return store.table.getRecord(key); } - @Override - protected boolean refresh() { - try (LockHold hold = LockHold.lock(store.readLock())) { - return doRefresh(null); - } - catch (IOException e) { - adapter.dbError(e); - return false; - } - } - @Override protected boolean refresh(DBRecord rec) { try (LockHold hold = LockHold.lock(store.readLock())) { diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/program/database/ObjectCacheTest.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/program/database/ObjectCacheTest.java index ac8a2a3798..034e4921c7 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/program/database/ObjectCacheTest.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/program/database/ObjectCacheTest.java @@ -194,10 +194,12 @@ public class ObjectCacheTest extends AbstractGhidraHeadedIntegrationTest { } @Override - protected boolean refresh() { - DBRecord refreshedRecord = database.get(record.getKey()); - if (refreshedRecord != null) { - record = refreshedRecord; + protected boolean refresh(DBRecord rec) { + if (rec == null) { + rec = database.get(record.getKey()); + } + if (rec != null) { + record = rec; return true; } return false; diff --git a/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/FunctionRecord.java b/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/FunctionRecord.java index 1a49f2c5d1..0c3c7534ec 100644 --- a/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/FunctionRecord.java +++ b/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/FunctionRecord.java @@ -235,7 +235,7 @@ public class FunctionRecord extends DbObject implements FidHashQuad { * Never need to refresh...this database object is immutable. */ @Override - protected boolean refresh() { + protected boolean refresh(DBRecord rec) { return false; } } diff --git a/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/StringRecord.java b/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/StringRecord.java index e21a4ab302..699f525c44 100644 --- a/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/StringRecord.java +++ b/Ghidra/Features/FunctionID/src/main/java/ghidra/feature/fid/db/StringRecord.java @@ -15,6 +15,7 @@ */ package ghidra.feature.fid.db; +import db.DBRecord; import ghidra.program.database.DbObject; /** @@ -48,7 +49,7 @@ public class StringRecord extends DbObject { * Never need to refresh...this database object is immutable. */ @Override - protected boolean refresh() { + protected boolean refresh(DBRecord rec) { return false; } } diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/MarkupItemStorageDB.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/MarkupItemStorageDB.java index 214ae596fb..1b1459d196 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/MarkupItemStorageDB.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/MarkupItemStorageDB.java @@ -177,11 +177,6 @@ public class MarkupItemStorageDB extends DbObject implements MarkupItemStorage { return this; } - @Override - protected boolean refresh() { - return refresh(null); - } - @Override protected boolean refresh(DBRecord matchRecord) { if (matchRecord == null) { diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTAssociationDB.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTAssociationDB.java index a70d230e2e..49c9d407e4 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTAssociationDB.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTAssociationDB.java @@ -78,11 +78,6 @@ public class VTAssociationDB extends DbObject implements VTAssociation { getSourceAddress(), getDestinationAddress()); } - @Override - protected boolean refresh() { - return refresh(null); - } - @Override protected boolean refresh(DBRecord associationRecord) { if (associationRecord == null) { diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchDB.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchDB.java index e5017c7958..c3f6d2c5bd 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchDB.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchDB.java @@ -50,11 +50,6 @@ public class VTMatchDB extends DbObject implements VTMatch { lock = session.getLock(); } - @Override - protected boolean refresh() { - return refresh(null); - } - @Override protected boolean refresh(DBRecord matchRecord) { association = null; diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchSetDB.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchSetDB.java index 45df05c5d8..1e8c6573e2 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchSetDB.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchSetDB.java @@ -289,7 +289,7 @@ public class VTMatchSetDB extends DbObject implements VTMatchSet { } @Override - protected boolean refresh() { + protected boolean refresh(DBRecord rec) { // MatchSets are not cached, so this method is not used return true; } diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchTagDB.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchTagDB.java index e572947b83..38fb85f66d 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchTagDB.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/api/db/VTMatchTagDB.java @@ -54,19 +54,20 @@ public class VTMatchTagDB extends DbObject implements VTMatchTag { } @Override - protected boolean refresh() { - DBRecord rec = null; + protected boolean refresh(DBRecord rec) { try { - rec = sessionDB.getTagRecord(key); + if (rec == null) { + rec = sessionDB.getTagRecord(key); + } + if (rec != null) { + record = rec; + return true; + } } catch (IOException e) { sessionDB.dbError(e); } - if (rec == null) { - return false; - } - record = rec; - return true; + return false; } /** diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DbObject.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DbObject.java index 25ed8477f4..5883edd597 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DbObject.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/DbObject.java @@ -197,7 +197,7 @@ public abstract class DbObject { /** * Internal method for performing a refresh on a database object. This method may be called - * recursively, which is can detect and short circuit. + * recursively, which it can detect and short circuit. * @param record a known valid record the object can use to refresh itself or null. If null * the object will have to do its own database retrieval of its record. */ @@ -258,20 +258,16 @@ public abstract class DbObject { } /** - * Tells the object to refresh its state from the database. - * - * @return true if the object was able to refresh itself. Return false if the object was - * deleted. Objects that extend this class must implement a refresh method. If an object - * can never refresh itself, then it should always return false. - */ - protected abstract boolean refresh(); - - /** - * Tells the object to refresh its state from the database using the specified record if not - * null. NOTE: The default implementation ignores the record and invokes refresh(). - * Implementations of this method must take care if multiple database tables are used since the - * record supplied could correspond to another object. In some cases it may be best not to - * override this method or ignore the record provided. + * Tells the object to refresh its state from the database using the specified record if + * provided. The record may be null and the object is generally expected to be able to + * retrieve its own record from the database as needed. Is is mostly passed as a parameter for + * efficiency to keep an object from having to look up its record when the client already has + * the record in hand such as when it is iterating over records. + *
+ * This method generally should not be called directly as it provides no recursion protection. Instead,
+ * most clients should call {@link #refreshIfNeeded()} instead which WILL provide recursion protection.
+ * If clients must call this method, they either need to provided their own recursion protection or
+ * be absolutely certain that recursive calls won't occur.
*
* @param record valid record associated with object's key (optional, may be null to force
* record lookup or other refresh technique)
@@ -279,8 +275,6 @@ public abstract class DbObject {
* object was deleted. Objects that extend this class must implement a refresh method.
* If an object can never refresh itself, then it should always return false.
*/
- protected boolean refresh(DBRecord record) {
- return refresh();
- }
+ protected abstract boolean refresh(DBRecord record);
}
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/bookmark/BookmarkDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/bookmark/BookmarkDB.java
index 02bdcfd11a..818f5382f3 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/bookmark/BookmarkDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/bookmark/BookmarkDB.java
@@ -121,11 +121,6 @@ public class BookmarkDB extends DbObject implements Bookmark {
}
}
- @Override
- protected boolean refresh() {
- return refresh(null);
- }
-
@Override
protected boolean refresh(DBRecord rec) {
if (rec == null) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeUnitDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeUnitDB.java
index 8df5ec67c0..25399cc2cf 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeUnitDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeUnitDB.java
@@ -80,11 +80,6 @@ abstract class CodeUnitDB extends DbObject implements CodeUnit, ProcessorContext
programContext = program.getProgramContext();
}
- @Override
- protected boolean refresh() {
- return refresh(null);
- }
-
@Override
protected boolean refresh(DBRecord record) {
address = codeMgr.getAddressMap().decodeAddress(addr);
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java
index 72606a288b..f63d4bff1d 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/ArrayDB.java
@@ -73,13 +73,16 @@ class ArrayDB extends DataTypeDB implements Array {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
elementLength = -1;
- DBRecord rec = adapter.getRecord(key);
+ if (rec == null) {
+ rec = adapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CategoryDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CategoryDB.java
index 683107a829..67f7f85574 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CategoryDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CategoryDB.java
@@ -89,11 +89,6 @@ class CategoryDB extends DbObject implements Category {
}
}
- @Override
- protected boolean refresh() {
- return refresh(null);
- }
-
@Override
protected boolean refresh(DBRecord rec) {
subcategoryMap.clear();
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CompositeDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CompositeDB.java
index 70b15fb498..a70465ffdd 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CompositeDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/CompositeDB.java
@@ -289,13 +289,16 @@ abstract class CompositeDB extends DataTypeDB implements CompositeInternal {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = compositeAdapter.getRecord(key);
+ if (rec == null) {
+ rec = compositeAdapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
initialize();
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeDB.java
index 165e72caaf..1dc3232fd6 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeDB.java
@@ -128,12 +128,10 @@ abstract class DataTypeDB extends DbObject implements DataType {
super.setDeleted();
}
- @Override
- protected boolean refresh() {
+ protected final void completeRefresh() {
category = null;
defaultSettings = null;
refreshName();
- return true;
}
@Override
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java
index 73ad2f3bb3..44411499ae 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/EnumDB.java
@@ -524,14 +524,17 @@ class EnumDB extends DataTypeDB implements Enum {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
lazyEnumValues = null;
bitGroups = null;
- DBRecord rec = adapter.getRecord(key);
+ if (rec == null) {
+ rec = adapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/FunctionDefinitionDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/FunctionDefinitionDB.java
index 7aa490cf94..eaadc08df3 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/FunctionDefinitionDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/FunctionDefinitionDB.java
@@ -87,13 +87,16 @@ class FunctionDefinitionDB extends DataTypeDB implements FunctionDefinition {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = funDefAdapter.getRecord(key);
+ if (rec == null) {
+ rec = funDefAdapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
loadParameters();
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java
index f41b7ce19c..8ef472ec23 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/PointerDB.java
@@ -100,12 +100,15 @@ class PointerDB extends DataTypeDB implements Pointer {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = adapter.getRecord(key);
+ if (rec == null) {
+ rec = adapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/SourceArchiveDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/SourceArchiveDB.java
index 44122d36b8..b4df771f49 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/SourceArchiveDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/SourceArchiveDB.java
@@ -105,9 +105,11 @@ public class SourceArchiveDB extends DbObject implements SourceArchive {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = adapter.getRecord(key);
+ if (rec == null) {
+ rec = adapter.getRecord(key);
+ }
if (rec != null) {
record = rec;
return true;
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java
index 40680989fd..62a5e04c8e 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/TypedefDB.java
@@ -364,13 +364,16 @@ class TypedefDB extends DataTypeDB implements TypeDef {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = adapter.getRecord(key);
+ if (rec == null) {
+ rec = adapter.getRecord(key);
+ }
if (rec != null) {
settingsDef = null;
record = rec;
- return super.refresh();
+ completeRefresh();
+ return true;
}
}
catch (IOException e) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionDB.java
index d8f5027990..387ad5cd71 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionDB.java
@@ -815,7 +815,7 @@ public class FunctionDB extends DbObject implements Function {
*/
synchronized void endUpdate() {
if (--updateInProgressCount == 0 && updateRefreshRequired) {
- refresh();
+ refresh(null);
}
}
@@ -923,11 +923,6 @@ public class FunctionDB extends DbObject implements Function {
}
}
- @Override
- protected boolean refresh() {
- return refresh(null);
- }
-
@Override
protected boolean refresh(DBRecord refreshRec) {
if (updateInProgressCount != 0) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionTagDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionTagDB.java
index 556770e765..f5d5d0b19a 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionTagDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionTagDB.java
@@ -107,14 +107,6 @@ public class FunctionTagDB extends DbObject implements FunctionTag {
return record;
}
- @Override
- protected boolean refresh() {
-
- // Call refresh with a null value to force the record
- // to be refreshed using whatever is in the database.
- return refresh(null);
- }
-
@Override
protected boolean refresh(DBRecord rec) {
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/FragmentDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/FragmentDB.java
index 4132f3a446..98f2a2e9a9 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/FragmentDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/FragmentDB.java
@@ -59,9 +59,11 @@ class FragmentDB extends DbObject implements ProgramFragment {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = fragmentAdapter.getFragmentRecord(key);
+ if (rec == null) {
+ rec = fragmentAdapter.getFragmentRecord(key);
+ }
if (rec != null) {
record = rec;
addrSet = moduleMgr.getFragmentAddressSet(key);
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleDB.java
index ec3cbf12e9..d1ca9b9fbd 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/module/ModuleDB.java
@@ -63,9 +63,11 @@ class ModuleDB extends DbObject implements ProgramModule {
}
@Override
- protected boolean refresh() {
+ protected boolean refresh(DBRecord rec) {
try {
- DBRecord rec = moduleAdapter.getModuleRecord(key);
+ if (rec == null) {
+ rec = moduleAdapter.getModuleRecord(key);
+ }
if (rec != null) {
record = rec;
childCount = rec.getIntValue(ModuleDBAdapter.MODULE_CHILD_COUNT_COL);
diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/PropertyMapDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/PropertyMapDB.java
index faefdc617a..17a54d3941 100644
--- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/PropertyMapDB.java
+++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/properties/PropertyMapDB.java
@@ -604,7 +604,7 @@ public abstract class PropertyMapDB