@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;

		// NOTE: Do NOT check the containing resource (we want to prevent cycles)
		WorkspaceResource other = (WorkspaceResource) o;
		if (!jvmClassBundle.equals(other.getJvmClassBundle())) return false;
		if (!versionedJvmClassBundles.equals(other.getVersionedJvmClassBundles())) return false;
		if (!androidClassBundles.equals(other.getAndroidClassBundles())) return false;
		if (!fileBundle.equals(other.getFileBundle())) return false;
		if (!embeddedResources.equals(other.getEmbeddedResources())) return false;
		return getProperties().equals(other.getProperties());
	}
Called by containing {@link Workspace#close()}.
recaf-core/src/main/java/software/coley/recaf/workspace/model/resource/BasicWorkspaceResource.java