diff options
Diffstat (limited to 'libjava/classpath/gnu/javax')
40 files changed, 556 insertions, 157 deletions
diff --git a/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java b/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java new file mode 100644 index 00000000000..829f40cbf84 --- /dev/null +++ b/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java @@ -0,0 +1,138 @@ +/* ImageViewer.java -- Simple image display component. + Copyright (C) 2004 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.javax.activation.viewers; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Image; +import java.awt.Graphics; +import java.awt.MediaTracker; +import java.awt.Toolkit; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.IOException; + +import javax.activation.CommandObject; +import javax.activation.DataHandler; + +/** + * Simple image display component. + * + * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> + * @version 1.0.2 + */ +public class ImageViewer extends Component + implements CommandObject +{ + + private Image image; + + /** + * Returns the preferred size for this component (the image size). + */ + public Dimension getPreferredSize() + { + Dimension ps = new Dimension(0, 0); + if (image != null) + { + ps.width = image.getWidth(this); + ps.height = image.getHeight(this); + } + return ps; + } + + public void setCommandContext(String verb, DataHandler dh) + throws IOException + { + // Read image into a byte array + InputStream in = dh.getInputStream(); + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + byte[] buf = new byte[4096]; + for (int len = in.read(buf); len != -1; len = in.read(buf)) + bytes.write(buf, 0, len); + in.close(); + // Create and prepare the image + Toolkit toolkit = getToolkit(); + Image img = toolkit.createImage(bytes.toByteArray()); + try + { + MediaTracker tracker = new MediaTracker(this); + tracker.addImage(img, 0); + tracker.waitForID(0); + } + catch (InterruptedException e) + { + } + toolkit.prepareImage(img, -1, -1, this); + } + + /** + * Image bits arrive. + */ + public boolean imageUpdate(Image image, int flags, int x, int y, + int width, int height) + { + if ((flags & ALLBITS) != 0) + { + this.image = image; + invalidate(); + repaint(); + return false; + } + return ((flags & ERROR) == 0); + } + + /** + * Scale the image into this component's bounds. + */ + public void paint(Graphics g) + { + if (image != null) + { + Dimension is = new Dimension(image.getWidth(this), + image.getHeight(this)); + if (is.width > -1 && is.height > -1) + { + Dimension cs = getSize(); + g.drawImage(image, 0, 0, cs.width, cs.height, + 0, 0, is.width, is.height, this); + } + } + } + +} diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java b/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java new file mode 100644 index 00000000000..1995ae12282 --- /dev/null +++ b/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java @@ -0,0 +1,119 @@ +/* TextEditor.java -- Simple text editor component. + Copyright (C) 2004 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.javax.activation.viewers; + +import java.awt.Dimension; +import java.awt.TextArea; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.IOException; +import java.io.OutputStream; +import javax.activation.CommandObject; +import javax.activation.DataHandler; + +/** + * Simple text editor component. + * + * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> + * @version 1.0.2 + */ +public class TextEditor extends TextArea + implements CommandObject, ActionListener +{ + + private transient DataHandler dh; + + public TextEditor() + { + super("", 24, 80, 1); + } + + public Dimension getPreferredSize() + { + return getMinimumSize(24, 80); + } + + public void setCommandContext(String verb, DataHandler dh) + throws IOException + { + this.dh = dh; + InputStream in = dh.getInputStream(); + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + byte[] buf = new byte[4096]; + for (int len = in.read(buf); len != -1; len = in.read(buf)) + bytes.write(buf, 0, len); + in.close(); + setText(bytes.toString()); + } + + public void actionPerformed(ActionEvent event) + { + if ("save".equals(event.getActionCommand()) && dh != null) + { + OutputStream out = null; + try + { + out = dh.getOutputStream(); + if (out != null) + out.write(getText().getBytes()); + } + catch (IOException e) + { + e.printStackTrace(System.err); + } + finally + { + if (out != null) + { + try + { + + out.close(); + } + catch (IOException e) + { + e.printStackTrace(System.err); + } + } + } + } + } + +} diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java b/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java new file mode 100644 index 00000000000..2b4aa90c58f --- /dev/null +++ b/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java @@ -0,0 +1,81 @@ +/* TextViewer.java -- Simple text viewer component. + Copyright (C) 2004 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.javax.activation.viewers; + +import java.awt.Dimension; +import java.awt.TextArea; +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import java.io.IOException; +import javax.activation.CommandObject; +import javax.activation.DataHandler; + +/** + * Simple text display component. + * + * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a> + * @version 1.0.2 + */ +public class TextViewer extends TextArea + implements CommandObject +{ + + public TextViewer() + { + super("", 24, 80, 1); + setEditable(false); + } + + public Dimension getPreferredSize() + { + return getMinimumSize(24, 80); + } + + public void setCommandContext(String verb, DataHandler dh) + throws IOException + { + InputStream in = dh.getInputStream(); + ByteArrayOutputStream bytes = new ByteArrayOutputStream(); + byte[] buf = new byte[4096]; + for (int len = in.read(buf); len != -1; len = in.read(buf)) + bytes.write(buf, 0, len); + in.close(); + setText(bytes.toString()); + } + +} diff --git a/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java b/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java index 2c972f858d3..4e93322efb9 100644 --- a/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java +++ b/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.assembly; +import gnu.java.lang.CPStringBuilder; + import java.io.PrintStream; import java.io.PrintWriter; @@ -129,7 +131,7 @@ public class TransformerException */ public String toString() { - StringBuffer sb = new StringBuffer(this.getClass().getName()) + CPStringBuilder sb = new CPStringBuilder(this.getClass().getName()) .append(": ").append(super.toString()); if (_exception != null) sb.append("; caused by: ").append(_exception.toString()); diff --git a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java index a5bbe698769..bae142a638d 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.cipher; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Configuration; import java.security.InvalidKeyException; @@ -88,7 +90,7 @@ public abstract class BaseCipher public String name() { - StringBuffer sb = new StringBuffer(name).append('-'); + CPStringBuilder sb = new CPStringBuilder(name).append('-'); if (currentKey == null) sb.append(String.valueOf(8 * defaultBlockSize)); else diff --git a/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java b/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java index 0357c163d41..a917e223088 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java +++ b/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.jce.sig; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Registry; import gnu.java.security.der.DER; import gnu.java.security.der.DERReader; @@ -195,7 +197,7 @@ public class DHParameters protected String engineToString() { - StringBuffer sb = new StringBuffer("p="); + CPStringBuilder sb = new CPStringBuilder("p="); if (p == null) sb.append("???"); else diff --git a/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java b/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java index f0fb1bb83f9..405f011adde 100644 --- a/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java +++ b/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.key; +import gnu.java.lang.CPStringBuilder; + import java.io.PrintStream; import java.io.PrintWriter; import java.io.Serializable; @@ -157,7 +159,7 @@ public class KeyAgreementException */ public String toString() { - StringBuffer sb = new StringBuffer(this.getClass().getName()).append(": ") + CPStringBuilder sb = new CPStringBuilder(this.getClass().getName()).append(": ") .append(super.toString()); if (cause != null) sb.append("; caused by: ").append(cause.toString()); diff --git a/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java b/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java index 6d9418ccafa..02e43229044 100644 --- a/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java +++ b/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.mode; +import gnu.java.lang.CPStringBuilder; + import gnu.javax.crypto.cipher.IBlockCipher; import java.security.InvalidKeyException; @@ -110,7 +112,7 @@ public abstract class BaseMode public String name() { - return new StringBuffer(name).append('(').append(cipher.name()).append(')') + return new CPStringBuilder(name).append('(').append(cipher.name()).append(')') .toString(); } diff --git a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java index 8b475d2d8cb..adc2c9bbc02 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java +++ b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.pad; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Configuration; import java.util.Map; @@ -67,7 +69,7 @@ public abstract class BasePad public String name() { - final StringBuffer sb = new StringBuffer(name); + final CPStringBuilder sb = new CPStringBuilder(name); if (blockSize != -1) sb.append('-').append(String.valueOf(8 * blockSize)); return sb.toString(); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java index 2145512215a..a6a06b6b849 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.crammd5; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Registry; import gnu.java.security.util.Util; import gnu.javax.crypto.mac.HMacFactory; @@ -83,7 +85,7 @@ class CramMD5Util final byte[] result; try { - result = new StringBuffer("<") + result = new CPStringBuilder("<") .append(encoded.substring(0,encoded.length())) .append(".").append(String.valueOf(System.currentTimeMillis())) .append("@").append(hostname).append(">") diff --git a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java index df952111660..4900842a737 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.crammd5; +import gnu.java.lang.CPStringBuilder; + import gnu.javax.crypto.sasl.NoSuchUserException; import gnu.javax.crypto.sasl.UserAlreadyExistsException; @@ -201,13 +203,13 @@ public class PasswordFile pw = new PrintWriter(fos); String key; String[] fields; - StringBuffer sb; + CPStringBuilder sb; int i; for (Iterator it = entries.keySet().iterator(); it.hasNext();) { key = (String) it.next(); fields = (String[]) entries.get(key); - sb = new StringBuffer(fields[0]); + sb = new CPStringBuilder(fields[0]); for (i = 1; i < fields.length; i++) sb.append(":").append(fields[i]); pw.println(sb.toString()); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java index b6fb3f87ead..4888214d821 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.plain; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.action.GetPropertyAction; import gnu.javax.crypto.sasl.NoSuchUserException; import gnu.javax.crypto.sasl.UserAlreadyExistsException; @@ -205,13 +207,13 @@ public class PasswordFile pw = new PrintWriter(fos); String key; String[] fields; - StringBuffer sb; + CPStringBuilder sb; Enumeration keys = entries.keys(); while (keys.hasMoreElements()) { key = (String) keys.nextElement(); fields = (String[]) entries.get(key); - sb = new StringBuffer(fields[0]); + sb = new CPStringBuilder(fields[0]); for (int i = 1; i < fields.length; i++) sb.append(":" + fields[i]); pw.println(sb.toString()); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java b/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java index 5c60578db67..87fffa01ee1 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.plain; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Registry; import gnu.javax.crypto.sasl.ClientMechanism; @@ -128,7 +130,7 @@ public class PlainClient } if (password == null) throw new SaslException("null password supplied"); - final StringBuffer sb = new StringBuffer(); + final CPStringBuilder sb = new CPStringBuilder(); if (authorizationID != null) sb.append(authorizationID); sb.append('\0'); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java index 36888df8724..7946e84fbcc 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.srp; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Registry; import gnu.java.security.util.Util; import gnu.javax.crypto.key.srp6.SRPAlgorithm; @@ -445,12 +447,12 @@ public class PasswordFile { String ndx; String[] mpi; - StringBuffer sb; + CPStringBuilder sb; for (Iterator it = configurations.keySet().iterator(); it.hasNext();) { ndx = (String) it.next(); mpi = (String[]) configurations.get(ndx); - sb = new StringBuffer(ndx) + sb = new CPStringBuilder(ndx) .append(":").append(mpi[0]) .append(":").append(mpi[1]); pw.println(sb.toString()); @@ -591,7 +593,7 @@ public class PasswordFile { String user, digestID; HashMap fields, verifiers; - StringBuffer sb1, sb2; + CPStringBuilder sb1, sb2; Iterator j; final Iterator i = entries.keySet().iterator(); while (i.hasNext()) @@ -601,7 +603,7 @@ public class PasswordFile if (! user.equals(fields.get(USER_FIELD))) throw new IOException("Inconsistent SRP password data"); verifiers = (HashMap) fields.get(VERIFIERS_FIELD); - sb1 = new StringBuffer(user) + sb1 = new CPStringBuilder(user) .append(":").append((String) verifiers.get("0")) .append(":").append((String) fields.get(SALT_FIELD)) .append(":").append((String) fields.get(CONFIG_FIELD)); @@ -614,7 +616,7 @@ public class PasswordFile if (! "0".equals(digestID)) { // #0 is the default digest, already present in tpasswd! - sb2 = new StringBuffer(digestID) + sb2 = new CPStringBuilder(digestID) .append(":").append(user) .append(":").append((String) verifiers.get(digestID)); pw2.println(sb2.toString()); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java index f4ef4cc34c1..3406c14cec4 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.srp; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Configuration; import gnu.java.security.Registry; import gnu.java.security.hash.MD5; @@ -863,7 +865,7 @@ public class SRPClient // For now we just select the defaults. Later we need to add support for // properties (perhaps in a file) where a user can specify the list of // algorithms they would prefer to use. - final StringBuffer sb = new StringBuffer(); + final CPStringBuilder sb = new CPStringBuilder(); sb.append(SRPRegistry.OPTION_SRP_DIGEST) .append("=").append(mdName).append(","); if (replayDetection) diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java index ff7e4e9d689..3f000deefbf 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.srp; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Configuration; import gnu.java.security.Registry; import gnu.java.security.util.PRNG; @@ -612,7 +614,7 @@ public class SRPServer s = (String) properties.get(SRPRegistry.SRP_REPLAY_DETECTION); final boolean replayDetection = (s == null ? SRPRegistry.DEFAULT_REPLAY_DETECTION : Boolean.valueOf(s).booleanValue()); - final StringBuffer sb = new StringBuffer(); + final CPStringBuilder sb = new CPStringBuilder(); sb.append(SRPRegistry.OPTION_SRP_DIGEST).append("=") .append(srp.getAlgorithm()).append(","); diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java index e9b1a728273..9fa83295a0f 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.crypto.sasl.srp; +import gnu.java.lang.CPStringBuilder; + import java.util.HashMap; /** @@ -84,7 +86,7 @@ public class ServerStore static synchronized final byte[] getNewSessionID() { final String sid = String.valueOf(++counter); - return new StringBuffer("SID-") + return new CPStringBuilder("SID-") .append("0000000000".substring(0, 10 - sid.length())).append(sid) .toString().getBytes(); } diff --git a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java index 08b5041c967..be42ffae1ee 100644 --- a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java +++ b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java @@ -178,7 +178,6 @@ public class BMPImageWriter encoder.encode(out, streamMetadata, image, param); else throw new BMPException("Encoder has not been initialized."); - out.close(); } /** diff --git a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java index b2a4273c93a..32f9f59d1ac 100644 --- a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java +++ b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java @@ -51,7 +51,7 @@ public class BMPImageWriterSpi static final String vendorName = "GNU"; static final String version = "0.1"; static final String writerClassName = "gnu.javax.imageio.bmp.BMPImageWriter"; - static final String[] names = { "Microsoft Windows BMP" }; + static final String[] names = { "bmp", "BMP", "Microsoft Windows BMP" }; static final String[] suffixes = { ".bmp", ".bm" }; static final String[] MIMETypes = { "image/bmp", "image/x-windows-bmp" }; static final String[] readerSpiNames = { "gnu.javax.imageio.bmp.BMPImageReaderSpi" }; diff --git a/libjava/classpath/gnu/javax/management/Server.java b/libjava/classpath/gnu/javax/management/Server.java index 8e8d826c00f..e35c3b11745 100644 --- a/libjava/classpath/gnu/javax/management/Server.java +++ b/libjava/classpath/gnu/javax/management/Server.java @@ -48,12 +48,13 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; + import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.ConcurrentHashMap; import javax.management.Attribute; import javax.management.AttributeList; @@ -113,19 +114,20 @@ public class Server /** * The registered beans, represented as a map of * {@link javax.management.ObjectName}s to - * {@link java.lang.Object}s. + * {@link gnu.javax.management.Server.ServerInfo}s. */ - private final Map beans = new HashMap(); + private final ConcurrentHashMap<ObjectName,ServerInfo> beans = + new ConcurrentHashMap<ObjectName,ServerInfo>(); /** * The default domain. */ - private String defaultDomain; + private final String defaultDomain; /** * The outer server. */ - private MBeanServer outer; + private final MBeanServer outer; /** * The class loader repository. @@ -134,9 +136,15 @@ public class Server /** * The map of listener delegates to the true - * listener. + * listener. We wrap this in an inner class + * to delay initialisation until a listener + * is actually added. */ - private Map listeners; + private static class LazyListenersHolder + { + private static final Map<NotificationListener,NotificationListener> listeners = + new ConcurrentHashMap<NotificationListener,NotificationListener>(); + } /** * An MBean that emits notifications when an MBean is registered and @@ -145,7 +153,10 @@ public class Server */ private final MBeanServerDelegate delegate; - static private final AtomicLong sequenceNumber = new AtomicLong(1); + /** + * Provides sequencing for notifications about registrations. + */ + private static final AtomicLong sequenceNumber = new AtomicLong(1); /** * Initialise the delegate name. @@ -274,7 +285,7 @@ public class Server private Object getBean(ObjectName name) throws InstanceNotFoundException { - ServerInfo bean = (ServerInfo) beans.get(name); + ServerInfo bean = beans.get(name); if (bean == null) throw new InstanceNotFoundException("The bean, " + name + ", was not found."); @@ -319,12 +330,10 @@ public class Server if (bean instanceof NotificationBroadcaster) { NotificationBroadcaster bbean = (NotificationBroadcaster) bean; - if (listeners == null) - listeners = new HashMap(); NotificationListener indirection = new ServerNotificationListener(bean, name, listener); bbean.addNotificationListener(indirection, filter, passback); - listeners.put(listener, indirection); + LazyListenersHolder.listeners.put(listener, indirection); } } @@ -671,7 +680,7 @@ public class Server { try { - Class c = getClassLoaderRepository().loadClass(name); + Class<?> c = getClassLoaderRepository().loadClass(name); return new ServerInputStream(new ByteArrayInputStream(data), c.getClassLoader()); } @@ -717,7 +726,7 @@ public class Server { try { - Class c = getClassLoader(loader).loadClass(name); + Class<?> c = getClassLoader(loader).loadClass(name); return new ServerInputStream(new ByteArrayInputStream(data), c.getClassLoader()); } @@ -951,7 +960,6 @@ public class Server return defaultDomain; } - /** * Returns an array containing all the domains used by beans registered * with this server. The ordering of the array is undefined. @@ -975,11 +983,11 @@ public class Server public String[] getDomains() { checkSecurity(null, null, "getDomains"); - Set domains = new HashSet(); - Iterator iterator = beans.keySet().iterator(); + Set<String> domains = new HashSet<String>(); + Iterator<ObjectName> iterator = beans.keySet().iterator(); while (iterator.hasNext()) { - String d = ((ObjectName) iterator.next()).getDomain(); + String d = iterator.next().getDomain(); try { checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains"); @@ -990,7 +998,7 @@ public class Server /* Ignored */ } } - return (String[]) domains.toArray(new String[domains.size()]); + return domains.toArray(new String[domains.size()]); } /** @@ -1077,7 +1085,7 @@ public class Server public ObjectInstance getObjectInstance(ObjectName name) throws InstanceNotFoundException { - ServerInfo bean = (ServerInfo) beans.get(name); + ServerInfo bean = beans.get(name); if (bean == null) throw new InstanceNotFoundException("The bean, " + name + ", was not found."); @@ -1158,7 +1166,7 @@ public class Server new IllegalArgumentException("The name was null."); throw new RuntimeOperationsException(e); } - Class[] sigTypes = new Class[sig.length]; + Class<?>[] sigTypes = new Class[sig.length]; for (int a = 0; a < sigTypes.length; ++a) { try @@ -1174,7 +1182,7 @@ public class Server } try { - Constructor cons = + Constructor<?> cons = repository.loadClass(name).getConstructor(sigTypes); return cons.newInstance(params); } @@ -1288,7 +1296,7 @@ public class Server throw new RuntimeOperationsException(e); } ClassLoader loader = getClassLoader(loaderName); - Class[] sigTypes = new Class[sig.length]; + Class<?>[] sigTypes = new Class[sig.length]; for (int a = 0; a < sig.length; ++a) { try @@ -1304,7 +1312,7 @@ public class Server } try { - Constructor cons = + Constructor<?> cons = Class.forName(name, true, loader).getConstructor(sigTypes); return cons.newInstance(params); } @@ -1433,10 +1441,10 @@ public class Server } if (info.getClassName().equals(className)) return true; - Class bclass = bean.getClass(); + Class<?> bclass = bean.getClass(); try { - Class oclass = Class.forName(className); + Class<?> oclass = Class.forName(className); return (bclass.getClassLoader().equals(oclass.getClassLoader()) && oclass.isAssignableFrom(bclass)); } @@ -1502,21 +1510,19 @@ public class Server * arise from the execution of the query, in which * case that particular bean will again be excluded. */ - public Set queryMBeans(ObjectName name, QueryExp query) + public Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query) { checkSecurity(name, null, "queryMBeans"); - Set results = new HashSet(); - Iterator iterator = beans.entrySet().iterator(); - while (iterator.hasNext()) + Set<ObjectInstance> results = new HashSet<ObjectInstance>(); + for (Map.Entry<ObjectName,ServerInfo> entry : beans.entrySet()) { - Map.Entry entry = (Map.Entry) iterator.next(); - ObjectName nextName = (ObjectName) entry.getKey(); + ObjectName nextName = entry.getKey(); checkSecurity(name, nextName.toString(), "queryMBeans"); try { if ((name == null || name.apply(nextName)) && (query == null || query.apply(nextName))) - results.add(((ServerInfo) entry.getValue()).getInstance()); + results.add(entry.getValue().getInstance()); } catch (BadStringOperationException e) { @@ -1575,15 +1581,12 @@ public class Server * Note that these permissions are implied if the * <code>queryMBeans</code> permissions are available. */ - public Set queryNames(ObjectName name, QueryExp query) + public Set<ObjectName> queryNames(ObjectName name, QueryExp query) { checkSecurity(name, null, "queryNames"); - Set results = new HashSet(); - Iterator iterator = beans.entrySet().iterator(); - while (iterator.hasNext()) + Set<ObjectName> results = new HashSet<ObjectName>(); + for (ObjectName nextName : beans.keySet()) { - Map.Entry entry = (Map.Entry) iterator.next(); - ObjectName nextName = (ObjectName) entry.getKey(); checkSecurity(name, nextName.toString(), "queryNames"); try { @@ -1656,7 +1659,7 @@ public class Server NotCompliantMBeanException { SecurityManager sm = System.getSecurityManager(); - Class cl = obj.getClass(); + Class<?> cl = obj.getClass(); String className = cl.getName(); if (sm != null) { @@ -1712,14 +1715,13 @@ public class Server throw new MBeanRegistrationException(e, "Pre-registration failed."); } } - if (beans.containsKey(name)) + ObjectInstance obji = new ObjectInstance(name, className); + if (beans.putIfAbsent(name, new ServerInfo(obji, obj)) != null) { if (register != null) register.postRegister(Boolean.FALSE); throw new InstanceAlreadyExistsException(name + "is already registered."); } - ObjectInstance obji = new ObjectInstance(name, className); - beans.put(name, new ServerInfo(obji, obj)); if (register != null) register.postRegister(Boolean.TRUE); notify(name, MBeanServerNotification.REGISTRATION_NOTIFICATION); @@ -1758,15 +1760,8 @@ public class Server if (bean instanceof NotificationBroadcaster) { NotificationBroadcaster bbean = (NotificationBroadcaster) bean; - NotificationListener indirection = (NotificationListener) - listeners.get(listener); - if (indirection == null) - bbean.removeNotificationListener(listener); - else - { - bbean.removeNotificationListener(indirection); - listeners.remove(listener); - } + bbean.removeNotificationListener(listener); + LazyListenersHolder.listeners.remove(listener); } } @@ -1809,15 +1804,8 @@ public class Server if (bean instanceof NotificationEmitter) { NotificationEmitter bbean = (NotificationEmitter) bean; - NotificationListener indirection = (NotificationListener) - listeners.get(listener); - if (indirection == null) - bbean.removeNotificationListener(listener, filter, passback); - else - { - bbean.removeNotificationListener(indirection, filter, passback); - listeners.remove(listener); - } + bbean.removeNotificationListener(listener, filter, passback); + LazyListenersHolder.listeners.remove(listener); } } @@ -2011,7 +1999,7 @@ public class Server Object abean = getBean(name); checkSecurity(name, null, "setAttribute"); AttributeList list = new AttributeList(attributes.size()); - Iterator it = attributes.iterator(); + Iterator<Object> it = attributes.iterator(); while (it.hasNext()) { try @@ -2113,6 +2101,15 @@ public class Server register.postDeregister(); } + /** + * Notifies the delegate of beans being registered + * and unregistered. + * + * @param name the bean being registered. + * @param type the type of notification; + * {@code REGISTRATION_NOTIFICATION} or + * {@code UNREGISTRATION_NOTIFICATION}. + */ private void notify(ObjectName name, String type) { delegate.sendNotification @@ -2136,7 +2133,7 @@ public class Server this.cl = cl; } - protected Class resolveClass(ObjectStreamClass osc) + protected Class<?> resolveClass(ObjectStreamClass osc) throws ClassNotFoundException, IOException { try diff --git a/libjava/classpath/gnu/javax/management/Translator.java b/libjava/classpath/gnu/javax/management/Translator.java index 4ede3743088..a15994429a3 100644 --- a/libjava/classpath/gnu/javax/management/Translator.java +++ b/libjava/classpath/gnu/javax/management/Translator.java @@ -143,14 +143,14 @@ public final class Translator throw new IllegalArgumentException(jtype + " has a " + "non-comparable element " + "type, " + elemClass); - if (((SortedSet) jtype).comparator() != null) + if (((SortedSet<?>) jtype).comparator() != null) throw new IllegalArgumentException(jtype + " does not " + "use natural ordering."); } - Collection<Object> elems = (Collection<Object>) jtype; + Collection<?> elems = (Collection<?>) jtype; int numElems = elems.size(); Object[] celems = new Object[numElems]; - Iterator<Object> i = elems.iterator(); + Iterator<?> i = elems.iterator(); for (int a = 0; a < numElems; ++a) { Object elem = i.next(); @@ -159,7 +159,7 @@ public final class Translator return makeArraySpecific(celems); } if (jtype instanceof Enum) - return ((Enum) jtype).name(); + return ((Enum<?>) jtype).name(); if (jtype instanceof Map || jtype instanceof SortedMap) { int lparam = tName.indexOf("<"); @@ -177,13 +177,13 @@ public final class Translator throw new IllegalArgumentException(jtype + " has a " + "non-comparable element " + "type, " + keyClass); - if (((SortedMap) jtype).comparator() != null) + if (((SortedMap<?,?>) jtype).comparator() != null) throw new IllegalArgumentException(jtype + " does not " + "use natural ordering."); typeName = "java.util.SortedMap" + tName.substring(lparam); } - OpenType k = translate(key).getOpenType(); - OpenType v = translate(value).getOpenType(); + OpenType<?> k = translate(key).getOpenType(); + OpenType<?> v = translate(value).getOpenType(); CompositeType rowType = new CompositeType(typeName, typeName, new String[] { "key", "value" }, new String[] { "Map key", "Map value"}, @@ -191,7 +191,7 @@ public final class Translator TabularType tabType = new TabularType(typeName, typeName, rowType, new String[]{"key"}); TabularData data = new TabularDataSupport(tabType); - for (Map.Entry entry : (Set<Map.Entry>) ((Map) jtype).entrySet()) + for (Map.Entry<?,?> entry : ((Map<?,?>) jtype).entrySet()) { try { @@ -258,15 +258,15 @@ public final class Translator if (returnType.isEnum()) { String ename = (String) otype; - Enum[] constants = (Enum[]) returnType.getEnumConstants(); - for (Enum c : constants) + Enum<?>[] constants = (Enum[]) returnType.getEnumConstants(); + for (Enum<?> c : constants) if (c.name().equals(ename)) return c; } if (List.class.isAssignableFrom(returnType)) { Object[] elems = (Object[]) otype; - List l = new ArrayList(elems.length); + List<Object> l = new ArrayList<Object>(elems.length); for (Object elem : elems) l.add(elem); return l; @@ -274,7 +274,7 @@ public final class Translator if (Map.class.isAssignableFrom(returnType)) { TabularData data = (TabularData) otype; - Map m = new HashMap(data.size()); + Map<Object,Object> m = new HashMap<Object,Object>(data.size()); for (Object val : data.values()) { CompositeData vals = (CompositeData) val; @@ -401,8 +401,8 @@ public final class Translator int comma = type.indexOf(",", lparam); int rparam = type.indexOf(">", comma); String key = type.substring(lparam + 1, comma).trim(); - OpenType k = translate(key).getOpenType(); - OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); + OpenType<?> k = translate(key).getOpenType(); + OpenType<?> v = translate(type.substring(comma + 1, rparam).trim()).getOpenType(); CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(), new String[] { "key", "value" }, new String[] { "Map key", "Map value"}, @@ -417,13 +417,13 @@ public final class Translator { int lparam = type.indexOf("<"); int rparam = type.indexOf(">"); - OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType(); + OpenType<?> e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType(); return new OpenMBeanParameterInfoSupport("TransParam", "Translated parameter", - new ArrayType(1, e) + new ArrayType<OpenType<?>>(1, e) ); } - Class c; + Class<?> c; try { c = Class.forName(type); @@ -450,15 +450,15 @@ public final class Translator int depth; for (depth = 0; c.getName().charAt(depth) == '['; ++depth) ; - OpenType ot = getTypeFromClass(c.getComponentType()); + OpenType<?> ot = getTypeFromClass(c.getComponentType()); return new OpenMBeanParameterInfoSupport("TransParam", "Translated parameter", - new ArrayType(depth, ot) + new ArrayType<OpenType<?>>(depth, ot) ); } Method[] methods = c.getDeclaredMethods(); List<String> names = new ArrayList<String>(); - List<OpenType> types = new ArrayList<OpenType>(); + List<OpenType<?>> types = new ArrayList<OpenType<?>>(); for (int a = 0; a < methods.length; ++a) { String name = methods[a].getName(); @@ -495,7 +495,7 @@ public final class Translator * @return the appropriate instance. * @throws OpenDataException if the type is not open. */ - private static final OpenType getTypeFromClass(Class c) + private static final OpenType<?> getTypeFromClass(Class<?> c) throws OpenDataException { return Translator.translate(c.getName()).getOpenType(); diff --git a/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java index 397b1c7d9e4..95ebb8a0689 100644 --- a/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java +++ b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java @@ -43,6 +43,8 @@ import gnu.CORBA.Unexpected; import gnu.CORBA.Version; import gnu.CORBA.NamingService.NameTransformer; +import gnu.java.lang.CPStringBuilder; + import java.io.File; import java.io.FileReader; import java.io.IOException; @@ -288,7 +290,7 @@ public class CorbalocParser ior.Internet.version = new Version(major, minor); // Then host data goes till '/' or ':'. - StringBuffer bhost = new StringBuffer(corbaloc.length()); + CPStringBuilder bhost = new CPStringBuilder(corbaloc.length()); while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(",")) bhost.append(t[p++]); @@ -381,7 +383,7 @@ public class CorbalocParser { InputStreamReader r = new InputStreamReader(u.openStream()); - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); int c; while ((c = r.read()) > 0) @@ -418,7 +420,7 @@ public class CorbalocParser + "' found"); } - StringBuffer bKey = new StringBuffer(); + CPStringBuilder bKey = new CPStringBuilder(); p++; while (p < t.length && !t[p].equals("#")) diff --git a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java index 84aa3241365..6c221548f47 100644 --- a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java +++ b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java @@ -40,6 +40,8 @@ package gnu.javax.naming.giop; import gnu.CORBA.OrbFunctional; +import gnu.java.lang.CPStringBuilder; + import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; @@ -161,7 +163,7 @@ public class GiopNamingServiceFactory { TreeMap map = new TreeMap(); map.putAll(props); - StringBuffer b = new StringBuffer(50*props.size()); + CPStringBuilder b = new CPStringBuilder(50*props.size()); Iterator iter = map.entrySet().iterator(); Map.Entry m; diff --git a/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java index 00f4a0779c7..68ba49b3fed 100644 --- a/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java +++ b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.naming.giop; +import gnu.java.lang.CPStringBuilder; + import javax.naming.NamingEnumeration; import org.omg.CosNaming.Binding; @@ -92,7 +94,7 @@ public class ListBindingsEnumeration extends GiopNamingEnumeration implements */ public Object convert(Binding binding) { - StringBuffer name = new StringBuffer(); + CPStringBuilder name = new CPStringBuilder(); for (int i = 0; i < binding.binding_name.length; i++) { diff --git a/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java index 2e64e67d393..3fca1e0abc8 100644 --- a/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java +++ b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java @@ -29,7 +29,7 @@ executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from +odule. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.naming.giop; +import gnu.java.lang.CPStringBuilder; + import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; @@ -85,7 +87,7 @@ public class ListEnumeration extends GiopNamingEnumeration implements */ public Object convert(Binding binding) { - StringBuffer name = new StringBuffer(); + CPStringBuilder name = new CPStringBuilder(); for (int i = 0; i < binding.binding_name.length; i++) { diff --git a/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java index b20bfa4ea8b..b423c721bc0 100644 --- a/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java +++ b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.javax.naming.ictxImpl.trans; +import gnu.java.lang.CPStringBuilder; + import java.util.Enumeration; import java.util.NoSuchElementException; @@ -455,7 +457,7 @@ public class GnuName */ public String toString() { - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); for (int i = 0; i < length; i++) { b.append(get(i)); diff --git a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java index 4a37cd8b1f9..7fff253dd4f 100644 --- a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java +++ b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl; +import gnu.java.lang.CPStringBuilder; + import java.io.EOFException; import java.io.InputStream; import java.io.IOException; @@ -137,7 +139,7 @@ public class PrivateCredentials implements ManagerFactoryParameters boolean encrypted = false; String cipher = null; String salt = null; - StringBuffer base64 = new StringBuffer(); + CPStringBuilder base64 = new CPStringBuilder(); while (true) { line = readLine(privateKey); @@ -235,7 +237,7 @@ public class PrivateCredentials implements ManagerFactoryParameters private String readLine(InputStream in) throws IOException { boolean eol_is_cr = System.getProperty("line.separator").equals("\r"); - StringBuffer str = new StringBuffer(); + CPStringBuilder str = new CPStringBuilder(); while (true) { int i = in.read(); diff --git a/libjava/classpath/gnu/javax/net/ssl/Session.java b/libjava/classpath/gnu/javax/net/ssl/Session.java index e2b21aa1e81..09b50eef069 100644 --- a/libjava/classpath/gnu/javax/net/ssl/Session.java +++ b/libjava/classpath/gnu/javax/net/ssl/Session.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl; +import gnu.java.lang.CPStringBuilder; + import java.io.Serializable; import java.security.Principal; @@ -349,7 +351,7 @@ public abstract class Session implements SSLSession, Serializable public String toString() { - StringBuffer str = new StringBuffer (3 * id.length + 1); + CPStringBuilder str = new CPStringBuilder (3 * id.length + 1); for (int i = 0; i < id.length; i++) { int x = id[i] & 0xFF; @@ -361,4 +363,4 @@ public abstract class Session implements SSLSession, Serializable return str.toString (); } } -}
\ No newline at end of file +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java index 0ffc26c2b5d..81dfce591e5 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; +import gnu.java.lang.CPStringBuilder; + /** * The handshake body for a HelloRequest handshake message. * @@ -51,7 +53,7 @@ public final class HelloRequest implements Handshake.Body public String toString (final String prefix) { - StringBuffer str = new StringBuffer (); + CPStringBuilder str = new CPStringBuilder (); if (prefix != null) str.append (prefix); str.append ("HelloRequest { };"); diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java index ba8ea7db70b..57f637c1849 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; +import gnu.java.lang.CPStringBuilder; + import java.io.PrintWriter; import java.io.StringWriter; @@ -128,7 +130,7 @@ public final class Util */ public static String toHexString(byte[] buf, int off, int len) { - StringBuffer str = new StringBuffer(); + CPStringBuilder str = new CPStringBuilder(); for (int i = 0; i < len; i++) { str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F)); @@ -157,7 +159,7 @@ public final class Util */ public static String toHexString(byte[] buf, int off, int len, char sep) { - StringBuffer str = new StringBuffer(); + CPStringBuilder str = new CPStringBuilder(); for (int i = 0; i < len; i++) { str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F)); @@ -194,7 +196,7 @@ public final class Util public static String hexDump(byte[] buf, int off, int len, String prefix) { String nl = getProperty("line.separator"); - StringBuffer str = new StringBuffer(); + CPStringBuilder str = new CPStringBuilder(); int i = 0; while (i < len) { @@ -294,7 +296,7 @@ public final class Util public static String formatInt(int i, int radix, int len) { String s = Integer.toString(i, radix); - StringBuffer buf = new StringBuffer(); + CPStringBuilder buf = new CPStringBuilder(); for (int j = 0; j < len - s.length(); j++) buf.append("0"); buf.append(s); diff --git a/libjava/classpath/gnu/javax/print/ipp/IppRequest.java b/libjava/classpath/gnu/javax/print/ipp/IppRequest.java index 05a6faae72e..3de88715a68 100644 --- a/libjava/classpath/gnu/javax/print/ipp/IppRequest.java +++ b/libjava/classpath/gnu/javax/print/ipp/IppRequest.java @@ -469,7 +469,7 @@ public class IppRequest } else { - new IppException("Unknown target operation attribute combination."); + throw new IppException("Unknown target operation attribute combination."); } writeAttributes(attributes); diff --git a/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java b/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java index ae9d32dfdbd..814fe2d0a74 100644 --- a/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java +++ b/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.print.ipp.attribute; +import gnu.java.lang.CPStringBuilder; + import java.util.ArrayList; import java.util.List; @@ -117,7 +119,7 @@ public final class RequestedAttributes implements Attribute */ public String toString() { - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); if (attributes.size() > 0) b.append(attributes.get(0)); diff --git a/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java b/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java index 91bfa3776dc..5fa78b1e915 100644 --- a/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java +++ b/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java @@ -46,6 +46,8 @@ import gnu.CORBA.CDR.gnuRuntime; import gnu.CORBA.CDR.gnuValueStream; import gnu.CORBA.CDR.HeadlessInput; +import gnu.java.lang.CPStringBuilder; + import org.omg.CORBA.MARSHAL; import org.omg.CORBA.StringValueHelper; import org.omg.CORBA.WStringValueHelper; @@ -393,7 +395,7 @@ public class RmiUtilities */ public static String toHex(long l) { - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); b.append(Long.toHexString(l).toUpperCase()); while (b.length() < 16) b.insert(0, '0'); @@ -425,7 +427,7 @@ public class RmiUtilities return "V"; else if (type.isArray()) { - StringBuffer l = new StringBuffer("["); + CPStringBuilder l = new CPStringBuilder("["); Class component = type.getComponentType(); while (component.isArray()) @@ -700,13 +702,14 @@ public class RmiUtilities if (in instanceof HeadlessInput) ((HeadlessInput) in).subsequentCalls = true; - gnuRuntime g; + gnuRuntime g = null; Serializable object = null; try { g = (gnuRuntime) sender; - object = g.target; + if (sender != null) + object = g.target; } catch (ClassCastException e) { diff --git a/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java b/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java index 539c4a17e1c..d75ce4104fa 100644 --- a/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java +++ b/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.security.auth.callback; +import gnu.java.lang.CPStringBuilder; + import java.awt.BorderLayout; import java.awt.Button; import java.awt.Dialog; @@ -238,8 +240,8 @@ public class AWTCallbackHandler extends AbstractCallbackHandler int defind = 0; for (int i = 0; i < locales.length; i++) { - StringBuffer lang = - new StringBuffer(locales[i].getDisplayLanguage(locales[i])); + CPStringBuilder lang = + new CPStringBuilder(locales[i].getDisplayLanguage(locales[i])); String country = locales[i].getDisplayCountry(locales[i]); String variant = locales[i].getDisplayVariant(locales[i]); if (country.length() > 0 && variant.length() > 0) diff --git a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java index 06a1d2c7ce9..0235c6971c3 100644 --- a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java +++ b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.security.auth.login; +import gnu.java.lang.CPStringBuilder; + import gnu.java.security.Configuration; import java.io.BufferedReader; @@ -92,7 +94,7 @@ public class ConfigFileTokenizer private BufferedReader br; boolean initialised; - private StringBuffer sb; + private CPStringBuilder sb; private int sbNdx; // Constructor(s) @@ -185,7 +187,7 @@ public class ConfigFileTokenizer private void init() throws IOException { - sb = new StringBuffer(); + sb = new CPStringBuilder(); String line; while ((line = br.readLine()) != null) { diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java index b90caef24b5..0514c937a9f 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer.io; +import gnu.java.lang.CPStringBuilder; + import gnu.javax.sound.sampled.gstreamer.GStreamerMixer; import java.io.BufferedInputStream; @@ -65,7 +67,7 @@ public class GstAudioFileReader public AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException { - StringBuffer name = new StringBuffer(file.getName()); + CPStringBuilder name = new CPStringBuilder(file.getName()); String _name = name.substring(name.lastIndexOf(".") + 1); return getAudioFileFormat( diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java index 7507850e8f9..7f16f1f2dba 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.swing.text.html.parser; +import gnu.java.lang.CPStringBuilder; + import gnu.javax.swing.text.html.parser.models.node; import gnu.javax.swing.text.html.parser.models.transformer; @@ -499,11 +501,11 @@ public abstract class htmlValidator dtdAttribute = tag.getElement().getAttribute(foundAttribute.toString()); if (dtdAttribute == null) { - StringBuffer valid = - new StringBuffer("The tag <" + tag.getHTMLTag() + - "> cannot contain the attribute '" + foundAttribute + - "'. The valid attributes for this tag are: " - ); + CPStringBuilder valid = + new CPStringBuilder("The tag <" + tag.getHTMLTag() + + "> cannot contain the attribute '" + foundAttribute + + "'. The valid attributes for this tag are: " + ); AttributeList a = tag.getElement().getAttributes(); @@ -545,22 +547,22 @@ public abstract class htmlValidator !dtdAttribute.values.contains(value.toUpperCase()) ) { - StringBuffer valid; + CPStringBuilder valid; if (dtdAttribute.values.size() == 1) valid = - new StringBuffer("The attribute '" + foundAttribute + - "' of the tag <" + tag.getHTMLTag() + - "> cannot have the value '" + value + - "'. The only valid value is " - ); + new CPStringBuilder("The attribute '" + foundAttribute + + "' of the tag <" + tag.getHTMLTag() + + "> cannot have the value '" + value + + "'. The only valid value is " + ); else valid = - new StringBuffer("The attribute '" + foundAttribute + - "' of the tag <" + tag.getHTMLTag() + - "> cannot have the value '" + value + "'. The " + - dtdAttribute.values.size() + - " valid values are: " - ); + new CPStringBuilder("The attribute '" + foundAttribute + + "' of the tag <" + tag.getHTMLTag() + + "> cannot have the value '" + value + "'. The " + + dtdAttribute.values.size() + + " valid values are: " + ); Enumeration vv = dtdAttribute.values.elements(); while (vv.hasMoreElements()) diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java b/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java index b77ef7fd850..c303ae8571d 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.swing.text.html.parser.models; +import gnu.java.lang.CPStringBuilder; + import java.io.Serializable; /** @@ -296,7 +298,7 @@ public class list */ public String toString() { - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); b.append(" ( "); for (int i = 0; i < nodes.length; i++) { diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java index 54469b34995..f45a13b3e86 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.swing.text.html.parser.models; +import gnu.java.lang.CPStringBuilder; + import java.io.Serializable; /** @@ -239,7 +241,7 @@ public class node */ public String toString() { - StringBuffer b = new StringBuffer(); + CPStringBuilder b = new CPStringBuilder(); b.append(token); if (unary != 0) diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java index e99be3238e9..b087c3c003c 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.javax.swing.text.html.parser.support; +import gnu.java.lang.CPStringBuilder; + import gnu.javax.swing.text.html.parser.htmlAttributeSet; import gnu.javax.swing.text.html.parser.htmlValidator; import gnu.javax.swing.text.html.parser.support.low.Constants; @@ -132,12 +134,12 @@ public class Parser /** * The buffer to collect the incremental output like text or coment. */ - private StringBuffer buffer = new StringBuffer(); + private final StringBuffer buffer = new StringBuffer(); /** * The buffer to store the document title. */ - private StringBuffer title = new StringBuffer(); + private final StringBuffer title = new StringBuffer(); /** * The current token. @@ -994,7 +996,7 @@ public class Parser // character, not as a token. The character may be part of // the unquoted URL. { - StringBuffer image = new StringBuffer(value.getImage()); + CPStringBuilder image = new CPStringBuilder(value.getImage()); while (next.kind == NUMTOKEN || next.kind == SLASH || next.kind == OTHER) { @@ -1025,7 +1027,7 @@ public class Parser // character, not as a token. The slash may be part of // the unquoted URL. { - StringBuffer image = new StringBuffer(value.getImage()); + CPStringBuilder image = new CPStringBuilder(value.getImage()); while (next.kind == NUMTOKEN || next.kind == SLASH) { image.append(getNextToken().getImage()); |