Skip to content

Commit af5ba44

Browse files
drbruce-gitlburgess07Luke Burgess
authored
Fix NPE when using dependency file (#230) (#231)
* move logical file creation after call to copySourceFiles Signed-off-by: Luke Burgess <Luke.Burgess@ibm.com> * setting logical file in copySourceFiles Signed-off-by: Luke Burgess <Luke.Burgess@ibm.com> * adding check for dependency resolver Signed-off-by: Luke Burgess <Luke.Burgess@ibm.com> Co-authored-by: Luke Burgess <Luke.Burgess@ibm.com> Co-authored-by: Luke Burgess <57186837+lburgess07@users.noreply.github.com> Co-authored-by: Luke Burgess <Luke.Burgess@ibm.com>
1 parent f078a66 commit af5ba44

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

languages/Cobol.groovy

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,14 @@ sortedList.each { buildFile ->
4444
// Check if this a testcase
4545
isZUnitTestCase = (props.getFileProperty('cobol_testcase', buildFile).equals('true')) ? true : false
4646

47-
// configure dependency resolution and create logical file
47+
// configure appropriate dependency resolver
4848
def dependencyResolver
49-
LogicalFile logicalFile
50-
5149
if (props.useSearchConfiguration && props.useSearchConfiguration.toBoolean() && props.cobol_dependencySearch && buildUtils.assertDbbBuildToolkitVersion(props.dbbToolkitVersion, "1.1.2")) { // use new SearchPathDependencyResolver
5250
String dependencySearch = props.getFileProperty('cobol_dependencySearch', buildFile)
5351
dependencyResolver = resolverUtils.createSearchPathDependencyResolver(dependencySearch)
54-
logicalFile = resolverUtils.createLogicalFile(dependencyResolver, buildFile)
55-
5652
} else { // use deprecated DependencyResolver
5753
String rules = props.getFileProperty('cobol_resolutionRules', buildFile)
5854
dependencyResolver = buildUtils.createDependencyResolver(buildFile, rules)
59-
logicalFile = dependencyResolver.getLogicalFile()
6055
}
6156

6257
// copy build file and dependency files to data sets
@@ -65,6 +60,16 @@ sortedList.each { buildFile ->
6560
}else{
6661
buildUtils.copySourceFiles(buildFile, props.cobol_srcPDS, 'cobol_dependenciesDatasetMapping', props.cobol_dependenciesAlternativeLibraryNameMapping, dependencyResolver)
6762
}
63+
64+
// get logical file
65+
LogicalFile logicalFile
66+
if (dependencyResolver instanceof SearchPathDependencyResolver) {
67+
logicalFile = resolverUtils.createLogicalFile(dependencyResolver, buildFile)
68+
}
69+
else {
70+
logicalFile = dependencyResolver.getLogicalFile()
71+
}
72+
6873
// create mvs commands
6974
String member = CopyToPDS.createMemberName(buildFile)
7075
File logFile = new File( props.userBuild ? "${props.buildOutDir}/${member}.log" : "${props.buildOutDir}/${member}.cobol.log")

utilities/BuildUtilities.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ def copySourceFiles(String buildFile, String srcPDS, String dependencyDatasetMap
115115
String lname = CopyToPDS.createMemberName(buildFile)
116116
String language = props.getFileProperty('dbb.DependencyScanner.languageHint', buildFile) ?: 'UNKN'
117117
LogicalFile lfile = new LogicalFile(lname, buildFile, language, depFileData.isCICS, depFileData.isSQL, depFileData.isDLI)
118-
118+
// set logical file in the dependency resolver if using deprecated API
119+
if (dependencyResolver && (dependencyResolver instanceof DependencyResolver))
120+
dependencyResolver.setLogicalFile(lfile)
121+
119122
// get list of dependencies from userBuildDependencyFile
120123
List<String> dependencyPaths = depFileData.dependencies
121124

0 commit comments

Comments
 (0)