diff options
author | Cédric Walter <cedricwalter@apache.org> | 2014-03-31 15:54:52 +0000 |
---|---|---|
committer | Cédric Walter <cedricwalter@apache.org> | 2014-03-31 15:54:52 +0000 |
commit | e684262ca6c2aba6ca58283e81376de7f98debc1 (patch) | |
tree | 44c4e00d4363159f2b20a788ff421f2a86df081d | |
parent | 60801c50172d24f58eca169a22362886f578b651 (diff) | |
download | poi-e684262ca6c2aba6ca58283e81376de7f98debc1.tar.gz poi-e684262ca6c2aba6ca58283e81376de7f98debc1.zip |
performance issue logging calls are expensive because of the objects created when assembling the log messages. Using the check() method of the logging sub-system can prevent object creation
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1583357 13f79535-47bb-0310-9956-ffa450edef68
9 files changed, 108 insertions, 57 deletions
diff --git a/src/java/org/apache/poi/ddf/EscherContainerRecord.java b/src/java/org/apache/poi/ddf/EscherContainerRecord.java index 860edd8071..8454231cf1 100644 --- a/src/java/org/apache/poi/ddf/EscherContainerRecord.java +++ b/src/java/org/apache/poi/ddf/EscherContainerRecord.java @@ -85,7 +85,9 @@ public final class EscherContainerRecord extends EscherRecord { addChildRecord(child); if (offset >= data.length && bytesRemaining > 0) { _remainingLength = bytesRemaining; - log.log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left"); + } } } return bytesWritten; diff --git a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java index 428d11e4e9..f1444b9843 100644 --- a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java +++ b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java @@ -254,31 +254,31 @@ public final class EscherMetafileBlip extends EscherBlipRecord { " Filter: " + HexDump.toHex( field_7_fFilter ) + '\n' + " Extra Data:" + '\n' + extraData + (remainingData == null ? null : ("\n" + - " Remaining Data: " + HexDump.toHex(remainingData, 32)));
- }
-
- @Override
- public String toXml(String tab) {
- String extraData = "";
- StringBuilder builder = new StringBuilder();
- builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance())))
- .append(tab).append("\t").append("<UID>0x").append(HexDump.toHex( field_1_UID ) + '\n' +
- (field_2_UID == null ? "" : (" UID2: 0x" + HexDump.toHex( field_2_UID ) + '\n'))).append("</UID>\n")
- .append(tab).append("\t").append("<UncompressedSize>0x").append(HexDump.toHex( field_2_cb )).append("</UncompressedSize>\n")
- .append(tab).append("\t").append("<Bounds>").append(getBounds()).append("</Bounds>\n")
- .append(tab).append("\t").append("<SizeInEMU>").append(getSizeEMU()).append("</SizeInEMU>\n")
- .append(tab).append("\t").append("<CompressedSize>0x").append(HexDump.toHex( field_5_cbSave )).append("</CompressedSize>\n")
- .append(tab).append("\t").append("<Compression>0x").append(HexDump.toHex( field_6_fCompression )).append("</Compression>\n")
- .append(tab).append("\t").append("<Filter>0x").append(HexDump.toHex( field_7_fFilter )).append("</Filter>\n")
- .append(tab).append("\t").append("<ExtraData>").append(extraData).append("</ExtraData>\n")
- .append(tab).append("\t").append("<RemainingData>0x").append(HexDump.toHex(remainingData, 32)).append("</RemainingData>\n");
- builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n");
- return builder.toString();
- }
-
- /**
- * Return the blip signature
- *
+ " Remaining Data: " + HexDump.toHex(remainingData, 32))); + } + + @Override + public String toXml(String tab) { + String extraData = ""; + StringBuilder builder = new StringBuilder(); + builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) + .append(tab).append("\t").append("<UID>0x").append(HexDump.toHex( field_1_UID ) + '\n' + + (field_2_UID == null ? "" : (" UID2: 0x" + HexDump.toHex( field_2_UID ) + '\n'))).append("</UID>\n") + .append(tab).append("\t").append("<UncompressedSize>0x").append(HexDump.toHex( field_2_cb )).append("</UncompressedSize>\n") + .append(tab).append("\t").append("<Bounds>").append(getBounds()).append("</Bounds>\n") + .append(tab).append("\t").append("<SizeInEMU>").append(getSizeEMU()).append("</SizeInEMU>\n") + .append(tab).append("\t").append("<CompressedSize>0x").append(HexDump.toHex( field_5_cbSave )).append("</CompressedSize>\n") + .append(tab).append("\t").append("<Compression>0x").append(HexDump.toHex( field_6_fCompression )).append("</Compression>\n") + .append(tab).append("\t").append("<Filter>0x").append(HexDump.toHex( field_7_fFilter )).append("</Filter>\n") + .append(tab).append("\t").append("<ExtraData>").append(extraData).append("</ExtraData>\n") + .append(tab).append("\t").append("<RemainingData>0x").append(HexDump.toHex(remainingData, 32)).append("</RemainingData>\n"); + builder.append(tab).append("</").append(getClass().getSimpleName()).append(">\n"); + return builder.toString(); + } + + /** + * Return the blip signature + * * @return the blip signature */ public short getSignature() { @@ -287,7 +287,9 @@ public final class EscherMetafileBlip extends EscherBlipRecord { case RECORD_ID_WMF: return HSSFPictureData.MSOBI_WMF; case RECORD_ID_PICT: return HSSFPictureData.MSOBI_PICT; } - log.log(POILogger.WARN, "Unknown metafile: " + getRecordId()); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Unknown metafile: " + getRecordId()); + } return 0; } diff --git a/src/java/org/apache/poi/hssf/model/InternalSheet.java b/src/java/org/apache/poi/hssf/model/InternalSheet.java index ade41fdb59..277fdbd723 100644 --- a/src/java/org/apache/poi/hssf/model/InternalSheet.java +++ b/src/java/org/apache/poi/hssf/model/InternalSheet.java @@ -292,7 +292,9 @@ public final class InternalSheet { // Not clear which application wrote these files. rra = new RowRecordsAggregate(); } else { - log.log(POILogger.WARN, "DIMENSION record not found even though row/cells present"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "DIMENSION record not found even though row/cells present"); + } // Not sure if any tools write files like this, but Excel reads them OK } dimsloc = findFirstRecordLocBySid(WindowTwoRecord.sid); diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java b/src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java index 86c67dcebd..99acb335b5 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java +++ b/src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java @@ -359,7 +359,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * this method clears the current <code>Clip</code>. */ public void clip(Shape s){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -379,7 +381,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @since JDK1.1 */ public Shape getClip(){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return null; } @@ -647,7 +651,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -694,7 +700,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { int width, int height, Color bgcolor, ImageObserver observer){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -751,7 +759,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -813,7 +823,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -851,7 +863,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { */ public boolean drawImage(Image img, int x, int y, ImageObserver observer) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -1036,7 +1050,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @since JDK1.1 */ public void setClip(Shape clip) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1334,7 +1350,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see java.awt.AlphaComposite */ public void setComposite(Composite comp){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1345,7 +1363,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see #setComposite */ public Composite getComposite(){ - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return null; } @@ -1486,7 +1506,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see #setClip */ public void drawString(AttributedCharacterIterator iterator, float x, float y) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1589,7 +1611,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see #setClip(Shape) */ public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -1632,7 +1656,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } return false; } @@ -1679,7 +1705,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @param c1 the XOR alternation color */ public void setXORMode(Color c1) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1690,7 +1718,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * overwrite the destination with the current color. */ public void setPaintMode() { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1725,7 +1755,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see #drawRenderedImage */ public void drawRenderedImage(RenderedImage img, AffineTransform xform) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } /** @@ -1750,7 +1782,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable { * @see #setClip */ public void drawRenderableImage(RenderableImage img, AffineTransform xform) { - log.log(POILogger.WARN, "Not implemented"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Not implemented"); + } } protected void applyStroke(SimpleShape shape) { diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java index ff55082afd..68911d1933 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java @@ -170,9 +170,11 @@ public final class FIBFieldHandler { if (dsOffset + dsSize > tableStream.length) { - log.log(POILogger.WARN, "Unhandled data structure points to outside the buffer. " + - "offset = " + dsOffset + ", length = " + dsSize + - ", buffer length = " + tableStream.length); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Unhandled data structure points to outside the buffer. " + + "offset = " + dsOffset + ", length = " + dsSize + + ", buffer length = " + tableStream.length); + } } else { diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java b/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java index eaea30733d..cef396efff 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java @@ -143,7 +143,9 @@ public final class ListTables ListLevel lvl = lst.getLevels()[level]; return lvl; } - log.log(POILogger.WARN, "Requested level " + level + " which was greater than the maximum defined (" + lst.numLevels() + ")"); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Requested level " + level + " which was greater than the maximum defined (" + lst.numLevels() + ")"); + } return null; } diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java b/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java index dd992128ed..58cf567a58 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java @@ -42,9 +42,12 @@ public class NilPICFAndBinData if ( cbHeader != 0x44 )
{
- log.log( POILogger.WARN, "NilPICFAndBinData at offset ", offset,
- " cbHeader 0x" + Integer.toHexString( cbHeader )
- + " != 0x44" );
+ if (log.check(POILogger.WARN)) {
+ log.log(POILogger.WARN, "NilPICFAndBinData at offset ", offset,
+ " cbHeader 0x" + Integer.toHexString(cbHeader)
+ + " != 0x44"
+ );
+ }
}
// skip the 62 ignored bytes
diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java b/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java index 4fd8cc2c35..6e114d8dab 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java @@ -106,9 +106,11 @@ public class PlfLfo if ( ( offset - fcPlfLfo ) != lcbPlfLfo ) { - log.log( POILogger.WARN, "Actual size of PlfLfo is " - + ( offset - fcPlfLfo ) + " bytes, but expected " - + lcbPlfLfo ); + if (log.check(POILogger.WARN)) { + log.log(POILogger.WARN, "Actual size of PlfLfo is " + + (offset - fcPlfLfo) + " bytes, but expected " + + lcbPlfLfo); + } } } diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/Xstz.java b/src/scratchpad/src/org/apache/poi/hwpf/model/Xstz.java index c719f50337..4aef0171fa 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/Xstz.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/Xstz.java @@ -49,8 +49,10 @@ public class Xstz short term = LittleEndian.getShort( data, offset );
if ( term != 0 )
{
- log.log( POILogger.WARN, "chTerm at the end of Xstz at offset ",
- offset, " is not 0" );
+ if (log.check(POILogger.WARN)) {
+ log.log(POILogger.WARN, "chTerm at the end of Xstz at offset ",
+ offset, " is not 0");
+ }
}
}
|