MavenProjectTimestamp (MavenProject mavenProject) { return ReadAction.compute(() -> { long pomTimestamp = getFileTimestamp(mavenProject.getFile()); MavenProject parent = tree.findParent(mavenProject); long parentLastReadStamp = parent == null ? -1 : parent.getLastReadStamp(); VirtualFile profilesXmlFile = mavenProject.getProfilesXmlFile(); long profilesTimestamp = getFileTimestamp(profilesXmlFile); VirtualFile jvmConfigFile = MavenUtil.getConfigFile(mavenProject, MavenConstants.JVM_CONFIG_RELATIVE_PATH); long jvmConfigTimestamp = getFileTimestamp(jvmConfigFile); VirtualFile mavenConfigFile = MavenUtil.getConfigFile(mavenProject, MavenConstants.MAVEN_CONFIG_RELATIVE_PATH); long mavenConfigTimestamp = getFileTimestamp(mavenConfigFile); long userSettingsTimestamp = getFileTimestamp(userSettingsFile); long globalSettingsTimestamp = getFileTimestamp(globalSettingsFile); int profilesHashCode = explicitProfiles.hashCode(); return new MavenProjectTimestamp(pomTimestamp, parentLastReadStamp, profilesTimestamp, userSettingsTimestamp, globalSettingsTimestamp, profilesHashCode, jvmConfigTimestamp, mavenConfigTimestamp); }); }