55import com .google .common .collect .Lists ;
66import com .google .protobuf .ByteString ;
77import java .lang .reflect .Field ;
8+ import java .lang .reflect .InvocationTargetException ;
89import java .lang .reflect .Method ;
910import java .net .InetSocketAddress ;
1011import java .util .ArrayList ;
@@ -168,4 +169,28 @@ private void testCheckHelloMessage() {
168169 logger .info ("{}" , e .getMessage ());
169170 }
170171 }
171- }
172+
173+ @ Test
174+ public void testNullWitnessAddress () {
175+ try {
176+ Class <?> clazz = service .getClass ();
177+
178+ Field keySizeField = clazz .getDeclaredField ("keySize" );
179+ keySizeField .setAccessible (true );
180+ keySizeField .set (service , 0 );
181+
182+ Field witnessAddressField = clazz .getDeclaredField ("witnessAddress" );
183+ witnessAddressField .setAccessible (true );
184+ witnessAddressField .set (service , null );
185+
186+ Method isActiveWitnessMethod = clazz .getDeclaredMethod ("isActiveWitness" );
187+ isActiveWitnessMethod .setAccessible (true );
188+
189+ Object result = isActiveWitnessMethod .invoke (service );
190+ Assert .assertFalse (Boolean .TRUE .equals (result ));
191+ } catch (NoSuchMethodException | NoSuchFieldException |
192+ IllegalAccessException | InvocationTargetException e ) {
193+ Assert .fail ("Reflection invocation failed: " + e .getMessage ());
194+ }
195+ }
196+ }
0 commit comments