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);