This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch 
bugfix/UIMA-6390-NPE-when-trying-to-access-config-names-of-fresh-context-main
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git

commit 11f2861d956bd9378f66c3e56e21cef286fc443a
Merge: d1ff8b3 c1b1682
Author: Richard Eckart de Castilho <r...@apache.org>
AuthorDate: Fri Oct 22 11:36:16 2021 +0200

    Merge branch 
'bugfix/UIMA-6390-NPE-when-trying-to-access-config-names-of-fresh-context' into 
bugfix/UIMA-6390-NPE-when-trying-to-access-config-names-of-fresh-context-main
    
    * bugfix/UIMA-6390-NPE-when-trying-to-access-config-names-of-fresh-context:
      [UIMA-6390] NPE when trying to access config names of fresh context
      [UIMA-6390] NPE when trying to access config names of fresh context
    
    % Conflicts:
    %   uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
    %   uimaj-core/src/test/java/org/apache/uima/impl/UimaContext_implTest.java

 .../org/apache/uima/impl/UimaContext_ImplBase.java | 42 ++++++++++++----------
 .../org/apache/uima/impl/UimaContext_implTest.java |  1 +
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --cc 
uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
index af2fdfc,3f214ca..f1faadf
--- a/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
+++ b/uimaj-core/src/main/java/org/apache/uima/impl/UimaContext_ImplBase.java
@@@ -602,30 -595,34 +602,34 @@@ public abstract class UimaContext_ImplB
     */
    @Override
    public String[] getConfigParameterNames(String aGroup) {
-     ConfigurationGroup[] groups = getConfigurationManager()
-             .getConfigParameterDeclarations(getQualifiedContextName())
-             .getConfigurationGroupDeclarations(aGroup);
+     ConfigurationParameterDeclarations paramDecls = getConfigurationManager()
+             .getConfigParameterDeclarations(getQualifiedContextName());
+ 
+     if (paramDecls == null) {
+       return Constants.EMPTY_STRING_ARRAY;
+     }
+ 
+     ConfigurationGroup[] groups = 
paramDecls.getConfigurationGroupDeclarations(aGroup);
      if (groups.length == 0) {
        return Constants.EMPTY_STRING_ARRAY;
-     } else {
-       List<String> names = new ArrayList<>();
-       ConfigurationParameter[] commonParams = getConfigurationManager()
-               
.getConfigParameterDeclarations(getQualifiedContextName()).getCommonParameters();
-       if (commonParams != null) {
-         for (int i = 0; i < commonParams.length; i++) {
-           names.add(commonParams[i].getName());
-         }
+     }
+ 
 -      List<String> names = new ArrayList<>();
++    List<String> names = new ArrayList<>();
+     ConfigurationParameter[] commonParams = paramDecls.getCommonParameters();
 -      if (commonParams != null) {
 -        for (int i = 0; i < commonParams.length; i++) {
 -          names.add(commonParams[i].getName());
 -        }
++    if (commonParams != null) {
++      for (int i = 0; i < commonParams.length; i++) {
++        names.add(commonParams[i].getName());
        }
-       for (int i = 0; i < groups.length; i++) {
-         ConfigurationParameter[] groupParams = 
groups[i].getConfigurationParameters();
-         for (int j = 0; j < groupParams.length; j++) {
-           names.add(groupParams[j].getName());
-         }
++    }
+ 
 -      for (int i = 0; i < groups.length; i++) {
 -        ConfigurationParameter[] groupParams = 
groups[i].getConfigurationParameters();
 -        for (int j = 0; j < groupParams.length; j++) {
 -          names.add(groupParams[j].getName());
 -        }
++    for (int i = 0; i < groups.length; i++) {
++      ConfigurationParameter[] groupParams = 
groups[i].getConfigurationParameters();
++      for (int j = 0; j < groupParams.length; j++) {
++        names.add(groupParams[j].getName());
        }
-       String[] nameArray = new String[names.size()];
-       names.toArray(nameArray);
-       return nameArray;
 +    }
+ 
+     return names.toArray(new String[names.size()]);
    }
  
    /**
diff --cc 
uimaj-core/src/test/java/org/apache/uima/impl/UimaContext_implTest.java
index b567cbd,a384983..a85c31b
--- a/uimaj-core/src/test/java/org/apache/uima/impl/UimaContext_implTest.java
+++ b/uimaj-core/src/test/java/org/apache/uima/impl/UimaContext_implTest.java
@@@ -301,9 -305,9 +301,10 @@@ public class UimaContext_implTest 
              UIMAFramework.newDefaultResourceManager(), 
UIMAFramework.newConfigurationManager());
  
      assertThat(emptyContext.getConfigParameterNames()).isEmpty();
+     assertThat(emptyContext.getConfigParameterNames("blah")).isEmpty();
    }
  
 +  @Test
    public void testGetConfigParameterNamesString() {
      String[] names = mContext2.getConfigParameterNames("en");
      Assert.assertEquals(4, names.length);

Reply via email to