From 15ac6d2b8e83a73ac1f62ab0da0d6a85717f28fd Mon Sep 17 00:00:00 2001 From: Abhishek Koneru Date: Mon, 9 Jul 2012 15:12:11 -0400 Subject: NO_HASHCODE_OVERRIDDEN --- .../netscape/certsrv/base/MetaAttributeDef.java | 54 +++++++++++++--------- .../src/com/netscape/certsrv/util/StatsEvent.java | 2 +- .../cms/publish/publishers/FileBasedPublisher.java | 6 ++- .../netscape/cms/servlet/base/CMSStartServlet.java | 4 +- .../src/com/netscape/cmscore/apps/CMSEngine.java | 9 ++-- .../netscape/cmscore/profile/ProfileSubsystem.java | 4 +- .../com/netscape/cmscore/realm/PKIJNDIRealm.java | 3 +- .../cmscore/request/RequestRepository.java | 2 +- .../com/netscape/cmscore/security/PWsdrCache.java | 10 ++-- .../netscape/cmscore/dbs/CertRecordListTest.java | 2 +- .../com/netscape/cmscore/dbs/DBRegistryTest.java | 2 +- .../com/netscape/cmscore/request/RequestTest.java | 2 +- .../src/com/netscape/cmstools/PasswordCache.java | 12 +++-- .../cmsutil/radius/UserPasswordAttribute.java | 2 +- .../src/netscape/security/acl/PermissionImpl.java | 8 ++++ base/util/src/netscape/security/provider/DSA.java | 9 ++-- .../netscape/security/provider/RSAPublicKey.java | 39 ++++++++++------ base/util/src/netscape/security/util/BigInt.java | 9 ++++ .../src/netscape/security/util/DerInputStream.java | 8 ++-- base/util/src/netscape/security/util/DerValue.java | 11 +++++ base/util/src/netscape/security/x509/AVA.java | 9 ++++ .../src/netscape/security/x509/AlgorithmId.java | 13 ++++++ .../netscape/security/x509/CRLReasonExtension.java | 8 ++++ .../src/netscape/security/x509/GeneralSubtree.java | 2 +- .../netscape/security/x509/GeneralSubtrees.java | 2 +- 25 files changed, 164 insertions(+), 68 deletions(-) (limited to 'base') diff --git a/base/common/src/com/netscape/certsrv/base/MetaAttributeDef.java b/base/common/src/com/netscape/certsrv/base/MetaAttributeDef.java index 63480478f..087110a0f 100644 --- a/base/common/src/com/netscape/certsrv/base/MetaAttributeDef.java +++ b/base/common/src/com/netscape/certsrv/base/MetaAttributeDef.java @@ -129,29 +129,41 @@ public class MetaAttributeDef { return newDef; } - /** - * Compares this attribute definition with another, for equality. - *

- * - * @return true iff names, valueClasses and object identifiers - * are identical. - */ - public boolean equals(Object other) { - if (other == this) - return true; - - if (other instanceof MetaAttributeDef) { - MetaAttributeDef otherDef = (MetaAttributeDef) other; + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((mName == null) ? 0 : mName.hashCode()); + result = prime * result + ((mOid == null) ? 0 : mOid.hashCode()); + result = prime * result + ((mValueClass == null) ? 0 : mValueClass.hashCode()); + return result; + } - if ((mOid != null && otherDef.mOid != null && - !mOid.equals(otherDef.mOid)) || - (mOid == null && otherDef.mOid != null) || - !mName.equals(otherDef.mName) || - !mValueClass.equals(otherDef.mValueClass)) { + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + MetaAttributeDef other = (MetaAttributeDef) obj; + if (mName == null) { + if (other.mName != null) return false; - } - } - return false; + } else if (!mName.equals(other.mName)) + return false; + if (mOid == null) { + if (other.mOid != null) + return false; + } else if (!mOid.equals(other.mOid)) + return false; + if (mValueClass == null) { + if (other.mValueClass != null) + return false; + } else if (!mValueClass.equals(other.mValueClass)) + return false; + return true; } /** diff --git a/base/common/src/com/netscape/certsrv/util/StatsEvent.java b/base/common/src/com/netscape/certsrv/util/StatsEvent.java index 4137aa3b2..07bbf9547 100644 --- a/base/common/src/com/netscape/certsrv/util/StatsEvent.java +++ b/base/common/src/com/netscape/certsrv/util/StatsEvent.java @@ -116,7 +116,7 @@ public class StatsEvent { long a = getTimeTakenSqSum(); long b = (-2 * getAvg() * getTimeTaken()); long c = getAvg() * getAvg() * getNoOfOperations(); - return (long) Math.sqrt((a + b + c) / getNoOfOperations()); + return (long) Math.sqrt(((double) (a + b + c)) / getNoOfOperations()); } } diff --git a/base/common/src/com/netscape/cms/publish/publishers/FileBasedPublisher.java b/base/common/src/com/netscape/cms/publish/publishers/FileBasedPublisher.java index 6a1d528ac..c48aa2db4 100644 --- a/base/common/src/com/netscape/cms/publish/publishers/FileBasedPublisher.java +++ b/base/common/src/com/netscape/cms/publish/publishers/FileBasedPublisher.java @@ -366,8 +366,9 @@ public class FileBasedPublisher implements ILdapPublisher, IExtendedPluginInfo { destName = baseName + ".der"; destFile = new File(destName); - if (destFile.exists()) + if (destFile.exists()) { destFile.delete(); + } renameFile = new File(tempFile); renameFile.renameTo(destFile); @@ -402,8 +403,9 @@ public class FileBasedPublisher implements ILdapPublisher, IExtendedPluginInfo { destName = baseName + ".b64"; destFile = new File(destName); - if (destFile.exists()) + if (destFile.exists()) { destFile.delete(); + } renameFile = new File(tempFile); renameFile.renameTo(destFile); } diff --git a/base/common/src/com/netscape/cms/servlet/base/CMSStartServlet.java b/base/common/src/com/netscape/cms/servlet/base/CMSStartServlet.java index 6f9f43d3a..a8a4008b7 100644 --- a/base/common/src/com/netscape/cms/servlet/base/CMSStartServlet.java +++ b/base/common/src/com/netscape/cms/servlet/base/CMSStartServlet.java @@ -75,7 +75,9 @@ public class CMSStartServlet extends HttpServlet { // Remove the original file if and only if // the backup copy was successful. if (f.exists()) { - f1.delete(); + if (!f1.delete()) { + CMS.debug("CMSStartServlet: init: Cannot delete file : " + old_path); + } // Make certain that the new file has // the correct permissions. diff --git a/base/common/src/com/netscape/cmscore/apps/CMSEngine.java b/base/common/src/com/netscape/cmscore/apps/CMSEngine.java index 13a8bb6bf..84afb8474 100644 --- a/base/common/src/com/netscape/cmscore/apps/CMSEngine.java +++ b/base/common/src/com/netscape/cmscore/apps/CMSEngine.java @@ -657,12 +657,11 @@ public class CMSEngine implements ICMSEngine { try { /* if the file is not there, create one */ File f = new File(path); - if (!f.exists()) { - f.createNewFile(); - } - } catch (Exception e) { + f.createNewFile(); + } catch (IOException e) { + CMS.debug("Cannot create file: " + path + " ." + e.toString()); + throw new EBaseException("Cannot create file: " + path + " ." + e.toString()); } - return new FileConfigStore(path); } diff --git a/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java b/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java index 45807d6e9..1ec3c009a 100644 --- a/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java +++ b/base/common/src/com/netscape/cmscore/profile/ProfileSubsystem.java @@ -173,7 +173,9 @@ public class ProfileSubsystem implements IProfileSubsystem { mConfig.removeSubStore(id); File file1 = new File(configPath); - file1.delete(); + if (!file1.delete()) { + CMS.debug("ProfileSubsystem: deleteProfile: Cannot delete the configuration file : " + configPath); + } mProfileIds.removeElement(id); mProfiles.remove(id); mProfileClassIds.remove(id); diff --git a/base/common/src/com/netscape/cmscore/realm/PKIJNDIRealm.java b/base/common/src/com/netscape/cmscore/realm/PKIJNDIRealm.java index 0576bcf58..86debf3da 100644 --- a/base/common/src/com/netscape/cmscore/realm/PKIJNDIRealm.java +++ b/base/common/src/com/netscape/cmscore/realm/PKIJNDIRealm.java @@ -423,13 +423,12 @@ public class PKIJNDIRealm extends JNDIRealm { String right = expBlock[1]; if (left != null) { - left.trim(); + left = left.trim(); } else { return allowed; } //Massage the right hand side of this expression to be a legal string value. if (right != null) { - right.trim(); right = right.replace("\"", ""); right = right.trim(); } else { diff --git a/base/common/src/com/netscape/cmscore/request/RequestRepository.java b/base/common/src/com/netscape/cmscore/request/RequestRepository.java index ed18c7048..31edc31b0 100644 --- a/base/common/src/com/netscape/cmscore/request/RequestRepository.java +++ b/base/common/src/com/netscape/cmscore/request/RequestRepository.java @@ -174,7 +174,7 @@ class RequestRepository } } - if (obj != null || (obj instanceof RepositoryRecord)) { + if (obj != null && (obj instanceof RepositoryRecord)) { record = (RepositoryRecord) obj; status = record.getPublishingStatus(); } else { diff --git a/base/common/src/com/netscape/cmscore/security/PWsdrCache.java b/base/common/src/com/netscape/cmscore/security/PWsdrCache.java index 810605d41..e9c7af8e5 100644 --- a/base/common/src/com/netscape/cmscore/security/PWsdrCache.java +++ b/base/common/src/com/netscape/cmscore/security/PWsdrCache.java @@ -382,7 +382,9 @@ public class PWsdrCache { if (tmpPWcache.exists()) { // it wasn't removed? - tmpPWcache.delete(); + if (!tmpPWcache.delete()) { + debug("Could not delete the existing " + mPWcachedb + ".tmp file."); + } tmpPWcache = new File(mPWcachedb + ".tmp"); } outstream = new FileOutputStream(mPWcachedb + ".tmp"); @@ -417,10 +419,12 @@ public class PWsdrCache { origFile.getCanonicalPath()); } catch (IOException e) { CMS.debug("Unable to change file permissions on " - + origFile.toString()); + + origFile.toString()); } } - tmpPWcache.delete(); + if (!tmpPWcache.delete()) { + debug("Could not delete the existing " + mPWcachedb + ".tmp file."); + } debug("operation completed for " + mPWcachedb); } } catch (Exception exx) { diff --git a/base/common/test/com/netscape/cmscore/dbs/CertRecordListTest.java b/base/common/test/com/netscape/cmscore/dbs/CertRecordListTest.java index d9c24106c..100d63264 100644 --- a/base/common/test/com/netscape/cmscore/dbs/CertRecordListTest.java +++ b/base/common/test/com/netscape/cmscore/dbs/CertRecordListTest.java @@ -58,7 +58,7 @@ public class CertRecordListTest extends CMSBaseTestCase { assertEquals(7, dbList.lastIndexGetElementAtCalledWith); } - public class DBVirtualListStub extends DBVirtualListDefaultStub { + public static class DBVirtualListStub extends DBVirtualListDefaultStub { public int size = 0; public int getElementAtCallCount = 0; public int lastIndexGetElementAtCalledWith = 0; diff --git a/base/common/test/com/netscape/cmscore/dbs/DBRegistryTest.java b/base/common/test/com/netscape/cmscore/dbs/DBRegistryTest.java index 4a52bbcef..cb61a12d3 100644 --- a/base/common/test/com/netscape/cmscore/dbs/DBRegistryTest.java +++ b/base/common/test/com/netscape/cmscore/dbs/DBRegistryTest.java @@ -110,7 +110,7 @@ public class DBRegistryTest extends CMSBaseTestCase { assertTrue(extAttrMapper.mapLDAPAttrsCalled); } - class DBSubsystemStub extends DBSubsystemDefaultStub { + static class DBSubsystemStub extends DBSubsystemDefaultStub { DBRegistry registry; public IDBRegistry getRegistry() { diff --git a/base/common/test/com/netscape/cmscore/request/RequestTest.java b/base/common/test/com/netscape/cmscore/request/RequestTest.java index b3a8c6ee5..4f761f982 100644 --- a/base/common/test/com/netscape/cmscore/request/RequestTest.java +++ b/base/common/test/com/netscape/cmscore/request/RequestTest.java @@ -601,7 +601,7 @@ public class RequestTest extends CMSBaseTestCase { * getting a value out. It assumes BtoA is always called first, stores * the value passed in, and then returns that value for BtoA. */ - class CMSMemoryStub extends CMSEngineDefaultStub { + static class CMSMemoryStub extends CMSEngineDefaultStub { boolean bToACalled = false; byte[] bToACalledWith = null; diff --git a/base/java-tools/src/com/netscape/cmstools/PasswordCache.java b/base/java-tools/src/com/netscape/cmstools/PasswordCache.java index 89254a2a5..d97a21706 100644 --- a/base/java-tools/src/com/netscape/cmstools/PasswordCache.java +++ b/base/java-tools/src/com/netscape/cmstools/PasswordCache.java @@ -609,7 +609,9 @@ class PWsdrCache { if (tmpPWcache.exists()) { // it wasn't removed? - tmpPWcache.delete(); + if (!tmpPWcache.delete()) { + debug("Could not delete the existing " + mPWcachedb + ".tmp file."); + } } outstream = new FileOutputStream(mPWcachedb + ".tmp"); @@ -626,7 +628,9 @@ class PWsdrCache { try { // Always remove any pre-existing target file if (origFile.exists()) { - origFile.delete(); + if (!origFile.delete()) { + debug("Could not delete the existing " + mPWcachedb + "file."); + } } if (isNT()) { @@ -644,7 +648,9 @@ class PWsdrCache { // Remove the temporary file if and only if // the "rename" was successful. if (origFile.exists()) { - tmpPWcache.delete(); + if (!tmpPWcache.delete()) { + debug("Could not delete the existing " + mPWcachedb + ".tmp file."); + } // Make certain that the final file has // the correct permissions. diff --git a/base/util/src/com/netscape/cmsutil/radius/UserPasswordAttribute.java b/base/util/src/com/netscape/cmsutil/radius/UserPasswordAttribute.java index 31c27cdfd..d87811d11 100644 --- a/base/util/src/com/netscape/cmsutil/radius/UserPasswordAttribute.java +++ b/base/util/src/com/netscape/cmsutil/radius/UserPasswordAttribute.java @@ -61,7 +61,7 @@ public class UserPasswordAttribute extends Attribute { if (i < up.length) { ret[i] = (byte) (sum[i % 16] ^ up[i]); } else { - ret[i] = (byte) (sum[i % 16] ^ 0); + ret[i] = sum[i % 16]; } md5.update(ret[i]); if ((i % 16) == 15) { diff --git a/base/util/src/netscape/security/acl/PermissionImpl.java b/base/util/src/netscape/security/acl/PermissionImpl.java index b20570a81..80b36e1da 100644 --- a/base/util/src/netscape/security/acl/PermissionImpl.java +++ b/base/util/src/netscape/security/acl/PermissionImpl.java @@ -54,6 +54,14 @@ public class PermissionImpl implements Permission { } } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((permission == null) ? 0 : permission.hashCode()); + return result; + } + /** * Prints a stringified version of the permission. * diff --git a/base/util/src/netscape/security/provider/DSA.java b/base/util/src/netscape/security/provider/DSA.java index 64575b870..9403475e0 100644 --- a/base/util/src/netscape/security/provider/DSA.java +++ b/base/util/src/netscape/security/provider/DSA.java @@ -311,11 +311,12 @@ public final class DSA extends Signature { */ private int compareSeeds(int[] seed1, int[] seed2) { - if ((seed1 == null && seed1 == null) || - (seed1 == null && seed2 != null) || - (seed1 != null && seed2 == null) || - seed1.length != seed2.length) + if (seed1 == null || seed2 == null) { return 1; + } + if (seed1.length != seed2.length) { + return 1; + } for (int i = 0; i < seed1.length; i++) { if (seed1[i] != seed2[i]) diff --git a/base/util/src/netscape/security/provider/RSAPublicKey.java b/base/util/src/netscape/security/provider/RSAPublicKey.java index 40f5583ac..bd5aa2fe4 100644 --- a/base/util/src/netscape/security/provider/RSAPublicKey.java +++ b/base/util/src/netscape/security/provider/RSAPublicKey.java @@ -150,23 +150,34 @@ public final class RSAPublicKey extends X509Key implements Serializable { } @Override - public boolean equals(Object object) { + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((modulus == null) ? 0 : modulus.hashCode()); + result = prime * result + ((publicExponent == null) ? 0 : publicExponent.hashCode()); + return result; + } - if (object == null) { + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (!super.equals(obj)) return false; - } - if (object instanceof RSAPublicKey) { - RSAPublicKey rhs = (RSAPublicKey) object; - if (this == rhs) { - return true; - } - if (!(bigIntEquals(this.modulus, rhs.modulus) && bigIntEquals(this.publicExponent, rhs.publicExponent))) { + if (getClass() != obj.getClass()) + return false; + RSAPublicKey other = (RSAPublicKey) obj; + if (modulus == null) { + if (other.modulus != null) return false; - } - return super.equals(rhs); - } - - return false; + } else if (!modulus.equals(other.modulus)) + return false; + if (publicExponent == null) { + if (other.publicExponent != null) + return false; + } else if (!publicExponent.equals(other.publicExponent)) + return false; + return true; } public boolean bigIntEquals(BigInt x, BigInt y) { diff --git a/base/util/src/netscape/security/util/BigInt.java b/base/util/src/netscape/security/util/BigInt.java index 62a03cef5..c930edf80 100644 --- a/base/util/src/netscape/security/util/BigInt.java +++ b/base/util/src/netscape/security/util/BigInt.java @@ -19,6 +19,7 @@ package netscape.security.util; import java.io.Serializable; import java.math.BigInteger; +import java.util.Arrays; /** * A low-overhead arbitrary-precision unsigned integer. @@ -192,6 +193,14 @@ public final class BigInt implements Serializable { return false; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + Arrays.hashCode(places); + return result; + } + /** * Returns true iff the parameter is numerically equivalent. * diff --git a/base/util/src/netscape/security/util/DerInputStream.java b/base/util/src/netscape/security/util/DerInputStream.java index ff1c54ba2..40763a6ba 100644 --- a/base/util/src/netscape/security/util/DerInputStream.java +++ b/base/util/src/netscape/security/util/DerInputStream.java @@ -453,7 +453,7 @@ public class DerInputStream { if (Htmp >= 24 || Mtmp >= 60) throw new IOException("Parse UTCtime, +hhmm"); - utcTime += ((Htmp * 60) + Mtmp) * 60 * 1000; + utcTime += ((Htmp * 60) + Mtmp) * 60 * 1000L; } break; @@ -466,7 +466,7 @@ public class DerInputStream { if (Htmp >= 24 || Mtmp >= 60) throw new IOException("Parse UTCtime, -hhmm"); - utcTime -= ((Htmp * 60) + Mtmp) * 60 * 1000; + utcTime -= ((Htmp * 60) + Mtmp) * 60 * 1000L; } break; @@ -560,7 +560,7 @@ public class DerInputStream { if (Htmp >= 24 || Mtmp >= 60) throw new IOException("Parse GeneralizedTime, +hhmm"); - utcTime += ((Htmp * 60) + Mtmp) * 60 * 1000; + utcTime += ((Htmp * 60) + Mtmp) * 60 * 1000L; } break; @@ -573,7 +573,7 @@ public class DerInputStream { if (Htmp >= 24 || Mtmp >= 60) throw new IOException("Parse GeneralizedTime, -hhmm"); - utcTime -= ((Htmp * 60) + Mtmp) * 60 * 1000; + utcTime -= ((Htmp * 60) + Mtmp) * 60 * 1000L; } break; diff --git a/base/util/src/netscape/security/util/DerValue.java b/base/util/src/netscape/security/util/DerValue.java index 40215626a..87a0a38a3 100644 --- a/base/util/src/netscape/security/util/DerValue.java +++ b/base/util/src/netscape/security/util/DerValue.java @@ -610,6 +610,17 @@ public class DerValue { return false; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((buffer == null) ? 0 : buffer.hashCode()); + result = prime * result + ((data == null) ? 0 : data.hashCode()); + result = prime * result + length; + result = prime * result + tag; + return result; + } + /** * Bitwise equality comparison. DER encoded values have a single * encoding, so that bitwise equality of the encoded values is an diff --git a/base/util/src/netscape/security/x509/AVA.java b/base/util/src/netscape/security/x509/AVA.java index fc6601223..534f7c212 100644 --- a/base/util/src/netscape/security/x509/AVA.java +++ b/base/util/src/netscape/security/x509/AVA.java @@ -203,6 +203,15 @@ public final class AVA implements DerEncoder { return false; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((oid == null) ? 0 : oid.hashCode()); + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + /** * Encodes the AVA to a Der output stream. * AVAs are encoded as a SEQUENCE of two elements. diff --git a/base/util/src/netscape/security/x509/AlgorithmId.java b/base/util/src/netscape/security/x509/AlgorithmId.java index 4b108ac4b..a027c19cc 100644 --- a/base/util/src/netscape/security/x509/AlgorithmId.java +++ b/base/util/src/netscape/security/x509/AlgorithmId.java @@ -498,6 +498,17 @@ public class AlgorithmId implements Serializable, DerEncoder { return false; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((algParams == null) ? 0 : algParams.hashCode()); + result = prime * result + ((algid == null) ? 0 : algid.hashCode()); + result = prime * result + ((params == null) ? 0 : params.hashCode()); + result = prime * result + ((paramsString == null) ? 0 : paramsString.hashCode()); + return result; + } + /** * Compares two algorithm IDs for equality. Returns true iff * they are the same algorithm, ignoring algorithm parameters. @@ -506,6 +517,8 @@ public class AlgorithmId implements Serializable, DerEncoder { return algid.equals(id); } + + /*****************************************************************/ /* diff --git a/base/util/src/netscape/security/x509/CRLReasonExtension.java b/base/util/src/netscape/security/x509/CRLReasonExtension.java index 6a5fd6295..77339528e 100644 --- a/base/util/src/netscape/security/x509/CRLReasonExtension.java +++ b/base/util/src/netscape/security/x509/CRLReasonExtension.java @@ -231,4 +231,12 @@ public final class CRLReasonExtension extends Extension implements CertAttrSet { return false; } + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((mReason == null) ? 0 : mReason.hashCode()); + return result; + } + } diff --git a/base/util/src/netscape/security/x509/GeneralSubtree.java b/base/util/src/netscape/security/x509/GeneralSubtree.java index a49109846..4c20bb4ba 100644 --- a/base/util/src/netscape/security/x509/GeneralSubtree.java +++ b/base/util/src/netscape/security/x509/GeneralSubtree.java @@ -52,7 +52,7 @@ public class GeneralSubtree implements Serializable { private int minimum = MIN_DEFAULT; private int maximum = -1; - private PrettyPrintFormat pp = new PrettyPrintFormat(":"); + private transient PrettyPrintFormat pp = new PrettyPrintFormat(":"); /** * The default constructor for the class. diff --git a/base/util/src/netscape/security/x509/GeneralSubtrees.java b/base/util/src/netscape/security/x509/GeneralSubtrees.java index 9d8c632a3..edbab7ee9 100644 --- a/base/util/src/netscape/security/x509/GeneralSubtrees.java +++ b/base/util/src/netscape/security/x509/GeneralSubtrees.java @@ -38,7 +38,7 @@ public class GeneralSubtrees implements Serializable { private static final long serialVersionUID = 6308776640697100848L; private Vector trees; - private PrettyPrintFormat pp = new PrettyPrintFormat(":"); + private transient PrettyPrintFormat pp = new PrettyPrintFormat(":"); /** * The default constructor for the class. -- cgit