Skip to content

Commit 32ebe94

Browse files
util/llf/LsfLogSource: Fix to be more clear if got error loading IMC file definition.
1 parent 04957ae commit 32ebe94

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/java/pt/lsts/neptus/util/llf/LsfLogSource.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.io.File;
3636
import java.io.FileInputStream;
3737
import java.io.IOException;
38+
import java.io.InputStream;
3839
import java.net.URI;
3940
import java.util.ArrayList;
4041
import java.util.Collection;
@@ -138,10 +139,23 @@ else if (f.getName().toLowerCase().endsWith(FileUtil.FILE_TYPE_LSF_COMPRESSED_BZ
138139
File defsFile1 = new File(f.getParent()+"/IMC.xml");
139140
File defsFile2 = new File(f.getParent()+"/IMC.xml.gz");
140141
if(defsFile1.canRead()) {
141-
defs = new IMCDefinition(new FileInputStream(defsFile1));
142+
try (InputStream is = new FileInputStream(defsFile1)) {
143+
defs = new IMCDefinition(is);
144+
}
145+
catch (Exception e) {
146+
// defs = IMCDefinition.getInstance(); // If IMC.xml isn't present use the default ones
147+
throw new Exception(String.format("IMC definition was not loaded correctly.\n(cause: %s).\n" +
148+
"Fix it or try to load with default IMC (delete the IMC on the log folder).", e.getMessage()), e);
149+
}
142150
}
143151
else if (defsFile2.canRead()) {
144-
defs = new IMCDefinition(new GzipCompressorInputStream(new FileInputStream(defsFile2), true));
152+
try (InputStream is = new GzipCompressorInputStream(new FileInputStream(defsFile2), true)) {
153+
defs = new IMCDefinition(is);
154+
} catch (Exception e) {
155+
// defs = IMCDefinition.getInstance(); // If IMC.xml isn't present use the default ones
156+
throw new Exception(String.format("IMC definition was not loaded correctly.\n(cause: %s).\n" +
157+
"Fix it or try to load with default IMC (delete the IMC on the log folder).", e.getMessage()), e);
158+
}
145159
}
146160
else {
147161
defs = IMCDefinition.getInstance(); // If IMC.xml isn't present use the default ones

0 commit comments

Comments
 (0)