2727import javax .swing .event .DocumentEvent ;
2828import javax .swing .text .JTextComponent ;
2929import java .io .File ;
30- import java .io .IOException ;
3130import java .util .ArrayList ;
3231import java .util .HashMap ;
3332import java .util .List ;
@@ -40,30 +39,21 @@ public final class DartSdkUtil {
4039
4140 public static @ Nullable @ NlsSafe String getSdkVersion (final @ NotNull String sdkHomePath ) {
4241 final File versionFile = new File (sdkHomePath + "/version" );
43- if (versionFile .isFile ()) {
44- final String cachedVersion = ourVersions .get (Pair .create (versionFile , versionFile .lastModified ()));
45- if (cachedVersion != null ) return cachedVersion ;
42+ if (!versionFile .isFile ()) {
43+ return null ;
4644 }
4745
48- final String version = readVersionFile ( sdkHomePath );
49- if ( version != null ) {
50- ourVersions . put ( Pair . create ( versionFile , versionFile . lastModified ()), version );
51- return version ;
46+ final Pair < File , Long > versionPair = Pair . create ( versionFile , versionFile . lastModified () );
47+ final String cachedVersion = ourVersions . get ( versionPair );
48+ if ( cachedVersion != null ) {
49+ return cachedVersion ;
5250 }
5351
54- return null ;
55- }
56-
57- private static String readVersionFile (final String sdkHomePath ) {
58- final File versionFile = new File (sdkHomePath + "/version" );
59- if (versionFile .isFile () && versionFile .length () < 100 ) {
60- try {
61- return FileUtil .loadFile (versionFile ).trim ();
62- }
63- catch (IOException e ) {
64- /* ignore */
65- }
52+ final String version = FileUtil .loadFileOrNull (versionFile );
53+ if (version != null ) {
54+ return ourVersions .put (versionPair , version );
6655 }
56+
6757 return null ;
6858 }
6959
0 commit comments