diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2010-09-12 22:40:40 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2010-09-12 22:40:40 +0000 |
| commit | 8c8130d0288446f88deef393823cccffcaed474d (patch) | |
| tree | 781c5801bc2e3d2f84724bec6c959b2af329f3bd /qpid/java/common | |
| parent | 8a4c51f79be29149fa30a01e7fab6f36301f24bb (diff) | |
| download | qpid-python-8c8130d0288446f88deef393823cccffcaed474d.tar.gz | |
QPID-2857 : Address issues found by running FindBugs against the Java codebase
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@996393 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common')
23 files changed, 162 insertions, 73 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/configuration/PropertyNameResolver.java b/qpid/java/common/src/main/java/org/apache/configuration/PropertyNameResolver.java index 2c1fb0ed67..73ee747c07 100644 --- a/qpid/java/common/src/main/java/org/apache/configuration/PropertyNameResolver.java +++ b/qpid/java/common/src/main/java/org/apache/configuration/PropertyNameResolver.java @@ -99,7 +99,7 @@ public class PropertyNameResolver return properties.get(propName).get(klass); } - class QpidProperty + static class QpidProperty { private Object defValue; private String[] names; diff --git a/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketConnector.java b/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketConnector.java index b1612840db..7344f70078 100644 --- a/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketConnector.java +++ b/qpid/java/common/src/main/java/org/apache/mina/transport/socket/nio/MultiThreadSocketConnector.java @@ -56,7 +56,7 @@ public class MultiThreadSocketConnector extends SocketConnector private final Object lock = new Object(); private final int id = nextId++; private final String threadName = "SocketConnector-" + id; - private SocketConnectorConfig defaultConfig = new SocketConnectorConfig(); + private final Queue connectQueue = new Queue(); private final MultiThreadSocketIoProcessor[] ioProcessors; private final int processorCount; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/QpidConfig.java b/qpid/java/common/src/main/java/org/apache/qpid/QpidConfig.java index 9c8019f109..b4cad44130 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/QpidConfig.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/QpidConfig.java @@ -65,7 +65,7 @@ public class QpidConfig return saslClientFactories; } - public class SecurityMechanism + public static class SecurityMechanism { String type; String handler; @@ -87,7 +87,7 @@ public class QpidConfig } } - public class SaslClientFactory + public static class SaslClientFactory { String type; String factoryClass; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/ToyBroker.java b/qpid/java/common/src/main/java/org/apache/qpid/ToyBroker.java index db84b83adb..5423bbb68f 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/ToyBroker.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/ToyBroker.java @@ -107,6 +107,7 @@ class ToyBroker extends SessionDelegate { System.out.println("received headers routing_key " + props.getRoutingKey()); } + MessageProperties mp = header.get(MessageProperties.class); System.out.println("MP: " + mp); if (mp != null) @@ -114,7 +115,7 @@ class ToyBroker extends SessionDelegate System.out.println(mp.getApplicationHeaders()); } - if (exchange.route(dest,props.getRoutingKey(),xfr)) + if (exchange.route(dest,props == null ? null : props.getRoutingKey(),xfr)) { System.out.println("queued " + xfr); dispatchMessages(ssn); @@ -165,21 +166,40 @@ class ToyBroker extends SessionDelegate // ugly, but who cares :) // assumes unit is always no of messages, not bytes // assumes it's credit mode and not window - private class Consumer + private static class Consumer { long _credit; String _queueName; } + private static final class ToyBrokerSession extends Session + { + + public ToyBrokerSession(Connection connection, Binary name, long expiry, ToyExchange exchange) + { + super(connection, new ToyBroker(exchange), name, expiry); + } + } + public static final void main(String[] args) throws IOException { final ToyExchange exchange = new ToyExchange(); ConnectionDelegate delegate = new ServerDelegate() { - public SessionDelegate getSessionDelegate() + @Override + public void init(Connection conn, ProtocolHeader hdr) { - return new ToyBroker(exchange); + conn.setSessionFactory(new Connection.SessionFactory() + { + public Session newSession(Connection conn, Binary name, long expiry) + { + return new ToyBrokerSession(conn, name, expiry, exchange); + } + }); + + super.init(conn, hdr); //To change body of overridden methods use File | Settings | File Templates. } + }; MinaHandler.accept("0.0.0.0", 5672, delegate); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/configuration/Accessor.java b/qpid/java/common/src/main/java/org/apache/qpid/configuration/Accessor.java index c9d386607d..dc5b69dc89 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/configuration/Accessor.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/configuration/Accessor.java @@ -152,7 +152,15 @@ public interface Accessor { super(null); Properties props = new Properties(); - props.load(new FileInputStream(fileName)); + FileInputStream inStream = new FileInputStream(fileName); + try + { + props.load(inStream); + } + finally + { + inStream.close(); + } source = props; } } diff --git a/qpid/java/common/src/main/java/org/apache/qpid/dtx/XidImpl.java b/qpid/java/common/src/main/java/org/apache/qpid/dtx/XidImpl.java index 69ccef7c29..69457ca4a9 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/dtx/XidImpl.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/dtx/XidImpl.java @@ -24,6 +24,7 @@ import org.apache.qpid.AMQInvalidArgumentException; import javax.transaction.xa.Xid; import java.io.*; +import java.util.Arrays; /** * Implements javax.transaction.dtx.Xid @@ -217,6 +218,15 @@ public class XidImpl implements Xid return false; } + @Override + public int hashCode() + { + int result = _branchQualifier != null ? Arrays.hashCode(_branchQualifier) : 0; + result = 31 * result + _formatID; + result = 31 * result + (_globalTransactionID != null ? Arrays.hashCode(_globalTransactionID) : 0); + return result; + } + //-- Static helper method /** * Convert an Xid into the AMQP String format. diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypeMap.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypeMap.java index a16e137466..a07fd78c8c 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypeMap.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/AMQTypeMap.java @@ -25,7 +25,7 @@ import java.util.Map; public class AMQTypeMap { - public static Map<Byte, AMQType> _reverseTypeMap = new HashMap<Byte, AMQType>(); + public static final Map<Byte, AMQType> _reverseTypeMap = new HashMap<Byte, AMQType>(); static { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java index 15a43345b5..18ab05ffa1 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/HeartbeatBody.java @@ -27,7 +27,7 @@ import org.apache.qpid.AMQException; public class HeartbeatBody implements AMQBody { public static final byte TYPE = 8; - public static AMQFrame FRAME = new HeartbeatBody().toFrame(); + public static final AMQFrame FRAME = new HeartbeatBody().toFrame(); public HeartbeatBody() { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java b/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java index ac21fe4243..fb3dd89717 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/framing/ProtocolInitiation.java @@ -24,12 +24,13 @@ import org.apache.qpid.AMQException; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; +import java.util.Arrays; public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQDataBlock { // TODO: generate these constants automatically from the xml protocol spec file - public static final byte[] AMQP_HEADER = new byte[]{(byte)'A',(byte)'M',(byte)'Q',(byte)'P'}; + private static final byte[] AMQP_HEADER = new byte[]{(byte)'A',(byte)'M',(byte)'Q',(byte)'P'}; private static final byte CURRENT_PROTOCOL_CLASS = 1; private static final byte TCP_PROTOCOL_INSTANCE = 1; @@ -124,6 +125,17 @@ public class ProtocolInitiation extends AMQDataBlock implements EncodableAMQData _protocolMinor == pi._protocolMinor); } + @Override + public int hashCode() + { + int result = _protocolHeader != null ? Arrays.hashCode(_protocolHeader) : 0; + result = 31 * result + (int) _protocolClass; + result = 31 * result + (int) _protocolInstance; + result = 31 * result + (int) _protocolMajor; + result = 31 * result + (int) _protocolMinor; + return result; + } + public static class Decoder //implements MessageDecoder { /** diff --git a/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/Lexicon.java b/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/Lexicon.java index c09eb7ef84..9ab610f37a 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/Lexicon.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/messaging/util/Lexicon.java @@ -58,30 +58,30 @@ public class Lexicon public Lexer compile() { - String joined = ""; + StringBuilder joined = new StringBuilder(); for (Token.Type t : types) { if (joined.length() > 0) { - joined += "|"; + joined.append('|'); } - joined += "(" + t.getPattern() + ")"; + joined.append('(').append(t.getPattern()).append(')'); } - Pattern rexp = Pattern.compile(joined); + Pattern rexp = Pattern.compile(joined.toString()); return new Lexer(new ArrayList<Token.Type>(types), eof, rexp); } public static final void main(String[] args) { - String input = ""; + StringBuilder input = new StringBuilder(); for (String a : args) { if (input.length() > 0) { - input += " "; + input.append(" "); } - input += a; + input.append(a); } Lexicon lxi = new Lexicon(); @@ -94,7 +94,7 @@ public class Lexicon lxi.eof("EOF"); Lexer lx = lxi.compile(); - for (Token t : lx.lex(input)) + for (Token t : lx.lex(input.toString())) { System.out.println(t); } diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java index d5f97f48a8..82fb57eb7d 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/ClientDelegate.java @@ -52,14 +52,21 @@ public class ClientDelegate extends ConnectionDelegate private static final Logger log = Logger.get(ClientDelegate.class); private static final String KRB5_OID_STR = "1.2.840.113554.1.2.2"; - protected static Oid KRB5_OID; + protected static final Oid KRB5_OID; static { + Oid oid; try { - KRB5_OID = new Oid(KRB5_OID_STR); - } catch (GSSException ignore) {} + oid = new Oid(KRB5_OID_STR); + } + catch (GSSException ignore) + { + oid = null; + } + + KRB5_OID = oid; } private List<String> clientMechs; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java index 13b8e461d4..3c56aa22bd 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java @@ -61,7 +61,7 @@ public class Connection extends ConnectionInvoker public enum State { NEW, CLOSED, OPENING, OPEN, CLOSING, CLOSE_RCVD } - class DefaultConnectionListener implements ConnectionListener + static class DefaultConnectionListener implements ConnectionListener { public void opened(Connection conn) {} public void exception(Connection conn, ConnectionException exception) diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java index e989849477..52e0026f29 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java @@ -60,7 +60,7 @@ public class Session extends SessionInvoker enum State { NEW, DETACHED, RESUMING, OPEN, CLOSING, CLOSED } - class DefaultSessionListener implements SessionListener + static class DefaultSessionListener implements SessionListener { public void opened(Session ssn) {} diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/TransportBuilder.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/TransportBuilder.java index d1ae95a3bb..c08909c6e4 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/TransportBuilder.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/TransportBuilder.java @@ -61,8 +61,6 @@ public class TransportBuilder public void buildReceiverPipe(Receiver<ProtocolEvent> delegate) { - ConnectionSettings settings = con.getConnectionSettings(); - Receiver<ByteBuffer> receiver = new InputHandler(new Assembler(delegate)); // Security layer diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLReceiver.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLReceiver.java index a9e8566d01..86106318ef 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLReceiver.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/sasl/SASLReceiver.java @@ -41,20 +41,18 @@ public class SASLReceiver extends SASLEncryptor implements Receiver<ByteBuffer> this.delegate = delegate; } - @Override public void closed() { delegate.closed(); } - @Override + public void exception(Throwable t) { - delegate.equals(t); + delegate.exception(t); } - @Override - public void received(ByteBuffer buf) + public void received(ByteBuffer buf) { if (isSecurityLayerEstablished()) { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java index 3c2ad061f3..cd47a11825 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java @@ -82,9 +82,10 @@ public class SSLSender implements Sender<ByteBuffer> throw new SenderException("Error closing SSL connection",e); } - while (!engine.isOutboundDone()) + + synchronized(engineState) { - synchronized(engineState) + while (!engine.isOutboundDone()) { try { @@ -94,6 +95,7 @@ public class SSLSender implements Sender<ByteBuffer> { // pass } + } } delegate.close(); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java b/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java index 998242925c..26cb56ea97 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java @@ -55,7 +55,8 @@ public class AMQBindingURL implements BindingURL private void parseBindingURL() throws URISyntaxException { - BindingURLParser parser = new BindingURLParser(_url,this); + BindingURLParser parser = new BindingURLParser(); + parser.parse(_url,this); processOptions(); _logger.debug("URL Parsed: " + this); } diff --git a/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java b/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java index 7fe7d2e1da..0ebfe0e869 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURLParser.java @@ -52,15 +52,24 @@ public class BindingURLParser private String _error; private int _index = 0; private String _currentPropName; - private Map<String,Object> _options = new HashMap<String,Object>(); + private Map<String,Object> _options; + + + public BindingURLParser() + { + } //<exch_class>://<exch_name>/[<destination>]/[<queue>]?<option>='<value>'[,<option>='<value>']* - public BindingURLParser(String url,AMQBindingURL bindingURL) throws URISyntaxException + public synchronized void parse(String url,AMQBindingURL bindingURL) throws URISyntaxException { _url = (url + END_OF_URL_MARKER_CHAR).toCharArray(); _bindingURL = bindingURL; _currentParserState = BindingURLParserState.BINDING_URL_START; BindingURLParserState prevState = _currentParserState; + _index = 0; + _currentPropName = null; + _error = null; + _options = new HashMap<String,Object>(); try { @@ -432,6 +441,7 @@ public class BindingURLParser public static void main(String[] args) { + String[] urls = new String[] { "topic://amq.topic//myTopic?routingkey='stocks.#'", @@ -447,11 +457,13 @@ public class BindingURLParser try { + BindingURLParser parser = new BindingURLParser(); + for (String url: urls) { System.out.println("URL " + url); AMQBindingURL bindingURL = new AMQBindingURL(url); - BindingURLParser parser = new BindingURLParser(url,bindingURL); + parser.parse(url,bindingURL); System.out.println("\nX " + bindingURL.toString() + " \n"); } diff --git a/qpid/java/common/src/main/java/org/apache/qpid/url/URLHelper.java b/qpid/java/common/src/main/java/org/apache/qpid/url/URLHelper.java index 2d496d2d54..6f21c327e7 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/url/URLHelper.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/url/URLHelper.java @@ -25,9 +25,9 @@ import java.util.Map; public class URLHelper { - public static char DEFAULT_OPTION_SEPERATOR = '&'; - public static char ALTERNATIVE_OPTION_SEPARATOR = ','; - public static char BROKER_SEPARATOR = ';'; + public static final char DEFAULT_OPTION_SEPERATOR = '&'; + public static final char ALTERNATIVE_OPTION_SEPARATOR = ','; + public static final char BROKER_SEPARATOR = ';'; public static void parseOptions(Map<String, String> optionMap, String options) throws URLSyntaxException { diff --git a/qpid/java/common/src/main/java/org/apache/qpid/util/CommandLineParser.java b/qpid/java/common/src/main/java/org/apache/qpid/util/CommandLineParser.java index 0281506037..09478d4157 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/util/CommandLineParser.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/util/CommandLineParser.java @@ -160,14 +160,14 @@ public class CommandLineParser } // Concatenate all the parsing errors together. - String result = ""; + StringBuilder result = new StringBuilder(); for (String s : parsingErrors) { - result += s; + result.append(s); } - return result; + return result.toString(); } /** @@ -184,14 +184,17 @@ public class CommandLineParser } // List all the properties. - String result = "Options in force:\n"; + StringBuilder result = new StringBuilder("Options in force:\n"); for (Map.Entry<Object, Object> property : parsedProperties.entrySet()) { - result += property.getKey() + " = " + property.getValue() + "\n"; + result.append(property.getKey()) + .append(" = ") + .append(property.getValue()) + .append('\n'); } - return result; + return result.toString(); } /** @@ -257,7 +260,7 @@ public class CommandLineParser boolean ignore = false; // Create the regular expression matcher for the command line options. - String regexp = "^("; + StringBuilder regexp = new StringBuilder("^("); int optionsAdded = 0; for (Iterator<String> i = optionMap.keySet().iterator(); i.hasNext();) @@ -279,15 +282,18 @@ public class CommandLineParser // Add the option to the regular expression matcher if it is not a free argument definition. if (notFree) { - regexp += nextOption + (i.hasNext() ? "|" : ""); + regexp.append(nextOption) + .append(i.hasNext() ? "|" : ""); optionsAdded++; } } // There has to be more that one option in the regular expression or else the compiler complains that the close // cannot be nullable if the '?' token is used to make the matched option string optional. - regexp += ")" + ((optionsAdded > 0) ? "?" : "") + "(.*)"; - Pattern pattern = Pattern.compile(regexp); + regexp.append(')') + .append(((optionsAdded > 0) ? "?" : "")) + .append("(.*)"); + Pattern pattern = Pattern.compile(regexp.toString()); // Loop through all the command line arguments. for (int i = 0; i < args.length; i++) @@ -645,7 +651,7 @@ public class CommandLineParser * <tr><td> Hold details of a command line option. * </table> */ - protected class CommandLineOption + protected static class CommandLineOption { /** Holds the text for the flag to match this argument with. */ public String option = null; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java b/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java index 7ba38f4743..fa26786ec4 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/util/FileUtils.java @@ -215,23 +215,34 @@ public class FileUtils public static void copyCheckedEx(File src, File dst) throws IOException { InputStream in = new FileInputStream(src); - if (!dst.exists()) + try { - dst.createNewFile(); - } - - OutputStream out = new FileOutputStream(dst); + if (!dst.exists()) + { + dst.createNewFile(); + } - // Transfer bytes from in to out - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) + OutputStream out = new FileOutputStream(dst); + + try + { + // Transfer bytes from in to out + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) + { + out.write(buf, 0, len); + } + } + finally + { + out.close(); + } + } + finally { - out.write(buf, 0, len); + in.close(); } - - in.close(); - out.close(); } /* diff --git a/qpid/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java b/qpid/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java index 4677713dc9..93266f2486 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java @@ -40,16 +40,16 @@ public class PrettyPrintingUtils */ public static String printArray(int[] array) { - String result = "["; + StringBuilder result = new StringBuilder("["); for (int i = 0; i < array.length; i++) { - result += array[i]; - result += (i < (array.length - 1)) ? ", " : ""; + result.append(array[i]) + .append((i < (array.length - 1)) ? ", " : ""); } - result += "]"; + result.append(']'); - return result; + return result.toString(); } /** diff --git a/qpid/java/common/templates/method/version/MethodBodyClass.vm b/qpid/java/common/templates/method/version/MethodBodyClass.vm index 9b2ba0fa39..a739110d70 100644 --- a/qpid/java/common/templates/method/version/MethodBodyClass.vm +++ b/qpid/java/common/templates/method/version/MethodBodyClass.vm @@ -70,9 +70,9 @@ public class ${javaClassName} extends AMQMethodBody_$version.getMajor()_$version return FACTORY_INSTANCE; } - public static int CLASS_ID = $clazz.ClassId; + public static final int CLASS_ID = $clazz.ClassId; - public static int METHOD_ID = $method.MethodId; + public static final int METHOD_ID = $method.MethodId; @@ -196,7 +196,11 @@ public class ${javaClassName} extends AMQMethodBody_$version.getMajor()_$version StringBuilder buf = new StringBuilder("[$javaClassName: "); #foreach( $field in $method.FieldList ) buf.append( "$field.Name=" ); - buf.append( get#toUpperCamel( $field.Name )() ); +#if( $field.NativeType == "byte[]" ) + buf.append( get#toUpperCamel( $field.Name )() == null ? "null" : java.util.Arrays.toString( get#toUpperCamel( $field.Name )() ) ); +#else + buf.append( get#toUpperCamel( $field.Name )() ); +#end #if( $velocityCount != $method.FieldList.size() ) buf.append( ", " ); #end |
