ASF Bugzilla – Attachment 34927 Details for
Bug 60985
HSSFPrintSetup throws NPE when accessing print settings of existing XLS
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
patch in progress
bug60985.patch (text/plain), 2.63 KB, created by
Javen O'Neal
on 2017-04-19 09:24:50 UTC
(
hide
)
Description:
patch in progress
Filename:
MIME Type:
Creator:
Javen O'Neal
Created:
2017-04-19 09:24:50 UTC
Size:
2.63 KB
patch
obsolete
>Index: src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java >=================================================================== >--- src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java (revision 1791876) >+++ src/java/org/apache/poi/hssf/record/aggregates/PageSettingsBlock.java (working copy) >@@ -401,6 +401,18 @@ > } > > /** >+ * Returns the PrintSetupRecord, adding one if missing. >+ * @return PrintSetupRecord for the sheet. (never {@code null}) >+ */ >+ public PrintSetupRecord getOrCreatePrintSetup() >+ { >+ if (_printSetup == null) { >+ _printSetup = createPrintSetup(); >+ } >+ return _printSetup; >+ } >+ >+ /** > * Sets the PrintSetupRecord. > * @param newPrintSetup The new PrintSetupRecord for the sheet. > */ >Index: src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java >=================================================================== >--- src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java (revision 1791876) >+++ src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java (working copy) >@@ -1237,12 +1237,13 @@ > > /** > * Gets the print setup object. >+ * Adds a Print Setup Record to the workbook if one is not present > * > * @return The user model for the print setup object. > */ > @Override > public HSSFPrintSetup getPrintSetup() { >- return new HSSFPrintSetup(_sheet.getPageSettings().getPrintSetup()); >+ return new HSSFPrintSetup(_sheet.getPageSettings().getOrCreatePrintSetup()); > } > > @Override >@@ -1300,6 +1301,8 @@ > @Override > public double getMargin(short margin) { > switch (margin) { >+ // FIXME: should this getter return a default margin, -1, or raise an NPE if there is no PrintSetupRecord? >+ // should it create a print setup record if missing, and if so, return default margin or -1? > case FooterMargin: > return _sheet.getPageSettings().getPrintSetup().getFooterMargin(); > case HeaderMargin: >@@ -1319,10 +1322,10 @@ > public void setMargin(short margin, double size) { > switch (margin) { > case FooterMargin: >- _sheet.getPageSettings().getPrintSetup().setFooterMargin(size); >+ _sheet.getPageSettings().getOrCreatePrintSetup().setFooterMargin(size); > break; > case HeaderMargin: >- _sheet.getPageSettings().getPrintSetup().setHeaderMargin(size); >+ _sheet.getPageSettings().getOrCreatePrintSetup().setHeaderMargin(size); > break; > default: > _sheet.getPageSettings().setMargin(margin, size);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 60985
:
34911
| 34927