Index: /applications/editors/josm/plugins/FIT/src/main/java/org/openstreetmap/josm/plugins/fit/FitPlugin.java
===================================================================
--- /applications/editors/josm/plugins/FIT/src/main/java/org/openstreetmap/josm/plugins/fit/FitPlugin.java	(revision 36247)
+++ /applications/editors/josm/plugins/FIT/src/main/java/org/openstreetmap/josm/plugins/fit/FitPlugin.java	(revision 36248)
@@ -11,4 +11,5 @@
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.TreeMap;
 import java.util.concurrent.TimeUnit;
@@ -55,4 +56,5 @@
         @Override
         public void importData(File file, ProgressMonitor progressMonitor) throws IOException {
+            final var fieldMap = new HashMap<Class<? extends Record>, RecordComponent[]>(1);
             try (var inputStream = Files.newInputStream(file.toPath())) {
                 final var records = FitReader.read(inputStream, FitReaderOptions.TRY_TO_FINISH);
@@ -73,6 +75,6 @@
                             // Use a sorted map for consistency
                             final var map = new TreeMap<String, Object>();
-                            for (RecordComponent component : HeartRateCadenceDistanceSpeed.class
-                                    .getRecordComponents()) {
+                            for (RecordComponent component : fieldMap.computeIfAbsent(HeartRateCadenceDistanceSpeed.class,
+                                    Class::getRecordComponents)) {
                                 if (Arrays.asList("lat", "lon", "timestamp", "unknown").contains(component.getName())) {
                                     continue; // skip information that has specific fields
