Skip to content
Snippets Groups Projects
Commit cf0e7f88 authored by Dominique Marcadet's avatar Dominique Marcadet
Browse files

protect SclUtilities.getAnyLN() against NPE

parent 8594ebb0
No related branches found
No related tags found
1 merge request!62Resolve "NPE in SclUtilities.getAnyLN() if lnInst is null"
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
package fr.centralesupelec.edf.riseclipse.iec61850.scl.util; package fr.centralesupelec.edf.riseclipse.iec61850.scl.util;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
...@@ -127,11 +128,14 @@ public class SclUtilities { ...@@ -127,11 +128,14 @@ public class SclUtilities {
if( "LLN0".equals( lnClass )) { if( "LLN0".equals( lnClass )) {
return Pair.of( lDevice.getLN0(), ( lDevice.getLN0() == null ) ? 0 : 1 ); return Pair.of( lDevice.getLN0(), ( lDevice.getLN0() == null ) ? 0 : 1 );
} }
// Null checks must be done as annotation-based null analysis is not enabled (issue #64)
if( lnClass == null ) return Pair.of( null, 0 );
if( lnInst == null ) return Pair.of( null, 0 );
List< LN > res = List< LN > res =
lDevice lDevice
.getLN() .getLN()
.stream() .stream()
.filter( ln -> lnClass.equals( ln.getLnClass() ) && lnInst.equals( ln.getInst() ) && prefix.equals( ln.getPrefix() )) .filter( ln -> lnClass.equals( ln.getLnClass() ) && lnInst.equals( ln.getInst() ) && Objects.equals( prefix, ln.getPrefix() ))
.collect( Collectors.toList() ); .collect( Collectors.toList() );
if( res.size() != 1 ) { if( res.size() != 1 ) {
return Pair.of( null, res.size() ); return Pair.of( null, res.size() );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment