Skip to content

Commit e190384

Browse files
authored
Merge pull request #175 from bact/handle-null
Handle null before access to creation info / license info
2 parents 180ac2e + ee88fc7 commit e190384

File tree

6 files changed

+39
-22
lines changed

6 files changed

+39
-22
lines changed

src/main/java/org/spdx/tools/MatchingStandardLicenses.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public static void main(String[] args) {
5353
usage();
5454
System.exit(ERROR_STATUS);
5555
}
56+
@SuppressWarnings("null")
5657
File textFile = new File(args[0]);
5758

5859
if (!textFile.exists()) {

src/main/java/org/spdx/tools/Verify.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ public static void main(String[] args) {
8686
fileType = SpdxToolsHelper.fileToFileType(new File(args[0]));
8787
}
8888
verify = verify(args[0], fileType);
89-
9089
} catch (SpdxVerificationException e) {
9190
System.out.println(e.getMessage());
9291
System.exit(ERROR_STATUS);
@@ -97,7 +96,7 @@ public static void main(String[] args) {
9796
// separate out the warning from errors
9897
List<String> warnings = new ArrayList<>();
9998
List<String> errors = new ArrayList<>();
100-
for (String verifyMsg:verify) {
99+
for (String verifyMsg : verify) {
101100
if (verifyMsg.contains(" is deprecated.")) {
102101
warnings.add(verifyMsg);
103102
} else {

src/main/java/org/spdx/tools/compare/CreatorSheet.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.apache.poi.ss.usermodel.Sheet;
2727
import org.apache.poi.ss.usermodel.Workbook;
2828
import org.spdx.core.InvalidSPDXAnalysisException;
29+
import org.spdx.library.model.v2.SpdxCreatorInformation;
2930
import org.spdx.utility.compare.SpdxCompareException;
3031
import org.spdx.utility.compare.SpdxComparer;
3132

@@ -90,17 +91,20 @@ public void importCompareResults(SpdxComparer comparer, List<String> docNames) t
9091
for (int i = 0; i < comparer.getNumSpdxDocs(); i++) {
9192
Cell headerCell = header.getCell(i);
9293
headerCell.setCellValue(docNames.get(i));
93-
String[] creators = comparer.getSpdxDoc(i).getCreationInfo().getCreators().toArray(new String[comparer.getSpdxDoc(i).getCreationInfo().getCreators().size()]);
94-
Arrays.sort(creators);
95-
for (int j = 0; j < creators.length; j++) {
96-
Cell creatorCell = null;
97-
while (j+1 > this.getNumDataRows()) {
98-
this.addRow();
94+
SpdxCreatorInformation creationInfo = comparer.getSpdxDoc(i).getCreationInfo();
95+
if (creationInfo != null) {
96+
String[] creators = creationInfo.getCreators().toArray(new String[creationInfo.getCreators().size()]);
97+
Arrays.sort(creators);
98+
for (int j = 0; j < creators.length; j++) {
99+
Cell creatorCell = null;
100+
while (j+1 > this.getNumDataRows()) {
101+
this.addRow();
102+
}
103+
creatorCell = sheet.getRow(j+1).createCell(i);
104+
creatorCell.setCellValue(creators[j]);
99105
}
100-
creatorCell = sheet.getRow(j+1).createCell(i);
101-
creatorCell.setCellValue(creators[j]);
102106
}
103107
}
104108
}
105109

106-
}
110+
}

src/main/java/org/spdx/tools/compare/DocumentSheet.java

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
import org.apache.poi.ss.usermodel.Sheet;
2727
import org.apache.poi.ss.usermodel.Workbook;
2828
import org.spdx.core.InvalidSPDXAnalysisException;
29+
import org.spdx.library.model.v2.SpdxCreatorInformation;
2930
import org.spdx.utility.compare.SpdxCompareException;
3031
import org.spdx.utility.compare.SpdxComparer;
3132

3233
/**
33-
* Sheet to hold compare information at the docment level:
34+
* Sheet to hold compare information at the document level:
3435
* Created, Data License, Document Comment
3536
* The first row summarizes which fields are different, the subsequent rows are the
3637
* specific date from each result
@@ -254,9 +255,12 @@ private void importLicenseListVersions(SpdxComparer comparer) throws SpdxCompare
254255
// data rows
255256
for (int i = 0; i < comparer.getNumSpdxDocs(); i++) {
256257
cell = sheet.getRow(getFirstDataRow()+i+1).createCell(LICENSE_LIST_VERSION_COL);
257-
Optional<String> licenseListVersion = comparer.getSpdxDoc(i).getCreationInfo().getLicenseListVersion();
258-
if (licenseListVersion.isPresent()) {
259-
cell.setCellValue(licenseListVersion.get());
258+
SpdxCreatorInformation creationInfo = comparer.getSpdxDoc(i).getCreationInfo();
259+
if (creationInfo != null) {
260+
Optional<String> licenseListVersion = creationInfo.getLicenseListVersion();
261+
if (licenseListVersion.isPresent()) {
262+
cell.setCellValue(licenseListVersion.get());
263+
}
260264
}
261265
}
262266
}
@@ -340,11 +344,13 @@ private void importCreatorComment(SpdxComparer comparer) throws InvalidSPDXAnaly
340344
// data rows
341345
for (int i = 0; i < comparer.getNumSpdxDocs(); i++) {
342346
cell = sheet.getRow(getFirstDataRow()+i+1).createCell(CREATOR_COMMENT_COL);
343-
Optional<String> creatorComment = comparer.getSpdxDoc(i).getCreationInfo().getComment();
344-
if (creatorComment.isPresent()) {
345-
cell.setCellValue(creatorComment.get());
347+
SpdxCreatorInformation creationInfo = comparer.getSpdxDoc(i).getCreationInfo();
348+
if (creationInfo != null) {
349+
Optional<String> creatorComment = creationInfo.getComment();
350+
if (creatorComment.isPresent()) {
351+
cell.setCellValue(creatorComment.get());
352+
}
346353
}
347-
348354
}
349355
}
350356

@@ -364,7 +370,10 @@ private void importCreationDate(SpdxComparer comparer) throws InvalidSPDXAnalysi
364370
// data rows
365371
for (int i = 0; i < comparer.getNumSpdxDocs(); i++) {
366372
cell = sheet.getRow(getFirstDataRow()+i+1).createCell(CREATION_DATE_COL);
367-
cell.setCellValue(comparer.getSpdxDoc(i).getCreationInfo().getCreated());
373+
SpdxCreatorInformation creationInfo = comparer.getSpdxDoc(i).getCreationInfo();
374+
if (creationInfo != null) {
375+
cell.setCellValue(creationInfo.getCreated());
376+
}
368377
}
369378
}
370379

src/main/java/org/spdx/tools/compare/PackageSheet.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.spdx.library.model.v2.SpdxDocument;
3636
import org.spdx.library.model.v2.SpdxPackage;
3737
import org.spdx.library.model.v2.SpdxPackageVerificationCode;
38+
import org.spdx.library.model.v2.license.AnyLicenseInfo;
3839
import org.spdx.utility.compare.SpdxCompareException;
3940
import org.spdx.utility.compare.SpdxComparer;
4041
import org.spdx.utility.compare.SpdxPackageComparer;
@@ -404,7 +405,10 @@ private void addPackageToSheet(SpdxPackageComparer comparer,
404405
}
405406
concludedLicenseRow.createCell(FIRST_DOC_COL+i).setCellValue(pkg.getLicenseConcluded().toString());
406407
licenseInfosFromFilesRow.createCell(FIRST_DOC_COL+i).setCellValue(CompareHelper.licenseInfosToString(pkg.getLicenseInfoFromFiles()));
407-
declaredLicenseRow.createCell(FIRST_DOC_COL+i).setCellValue(pkg.getLicenseDeclared().toString());
408+
AnyLicenseInfo licenseDeclared = pkg.getLicenseDeclared();
409+
if (licenseDeclared != null) {
410+
declaredLicenseRow.createCell(FIRST_DOC_COL+i).setCellValue(licenseDeclared.toString());
411+
}
408412
Optional<String> licenseComments = pkg.getLicenseComments();
409413
if (licenseComments.isPresent()) {
410414
licenseCommentRow.createCell(FIRST_DOC_COL+i).setCellValue(licenseComments.get());

testResources/sourcefiles/DocumentSheet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.spdx.utility.compare.SpdxComparer;
3030

3131
/**
32-
* Sheet to hold compare information at the docment level:
32+
* Sheet to hold compare information at the document level:
3333
* Created, Data License, Document Comment
3434
* The first row summarizes which fields are different, the subsequent rows are the
3535
* specific date from each result

0 commit comments

Comments
 (0)