diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/ApplyDataArchiveAnalyzer.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/ApplyDataArchiveAnalyzer.java index 8e7ddb64c5..eff1f5a496 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/ApplyDataArchiveAnalyzer.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/ApplyDataArchiveAnalyzer.java @@ -27,7 +27,7 @@ import ghidra.program.model.address.AddressSetView; import ghidra.program.model.data.DataTypeManager; import ghidra.program.model.listing.Program; import ghidra.program.model.symbol.SourceType; -import ghidra.util.Msg; +import ghidra.util.exception.VersionException; import ghidra.util.task.TaskMonitor; public class ApplyDataArchiveAnalyzer extends AbstractAnalyzer { @@ -67,7 +67,7 @@ public class ApplyDataArchiveAnalyzer extends AbstractAnalyzer { try { dtm = service.openDataTypeArchive(archiveName); if (dtm == null) { - Msg.showError(this, null, "Failed to Apply Data Types", + log.appendMsg("Apply Data Archives", "Failed to locate data type archive: " + archiveName); } else { @@ -75,8 +75,18 @@ public class ApplyDataArchiveAnalyzer extends AbstractAnalyzer { } } catch (Exception e) { - if (mgr.debugOn) { - Msg.error(this, "Unexpected Exception: " + e.getMessage(), e); + Throwable cause = e.getCause(); + if (cause instanceof VersionException) { + log.appendMsg("Apply Data Archives", + "Unable to open archive " + archiveName + ": " + cause.toString()); + } + else { + String msg = e.getMessage(); + if (msg == null) { + msg = e.toString(); + } + log.appendMsg("Apply Data Archives", + "Unexpected Error opening archive " + archiveName + ": " + msg); } } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java index 7bb8ea5c2f..e54d1d0499 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/archive/DataTypeManagerHandler.java @@ -438,9 +438,7 @@ public class DataTypeManagerHandler { addArchive(archive); } if (isUserAction && (archive instanceof FileArchive)) { - if (file != null) { - userOpenedFileArchiveNames.add(getSaveableArchive(file.getAbsolutePath())); - } + userOpenedFileArchiveNames.add(getSaveableArchive(file.getAbsolutePath())); } return archive; } @@ -1251,8 +1249,8 @@ public class DataTypeManagerHandler { public Set getPossibleEquateNames(long value) { Set equateNames = new HashSet<>(); - for (int i = 0; i < openArchives.size(); i++) { - DataTypeManager dtMgr = openArchives.get(i).getDataTypeManager(); + for (Archive element : openArchives) { + DataTypeManager dtMgr = element.getDataTypeManager(); dtMgr.findEnumValueNames(value, equateNames); } return equateNames;