From: <nik...@us...> - 2016-03-09 13:36:57
|
Revision: 2484 http://sourceforge.net/p/jsbml/code/2484 Author: niko-rodrigue Date: 2016-03-09 13:36:54 +0000 (Wed, 09 Mar 2016) Log Message: ----------- corrected the number returned by ASTNode.getreal() in the case of REAL_E, when the mantissa is NaN or infinity + a bit of optimisation by avoiding to call logger.isDebugEnabled() many times when only one is enough Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/ASTNode.java trunk/core/src/org/sbml/jsbml/util/SimpleTreeNodeChangeListener.java Modified: trunk/core/src/org/sbml/jsbml/ASTNode.java =================================================================== --- trunk/core/src/org/sbml/jsbml/ASTNode.java 2016-03-09 13:32:40 UTC (rev 2483) +++ trunk/core/src/org/sbml/jsbml/ASTNode.java 2016-03-09 13:36:54 UTC (rev 2484) @@ -1437,7 +1437,8 @@ * A {@link Logger} for this class. */ private static transient final Logger logger = Logger.getLogger(ASTNode.class); - + private static final transient boolean isDebugEnabled = logger.isDebugEnabled(); + /** * The part of a number in scientific format (with an E) that is on the left * side of the E (the prefix of the number). For instance, in the number @@ -1751,7 +1752,7 @@ * the node to add as child. */ public void addChild(ASTNode child) { - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug(" adding child current node: \n" + astNodeToTree(this, "", "")); logger.debug(" adding child: \n" + astNodeToTree(child, "", "")); } @@ -2635,6 +2636,9 @@ case REAL_E:{ // mantissa * Math.pow(10, getExponent())) ==> this formula does not give exact values. // for example: mantissa = 3.0, exponent = -17 ==> 2.9999999999999994E-17 instead of 3.0E-17 + if (Double.isNaN(mantissa) || Double.isInfinite(mantissa)) { + return mantissa; + } return Double.parseDouble(mantissa + "E" + getExponent()); } case RATIONAL: @@ -2890,7 +2894,7 @@ */ private void initDefaults() { ASTNode old = this; - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug(MessageFormat.format(resourceBundle.getString("ASTNode.initDefaults"), (type == null ? Type.UNKNOWN : type))); } @@ -3903,7 +3907,7 @@ */ public void setType(String typeStr) { // System.out.println("ASTNode: setType(String) called."); - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug("ASTNode: setType(String) called: " + typeStr); } @@ -3940,7 +3944,7 @@ String sType = type.toString(); - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug(MessageFormat.format(resourceBundle.getString("ASTNode.setType"), this.type, sType)); } @@ -4286,7 +4290,7 @@ // log the exception e.printStackTrace(); - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.error(MessageFormat.format(resourceBundle.getString("ASTNode.toString"), e.getMessage()), e); } else { // TODO: Do not print this message if parsing the file !!! Or remove it @@ -4294,7 +4298,7 @@ } } catch (RuntimeException e) { // added to prevent a crash when we cannot create the formula - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.error(MessageFormat.format(resourceBundle.getString("ASTNode.toString"), e.getMessage()), e); } } Modified: trunk/core/src/org/sbml/jsbml/util/SimpleTreeNodeChangeListener.java =================================================================== --- trunk/core/src/org/sbml/jsbml/util/SimpleTreeNodeChangeListener.java 2016-03-09 13:32:40 UTC (rev 2483) +++ trunk/core/src/org/sbml/jsbml/util/SimpleTreeNodeChangeListener.java 2016-03-09 13:36:54 UTC (rev 2484) @@ -45,6 +45,7 @@ * A {@link Logger} for this class. */ private static final transient Logger logger = Logger.getLogger(SimpleTreeNodeChangeListener.class); + private static final transient boolean isDebugEnabled = logger.isDebugEnabled(); /** * Creates an {@link TreeNodeChangeListener} that writes all events to the @@ -66,7 +67,7 @@ */ @Override public void nodeAdded(TreeNode treeNode) { - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug(MessageFormat.format("[ADD]\t{0}", saveToString(treeNode))); } } @@ -76,7 +77,7 @@ */ @Override public void nodeRemoved(TreeNodeRemovedEvent evt) { - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { String element = "null", prevParent = "null"; if (evt != null) { element = saveToString(evt.getSource()); @@ -91,7 +92,7 @@ */ @Override public void propertyChange(PropertyChangeEvent evt) { - if (logger.isDebugEnabled()) { + if (isDebugEnabled) { logger.debug(MessageFormat.format("[CHG]\t{0}", saveToString(evt))); } } @@ -131,7 +132,7 @@ } else { sb.append("; oldValue=").append(evt.getOldValue()); } - if (evt.getNewValue() != null && evt.getNewValue() instanceof ASTNode) { + if ((evt.getNewValue() != null) && (evt.getNewValue() instanceof ASTNode)) { sb.append("; newValue=").append(((ASTNode) evt.getNewValue()).toSimpleString()); } else { sb.append("; newValue=").append(evt.getNewValue()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |