diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/JsonHolder.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/JsonHolder.java index eacd492892a..2e0f97a7e93 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/JsonHolder.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/JsonHolder.java @@ -48,13 +48,14 @@ public class JsonHolder { return jsonExceptionObj; } - public void add(TrackFileImportDeviceIdentifier mapping) { + public void addDevice(TrackFileImportDeviceIdentifier mapping) { String stringRep = mapping.getId().toString(); jsonUuidObj.add(stringRep); } - + public void writeJSONString(HttpServletResponse resp) throws IOException { resp.setContentType("text/html"); jsonResponseObj.writeJSONString(resp.getWriter()); } + } \ No newline at end of file diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java index b54cd9edd57..e62106bc8c9 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/SensorDataImportServlet.java @@ -4,8 +4,11 @@ import java.io.BufferedInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; +import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; @@ -75,10 +78,14 @@ public class SensorDataImportServlet extends AbstractFileUploadServlet { final String filename = fi.getName(); try { importerToUse.importFixes(in, new DoubleVectorFixImporter.Callback() { + Set knownDevices = new HashSet<>(); @Override public void addFixes(Iterable fixes, TrackFileImportDeviceIdentifier device) { storeFixes(fixes, device); - jsonResult.add(device); + if(!knownDevices.contains(device.getId())){ + knownDevices.add(device.getId()); + jsonResult.addDevice(device); + } } }, filename, requestedImporterName, enableDownsampler); logger.log(Level.INFO, "Successfully imported file " + requestedImporterName); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java index a34a10f48df..b1389b57c58 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java @@ -4,9 +4,11 @@ import java.io.BufferedInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -109,10 +111,14 @@ public class TrackFilesImportServlet extends AbstractFileUploadServlet { try (BufferedInputStream in = new BufferedInputStream(fileItem.getInputStream())) { try { importer.importFixes(in, new Callback() { + Set knownDevices = new HashSet<>(); @Override public void addFix(GPSFix fix, TrackFileImportDeviceIdentifier device) { storeFix(fix, device); - jsonResult.add(device); + if(!knownDevices.contains(device.getId())){ + knownDevices.add(device.getId()); + jsonResult.addDevice(device); + } } }, true, fileName); succeeded = true;