From 0d57cd758e98f54529d50447112ddae0835f0394 Mon Sep 17 00:00:00 2001 From: "Ocke.Janssen" Date: Thu, 4 Nov 2010 12:25:08 +0100 Subject: dba34b: #i115145# catch numberformatexception when creating bigdecimal --- reportbuilder/java/com/sun/star/report/SDBCReportData.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'reportbuilder') diff --git a/reportbuilder/java/com/sun/star/report/SDBCReportData.java b/reportbuilder/java/com/sun/star/report/SDBCReportData.java index 769657aa6bf5..a759b1712fe9 100644 --- a/reportbuilder/java/com/sun/star/report/SDBCReportData.java +++ b/reportbuilder/java/com/sun/star/report/SDBCReportData.java @@ -47,7 +47,6 @@ import com.sun.star.util.Time; import java.sql.Timestamp; - public class SDBCReportData implements DataSource { @@ -349,7 +348,7 @@ public class SDBCReportData implements DataSource private Object convertObject(final int type, final Object obj) { - final Object ret; + Object ret; switch (type) { case DataType.DATE: @@ -365,7 +364,14 @@ public class SDBCReportData implements DataSource case DataType.NUMERIC: if (!(obj instanceof Any)) { - ret = new java.math.BigDecimal((String) obj); + try + { + ret = new java.math.BigDecimal(String.valueOf(obj)); + } + catch (NumberFormatException ex) + { + ret = obj; + } } else { -- cgit From 2d24f7dc9b7455d178d0ad0060f6077086f6d1af Mon Sep 17 00:00:00 2001 From: "Ocke.Janssen" Date: Thu, 4 Nov 2010 13:10:42 +0100 Subject: dba34b: #i114109# change creator in meta.xml --- .../pentaho/output/OfficeDocumentReportTarget.java | 63 +++++++++++++++++++++- .../pentaho/output/chart/ChartRawReportTarget.java | 22 +------- .../spreadsheet/SpreadsheetRawReportTarget.java | 1 + .../pentaho/output/text/TextRawReportTarget.java | 22 ++------ 4 files changed, 68 insertions(+), 40 deletions(-) (limited to 'reportbuilder') diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java index b41252a17089..cdc8eae1b73b 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java @@ -41,6 +41,18 @@ import com.sun.star.report.pentaho.model.OfficeStyles; import com.sun.star.report.pentaho.model.OfficeStylesCollection; import com.sun.star.report.pentaho.styles.LengthCalculator; import com.sun.star.report.pentaho.styles.StyleMapper; +import com.sun.org.apache.xerces.internal.parsers.DOMParser; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; import java.awt.Image; @@ -54,6 +66,7 @@ import java.io.Reader; import java.io.StringReader; import java.io.StringWriter; import java.io.Writer; +import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; @@ -137,7 +150,6 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget public static final String FAILED = "Failed"; public static final String VERTICAL_POS = "vertical-pos"; private static final String ZERO_CM = "0cm"; - /** the verison of the ODF specification to which generated documents * shall conform. */ public static final String ODF_VERSION = "1.2"; @@ -381,7 +393,7 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget rootAttributes.addNamespaceDeclaration("xsi", OfficeNamespaces.XSI_NS); rootAttributes.addNamespaceDeclaration("grddl", OfficeNamespaces.GRDDL_NS); rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", - ODF_VERSION); + ODF_VERSION); this.rootXmlWriter.writeXmlDeclaration("UTF-8"); this.rootXmlWriter.writeTag(OfficeNamespaces.OFFICE_NS, "document-content", rootAttributes, XmlWriterSupport.OPEN); @@ -1037,6 +1049,53 @@ public abstract class OfficeDocumentReportTarget extends AbstractReportTarget getXmlWriter().writeCloseTag(); } + public void copyMeta() + { + // now copy the meta.xml + if (getInputRepository().isReadable("meta.xml")) + { + InputStream inputStream = null; + try + { + inputStream = getInputRepository().createInputStream("meta.xml"); + DOMParser dOMParser = new DOMParser(); + dOMParser.parse(new InputSource(inputStream)); + Document document = dOMParser.getDocument(); + NodeList nl = document.getElementsByTagName("document-meta/meta/generator"); + Node node = document.getFirstChild().getFirstChild().getFirstChild().getFirstChild(); + String creator = node.getNodeValue(); + node.setNodeValue(creator + "/report_builder"); + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + transformer.setOutputProperty(OutputKeys.METHOD, "xml"); + + final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); + StreamResult result = new StreamResult(outputMetaStream); + DOMSource source = new DOMSource(document); + transformer.transform(source, result); + + //IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); + outputMetaStream.flush(); + outputMetaStream.close(); + } + catch (java.lang.Exception ex) + { + } finally + { + if (inputStream != null) + { + try + { + inputStream.close(); + } + catch (IOException ex) + { + Logger.getLogger(OfficeDocumentReportTarget.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + } + } + public void endReport(final ReportStructureRoot report) throws DataSourceException, ReportProcessingException { diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java index f76d43bb807a..2013b1c492ff 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java @@ -261,26 +261,6 @@ public class ChartRawReportTarget extends OfficeDocumentReportTarget throws DataSourceException, ReportProcessingException { super.endReport(report); - try - { - // now copy the meta.xml - if (getInputRepository().isReadable("meta.xml")) - { - final InputStream inputStream = getInputRepository().createInputStream("meta.xml"); - try - { - final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); - IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); - outputMetaStream.close(); - } finally - { - inputStream.close(); - } - } - } - catch (IOException ioe) - { - throw new ReportProcessingException("Failed to write settings document", ioe); - } + copyMeta(); } } diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java index d2c4ebd96e3c..baa43e687ccb 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java @@ -845,6 +845,7 @@ public class SpreadsheetRawReportTarget extends OfficeDocumentReportTarget setElementBoundaryCollectionPass(false); resetTableCounter(); columnCounter = 0; + copyMeta(); } private boolean isElementBoundaryCollectionPass() diff --git a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java index 9f3746086b87..a66f3e8b6c4d 100644 --- a/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java +++ b/reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java @@ -26,6 +26,7 @@ ************************************************************************/ package com.sun.star.report.pentaho.output.text; + import com.sun.star.report.DataSourceFactory; import com.sun.star.report.ImageService; import com.sun.star.report.InputRepository; @@ -45,7 +46,7 @@ import com.sun.star.report.pentaho.output.StyleUtilities; import com.sun.star.report.pentaho.styles.LengthCalculator; import java.io.IOException; -import java.io.InputStream; + import java.io.OutputStream; import java.io.OutputStreamWriter; @@ -53,6 +54,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.Map; + import org.jfree.layouting.input.style.values.CSSNumericValue; import org.jfree.layouting.util.AttributeMap; import org.jfree.report.DataSourceException; @@ -67,7 +69,6 @@ import org.jfree.report.util.AttributeNameGenerator; import org.jfree.report.util.IntegerCache; import org.pentaho.reporting.libraries.base.util.FastStack; -import org.pentaho.reporting.libraries.base.util.IOUtils; import org.pentaho.reporting.libraries.base.util.ObjectUtilities; import org.pentaho.reporting.libraries.resourceloader.ResourceKey; import org.pentaho.reporting.libraries.resourceloader.ResourceManager; @@ -1270,7 +1271,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget rootAttributes.addNamespaceDeclaration("config", OfficeNamespaces.CONFIG); rootAttributes.addNamespaceDeclaration("ooo", OfficeNamespaces.OO2004_NS); rootAttributes.setAttribute(OfficeNamespaces.OFFICE_NS, "version", - OfficeDocumentReportTarget.ODF_VERSION); + OfficeDocumentReportTarget.ODF_VERSION); final OutputStream outputStream = getOutputRepository().createOutputStream("settings.xml", "text/xml"); final XmlWriter xmlWriter = new XmlWriter(new OutputStreamWriter(outputStream, "UTF-8"), createTagDescription()); xmlWriter.setAlwaysAddNamespace(true); @@ -1291,20 +1292,7 @@ public class TextRawReportTarget extends OfficeDocumentReportTarget xmlWriter.writeCloseTag(); xmlWriter.close(); - // now copy the meta.xml - if (getInputRepository().isReadable("meta.xml")) - { - final InputStream inputStream = getInputRepository().createInputStream("meta.xml"); - try - { - final OutputStream outputMetaStream = getOutputRepository().createOutputStream("meta.xml", "text/xml"); - IOUtils.getInstance().copyStreams(inputStream, outputMetaStream); - outputMetaStream.close(); - } finally - { - inputStream.close(); - } - } + copyMeta(); } catch (IOException ioe) { -- cgit