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/broker/src/main | |
| 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/broker/src/main')
52 files changed, 863 insertions, 604 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java b/qpid/java/broker/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java index 83a6ff705d..4426a7aeec 100644 --- a/qpid/java/broker/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java +++ b/qpid/java/broker/src/main/java/org/apache/log4j/QpidCompositeRollingAppender.java @@ -106,9 +106,6 @@ public class QpidCompositeRollingAppender extends FileAppender /** Helper class to determine next rollover time */ RollingCalendar rc = new RollingCalendar(); - /** Current period for roll overs */ - int checkPeriod = TOP_OF_TROUBLE; - /** The default maximum file size is 10MB. */ protected long maxFileSize = 10 * 1024 * 1024; @@ -1037,23 +1034,32 @@ public class QpidCompositeRollingAppender extends FileAppender { // Create the GZIP output stream GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(target)); + try + { + // Open the input file + FileInputStream in = new FileInputStream(from); + try + { + // Transfer bytes from the input file to the GZIP output stream + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) + { + out.write(buf, 0, len); + } + } + finally + { + in.close(); + } - // Open the input file - FileInputStream in = new FileInputStream(from); - - // Transfer bytes from the input file to the GZIP output stream - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) + // Complete the GZIP file + out.finish(); + } + finally { - out.write(buf, 0, len); + out.close(); } - - in.close(); - - // Complete the GZIP file - out.finish(); - out.close(); // Remove old file. from.delete(); } @@ -1068,7 +1074,7 @@ public class QpidCompositeRollingAppender extends FileAppender } } - private class CompressJob + private static class CompressJob { File _from, _to; diff --git a/qpid/java/broker/src/main/java/org/apache/log4j/xml/QpidLog4JConfigurator.java b/qpid/java/broker/src/main/java/org/apache/log4j/xml/QpidLog4JConfigurator.java index 6fa412cce6..1200ba6e0b 100644 --- a/qpid/java/broker/src/main/java/org/apache/log4j/xml/QpidLog4JConfigurator.java +++ b/qpid/java/broker/src/main/java/org/apache/log4j/xml/QpidLog4JConfigurator.java @@ -166,7 +166,7 @@ public class QpidLog4JConfigurator private static String constructMessage(final String msg, final SAXParseException ex) { - return new String(msg + ": Line " + ex.getLineNumber()+" column " +ex.getColumnNumber() + ": " + ex.getMessage()); + return msg + ": Line " + ex.getLineNumber()+" column " +ex.getColumnNumber() + ": " + ex.getMessage(); } } @@ -252,10 +252,11 @@ public class QpidLog4JConfigurator loggersLevels.put("Root", rootLoggerlevelString); - for (String loggerName : loggersLevels.keySet()) + for (Map.Entry<String, String> entry : loggersLevels.entrySet()) { - String levelString = loggersLevels.get(loggerName); - + String loggerName = entry.getKey(); + String levelString = entry.getValue(); + //let log4j replace any properties in the string String log4jConfiguredString = domConfig.subst(levelString); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/configuration/Configuration.java b/qpid/java/broker/src/main/java/org/apache/qpid/configuration/Configuration.java index 40ff590a0a..0b63c68854 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/configuration/Configuration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/configuration/Configuration.java @@ -178,7 +178,7 @@ public class Configuration } - public class InitException extends Exception + public static class InitException extends Exception { InitException(String msg, Throwable cause) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/ManagementExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/ManagementExchange.java index 67620d384b..593c1616fb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/ManagementExchange.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/ManagementExchange.java @@ -90,7 +90,6 @@ public class ManagementExchange implements Exchange, QMFService.Listener public void enqueue(ServerMessage message) throws AMQException { - AMQMessageHeader h = message.getMessageHeader(); long size = message.getSize(); ByteBuffer buf = ByteBuffer.allocate((int) size); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFMessage.java b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFMessage.java index de9bf1e9cb..895ff643a2 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFMessage.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFMessage.java @@ -185,7 +185,7 @@ public class QMFMessage implements ServerMessage, InboundMessage, AMQMessageHead return len; } - private class QMFMessageReference extends MessageReference<QMFMessage> + private static class QMFMessageReference extends MessageReference<QMFMessage> { public QMFMessageReference(QMFMessage message) { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java index 7e999a720b..7ed6a9114a 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/qmf/QMFService.java @@ -467,7 +467,7 @@ public class QMFService implements ConfigStore.ConfigEventListener, Closeable classObjectsById.put(object.getId(),qmfObject); - if(classObjects.putIfAbsent(object, qmfObject) == null); + if(classObjects.putIfAbsent(object, qmfObject) == null) { objectAdded(qmfObject); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java index 811e45f4ae..a612f280d6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java @@ -106,15 +106,7 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr */ public List<String> retrieveQueueAttributeNames() throws IOException { - List<String> attributeList = new ArrayList<String>(); - for(String attr : ManagedQueue.QUEUE_ATTRIBUTES) - { - attributeList.add(attr); - } - - Collections.sort(attributeList); - - return attributeList; + return ManagedQueue.QUEUE_ATTRIBUTES; } /** @@ -153,7 +145,7 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr } catch (Exception e) { - attributeValues.add(new String("-")); + attributeValues.add("-"); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java index 13927f28ab..452ddf5895 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java @@ -592,9 +592,16 @@ public class Main } else { - Properties fallbackProps = new Properties(); - fallbackProps.load(propsFile); - PropertyConfigurator.configure(fallbackProps); + try + { + Properties fallbackProps = new Properties(); + fallbackProps.load(propsFile); + PropertyConfigurator.configure(fallbackProps); + } + finally + { + propsFile.close(); + } } } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigStore.java index 572d886c18..0e03e33be8 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ConfigStore.java @@ -27,6 +27,7 @@ import java.util.Collections; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; public class ConfigStore { @@ -36,14 +37,14 @@ public class ConfigStore private ConcurrentHashMap<ConfigObjectType, CopyOnWriteArrayList<ConfigEventListener>> _listenerMap = new ConcurrentHashMap<ConfigObjectType, CopyOnWriteArrayList<ConfigEventListener>>(); - private SystemConfig _root; + private AtomicReference<SystemConfig> _root = new AtomicReference<SystemConfig>(null); private final AtomicLong _objectIdSource = new AtomicLong(0l); public enum Event { - CREATED, DELETED; + CREATED, DELETED } public interface ConfigEventListener<T extends ConfigObjectType<T,C>, C extends ConfiguredObject<T, C>> @@ -151,11 +152,10 @@ public class ConfigStore } } - public synchronized boolean setRoot(SystemConfig object) + public boolean setRoot(SystemConfig object) { - if(_root == null) + if(_root.compareAndSet(null,object)) { - _root = object; addConfiguredObject(object); return true; } @@ -173,7 +173,7 @@ public class ConfigStore public SystemConfig getRoot() { - return _root; + return _root.get(); } public static ConfigStore newInstance() diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java index 7681354f19..45c52a8891 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java @@ -339,7 +339,7 @@ public class ServerConfiguration extends ConfigurationPlugin implements SignalHa locale = new Locale(parts[0], parts[1]); break; default: - String variant = parts[2]; + StringBuilder variant = new StringBuilder(parts[2]); // If we have a variant such as the Java doc suggests for Spanish // Traditional_WIN we may end up with more than 3 parts on a // split with '_'. So we should recombine the variant. @@ -347,11 +347,11 @@ public class ServerConfiguration extends ConfigurationPlugin implements SignalHa { for (int index = 3; index < parts.length; index++) { - variant = variant + "_" + parts[index]; + variant.append('_').append(parts[index]); } } - locale = new Locale(parts[0], parts[1], variant); + locale = new Locale(parts[0], parts[1], variant.toString()); } return locale; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java index 1245efdafa..e523eb24fb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java @@ -251,7 +251,7 @@ public class TopicExchange extends AbstractExchange { for(Binding b : _bindings.keySet()) { - if(b.getBindingKey().equals(routingKey)) + if(b.getBindingKey().equals(routingKey.toString())) { return true; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersParser.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersParser.java index 85e74122c3..0e3a3894fe 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersParser.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/headers/HeadersParser.java @@ -425,6 +425,8 @@ public class HeadersParser public boolean equals(Object o) { + assert o != null; + assert o instanceof KeyValuePair; KeyValuePair other = (KeyValuePair)o; return (_key == other._key) && (_value == null ? other._value == null : _value.equals(other._value)); } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java index a4974c75ff..befa979d37 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java @@ -662,6 +662,8 @@ public class Bridge implements BridgeConfig public void setSession(final Session session) { + assert session instanceof ServerSession; + session.setSessionListener(this); ExchangeRegistry exchangeRegistry = getVirtualHost().getExchangeRegistry(); @@ -750,6 +752,8 @@ public class Bridge implements BridgeConfig public void setSession(final Session session) { + assert session instanceof ServerSession; + session.setSessionListener(this); QueueRegistry queueRegistry = getVirtualHost().getQueueRegistry(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java index 2ead9e57af..221d23ef0d 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ArithmeticExpression.java @@ -163,13 +163,13 @@ public abstract class ArithmeticExpression extends BinaryExpression { case INTEGER: - return new Integer(left.intValue() + right.intValue()); + return Integer.valueOf(left.intValue() + right.intValue()); case LONG: - return new Long(left.longValue() + right.longValue()); + return Long.valueOf(left.longValue() + right.longValue()); default: - return new Double(left.doubleValue() + right.doubleValue()); + return Double.valueOf(left.doubleValue() + right.doubleValue()); } } @@ -179,13 +179,13 @@ public abstract class ArithmeticExpression extends BinaryExpression { case INTEGER: - return new Integer(left.intValue() - right.intValue()); + return Integer.valueOf(left.intValue() - right.intValue()); case LONG: - return new Long(left.longValue() - right.longValue()); + return Long.valueOf(left.longValue() - right.longValue()); default: - return new Double(left.doubleValue() - right.doubleValue()); + return Double.valueOf(left.doubleValue() - right.doubleValue()); } } @@ -195,24 +195,24 @@ public abstract class ArithmeticExpression extends BinaryExpression { case INTEGER: - return new Integer(left.intValue() * right.intValue()); + return Integer.valueOf(left.intValue() * right.intValue()); case LONG: - return new Long(left.longValue() * right.longValue()); + return Long.valueOf(left.longValue() * right.longValue()); default: - return new Double(left.doubleValue() * right.doubleValue()); + return Double.valueOf(left.doubleValue() * right.doubleValue()); } } protected Number divide(Number left, Number right) { - return new Double(left.doubleValue() / right.doubleValue()); + return Double.valueOf(left.doubleValue() / right.doubleValue()); } protected Number mod(Number left, Number right) { - return new Double(left.doubleValue() % right.doubleValue()); + return Double.valueOf(left.doubleValue() % right.doubleValue()); } private int numberType(Number left, Number right) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java index f0650cb642..aad9d41174 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ComparisonExpression.java @@ -45,30 +45,30 @@ public abstract class ComparisonExpression extends BinaryExpression implements B return LogicExpression.createOR(createLessThan(value, left), createGreaterThan(value, right)); } - private static final HashSet REGEXP_CONTROL_CHARS = new HashSet(); + private static final HashSet<Character> REGEXP_CONTROL_CHARS = new HashSet<Character>(); static { - REGEXP_CONTROL_CHARS.add(new Character('.')); - REGEXP_CONTROL_CHARS.add(new Character('\\')); - REGEXP_CONTROL_CHARS.add(new Character('[')); - REGEXP_CONTROL_CHARS.add(new Character(']')); - REGEXP_CONTROL_CHARS.add(new Character('^')); - REGEXP_CONTROL_CHARS.add(new Character('$')); - REGEXP_CONTROL_CHARS.add(new Character('?')); - REGEXP_CONTROL_CHARS.add(new Character('*')); - REGEXP_CONTROL_CHARS.add(new Character('+')); - REGEXP_CONTROL_CHARS.add(new Character('{')); - REGEXP_CONTROL_CHARS.add(new Character('}')); - REGEXP_CONTROL_CHARS.add(new Character('|')); - REGEXP_CONTROL_CHARS.add(new Character('(')); - REGEXP_CONTROL_CHARS.add(new Character(')')); - REGEXP_CONTROL_CHARS.add(new Character(':')); - REGEXP_CONTROL_CHARS.add(new Character('&')); - REGEXP_CONTROL_CHARS.add(new Character('<')); - REGEXP_CONTROL_CHARS.add(new Character('>')); - REGEXP_CONTROL_CHARS.add(new Character('=')); - REGEXP_CONTROL_CHARS.add(new Character('!')); + REGEXP_CONTROL_CHARS.add('.'); + REGEXP_CONTROL_CHARS.add('\\'); + REGEXP_CONTROL_CHARS.add('['); + REGEXP_CONTROL_CHARS.add(']'); + REGEXP_CONTROL_CHARS.add('^'); + REGEXP_CONTROL_CHARS.add('$'); + REGEXP_CONTROL_CHARS.add('?'); + REGEXP_CONTROL_CHARS.add('*'); + REGEXP_CONTROL_CHARS.add('+'); + REGEXP_CONTROL_CHARS.add('{'); + REGEXP_CONTROL_CHARS.add('}'); + REGEXP_CONTROL_CHARS.add('|'); + REGEXP_CONTROL_CHARS.add('('); + REGEXP_CONTROL_CHARS.add(')'); + REGEXP_CONTROL_CHARS.add(':'); + REGEXP_CONTROL_CHARS.add('&'); + REGEXP_CONTROL_CHARS.add('<'); + REGEXP_CONTROL_CHARS.add('>'); + REGEXP_CONTROL_CHARS.add('='); + REGEXP_CONTROL_CHARS.add('!'); } static class LikeExpression extends UnaryExpression implements BooleanExpression @@ -109,7 +109,7 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { regexp.append("."); // match one } - else if (REGEXP_CONTROL_CHARS.contains(new Character(c))) + else if (REGEXP_CONTROL_CHARS.contains(c)) { regexp.append("\\x"); regexp.append(Integer.toHexString(0xFFFF & c)); @@ -415,23 +415,23 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Short.class) { - lv = new Short(((Number) lv).shortValue()); + lv = ((Number) lv).shortValue(); } else if (rc == Integer.class) { - lv = new Integer(((Number) lv).intValue()); + lv = ((Number) lv).intValue(); } else if (rc == Long.class) { - lv = new Long(((Number) lv).longValue()); + lv = ((Number) lv).longValue(); } else if (rc == Float.class) { - lv = new Float(((Number) lv).floatValue()); + lv = ((Number) lv).floatValue(); } else if (rc == Double.class) { - lv = new Double(((Number) lv).doubleValue()); + lv = ((Number) lv).doubleValue(); } else { @@ -442,19 +442,19 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Integer.class) { - lv = new Integer(((Number) lv).intValue()); + lv = ((Number) lv).intValue(); } else if (rc == Long.class) { - lv = new Long(((Number) lv).longValue()); + lv = ((Number) lv).longValue(); } else if (rc == Float.class) { - lv = new Float(((Number) lv).floatValue()); + lv = ((Number) lv).floatValue(); } else if (rc == Double.class) { - lv = new Double(((Number) lv).doubleValue()); + lv = ((Number) lv).doubleValue(); } else { @@ -465,15 +465,15 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Long.class) { - lv = new Long(((Number) lv).longValue()); + lv = ((Number) lv).longValue(); } else if (rc == Float.class) { - lv = new Float(((Number) lv).floatValue()); + lv = ((Number) lv).floatValue(); } else if (rc == Double.class) { - lv = new Double(((Number) lv).doubleValue()); + lv = ((Number) lv).doubleValue(); } else { @@ -484,15 +484,15 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Integer.class) { - rv = new Long(((Number) rv).longValue()); + rv = ((Number) rv).longValue(); } else if (rc == Float.class) { - lv = new Float(((Number) lv).floatValue()); + lv = ((Number) lv).floatValue(); } else if (rc == Double.class) { - lv = new Double(((Number) lv).doubleValue()); + lv = ((Number) lv).doubleValue(); } else { @@ -503,15 +503,15 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Integer.class) { - rv = new Float(((Number) rv).floatValue()); + rv = ((Number) rv).floatValue(); } else if (rc == Long.class) { - rv = new Float(((Number) rv).floatValue()); + rv = ((Number) rv).floatValue(); } else if (rc == Double.class) { - lv = new Double(((Number) lv).doubleValue()); + lv = ((Number) lv).doubleValue(); } else { @@ -522,15 +522,15 @@ public abstract class ComparisonExpression extends BinaryExpression implements B { if (rc == Integer.class) { - rv = new Double(((Number) rv).doubleValue()); + rv = ((Number) rv).doubleValue(); } else if (rc == Long.class) { - rv = new Double(((Number) rv).doubleValue()); + rv = ((Number) rv).doubleValue(); } else if (rc == Float.class) { - rv = new Float(((Number) rv).doubleValue()); + rv = ((Number) rv).doubleValue(); } else { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ConstantExpression.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ConstantExpression.java index 15cb770216..5cc9ca8ef2 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ConstantExpression.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/ConstantExpression.java @@ -77,7 +77,7 @@ public class ConstantExpression implements Expression long l = value.longValue(); if ((Integer.MIN_VALUE <= l) && (l <= Integer.MAX_VALUE)) { - value = new Integer(value.intValue()); + value = value.intValue(); } return new ConstantExpression(value); @@ -85,11 +85,11 @@ public class ConstantExpression implements Expression public static ConstantExpression createFromHex(String text) { - Number value = new Long(Long.parseLong(text.substring(2), 16)); + Number value = Long.parseLong(text.substring(2), 16); long l = value.longValue(); if ((Integer.MIN_VALUE <= l) && (l <= Integer.MAX_VALUE)) { - value = new Integer(value.intValue()); + value = value.intValue(); } return new ConstantExpression(value); @@ -97,11 +97,11 @@ public class ConstantExpression implements Expression public static ConstantExpression createFromOctal(String text) { - Number value = new Long(Long.parseLong(text, 8)); + Number value = Long.parseLong(text, 8); long l = value.longValue(); if ((Integer.MIN_VALUE <= l) && (l <= Integer.MAX_VALUE)) { - value = new Integer(value.intValue()); + value = value.intValue(); } return new ConstantExpression(value); @@ -141,7 +141,7 @@ public class ConstantExpression implements Expression if (value instanceof Boolean) { - return ((Boolean) value).booleanValue() ? "TRUE" : "FALSE"; + return ((Boolean) value) ? "TRUE" : "FALSE"; } if (value instanceof String) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/UnaryExpression.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/UnaryExpression.java index 9e03ecd8bd..557af95001 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/UnaryExpression.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/filter/UnaryExpression.java @@ -110,19 +110,19 @@ public abstract class UnaryExpression implements Expression Class clazz = left.getClass(); if (clazz == Integer.class) { - return new Integer(-left.intValue()); + return -left.intValue(); } else if (clazz == Long.class) { - return new Long(-left.longValue()); + return -left.longValue(); } else if (clazz == Float.class) { - return new Float(-left.floatValue()); + return -left.floatValue(); } else if (clazz == Double.class) { - return new Double(-left.doubleValue()); + return -left.doubleValue(); } else if (clazz == BigDecimal.class) { @@ -135,7 +135,7 @@ public abstract class UnaryExpression implements Expression if (BD_LONG_MIN_VALUE.compareTo(bd) == 0) { - return new Long(Long.MIN_VALUE); + return Long.MIN_VALUE; } return bd; @@ -186,14 +186,7 @@ public abstract class UnaryExpression implements Expression */ public boolean equals(Object o) { - - if ((o == null) || !this.getClass().equals(o.getClass())) - { - return false; - } - - return toString().equals(o.toString()); - + return ((o != null) && this.getClass().equals(o.getClass())) && toString().equals(o.toString()); } /** diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java index 36e8f6cf84..258552f2f5 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/management/LoggingManagementMBean.java @@ -528,9 +528,10 @@ public class LoggingManagementMBean extends AMQManagedObject implements LoggingM Map<String,String> levels = retrieveConfigFileLoggersLevels(_log4jConfigFileName); - for (String loggerName : levels.keySet()) + for (Map.Entry<String,String> entry : levels.entrySet()) { - String level = levels.get(loggerName); + String loggerName = entry.getKey(); + String level = entry.getValue(); try { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java index 69139d38a3..536c5cdb0a 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/BindingLogSubject.java @@ -37,7 +37,7 @@ public class BindingLogSubject extends AbstractLogSubject * 3 - Queue Name * 4 - Binding RoutingKey */ - protected static String BINDING_FORMAT = "vh(/{0})/ex({1}/{2})/qu({3})/rk({4})"; + protected static final String BINDING_FORMAT = "vh(/{0})/ex({1}/{2})/qu({3})/rk({4})"; /** * Create a BindingLogSubject that Logs in the following format. diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java index dc6e79a214..7660804b19 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java @@ -36,7 +36,7 @@ public class ChannelLogSubject extends AbstractLogSubject * 3 - Virtualhost * 4 - Channel ID */ - public static String CHANNEL_FORMAT = ConnectionLogSubject.CONNECTION_FORMAT + public static final String CHANNEL_FORMAT = ConnectionLogSubject.CONNECTION_FORMAT + "/ch:{4}"; public ChannelLogSubject(AMQChannel channel) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java index 6c41718177..eec7888b2d 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java @@ -32,7 +32,7 @@ public class ConnectionLogSubject extends AbstractLogSubject * 0 - Connection ID * 1 - Remote Address */ - public static String SOCKET_FORMAT = "con:{0}({1})"; + public static final String SOCKET_FORMAT = "con:{0}({1})"; /** * LOG FORMAT for the ConnectionLogSubject, diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java index 0fc2d7392f..d954ff64d7 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java @@ -35,7 +35,7 @@ public class ExchangeLogSubject extends AbstractLogSubject * 1 - Exchange Type * 2 - Exchange Name */ - protected static String BINDING_FORMAT = "vh(/{0})/ex({1}/{2})"; + protected static final String BINDING_FORMAT = "vh(/{0})/ex({1}/{2})"; /** Create an ExchangeLogSubject that Logs in the following format. */ public ExchangeLogSubject(Exchange exchange, VirtualHost vhost) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java index e11cbba4f4..0417a218ee 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java @@ -34,7 +34,7 @@ public class MessageStoreLogSubject extends AbstractLogSubject * 0 - Virtualhost Name * 1 - Message Store Type */ - protected static String BINDING_FORMAT = "vh(/{0})/ms({1})"; + protected static final String BINDING_FORMAT = "vh(/{0})/ms({1})"; /** Create an ExchangeLogSubject that Logs in the following format. */ public MessageStoreLogSubject(VirtualHost vhost, MessageStore store) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/QueueLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/QueueLogSubject.java index b132d9e93f..be96f66074 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/QueueLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/QueueLogSubject.java @@ -33,7 +33,7 @@ public class QueueLogSubject extends AbstractLogSubject * 0 - Virtualhost name * 1 - queue name */ - public static String LOG_FORMAT = "vh(/{0})/qu({1})"; + public static final String LOG_FORMAT = "vh(/{0})/qu({1})"; /** Create an QueueLogSubject that Logs in the following format. */ public QueueLogSubject(AMQQueue queue) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java index 0683c8e361..5d82e97768 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/SubscriptionLogSubject.java @@ -34,7 +34,7 @@ public class SubscriptionLogSubject extends AbstractLogSubject * * 0 - Subscription ID */ - public static String SUBSCRIPTION_FORMAT = "sub:{0}"; + public static final String SUBSCRIPTION_FORMAT = "sub:{0}"; /** * Create an QueueLogSubject that Logs in the following format. diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/JMXManagedObjectRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/JMXManagedObjectRegistry.java index 03e1d1fcaa..0334a856c1 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/JMXManagedObjectRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/JMXManagedObjectRegistry.java @@ -326,7 +326,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry * made using the object reference will not be affected and continue to operate normally. */ - private class CustomRMIServerSocketFactory implements RMIServerSocketFactory + private static class CustomRMIServerSocketFactory implements RMIServerSocketFactory { public ServerSocket createServerSocket(int port) throws IOException @@ -334,7 +334,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry return new NoLocalAddressServerSocket(port); } - private class NoLocalAddressServerSocket extends ServerSocket + private static class NoLocalAddressServerSocket extends ServerSocket { NoLocalAddressServerSocket(int port) throws IOException { @@ -350,7 +350,7 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry } } - private class NoLocalAddressSocket extends Socket + private static class NoLocalAddressSocket extends Socket { @Override public InetAddress getInetAddress() diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanIntrospector.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanIntrospector.java index 9c2a455897..17a6851abc 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanIntrospector.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanIntrospector.java @@ -361,19 +361,21 @@ class MBeanIntrospector { */ private static MBeanConstructorInfo getMBeanConstructorInfo(Constructor cons) { - String desc = null; + String desc = _defaultConstructorDescription; Annotation anno = cons.getAnnotation(MBeanConstructor.class); if (anno != null && MBeanConstructor.class.isInstance(anno)) { desc = MBeanConstructor.class.cast(anno).value(); + if(desc == null) + { + desc = _defaultConstructorDescription; + } } //MBeanParameterInfo[] paramsInfo = getParametersInfo(cons.getParameterAnnotations(), // cons.getParameterTypes()); - return new MBeanConstructorInfo(cons.getName(), - desc != null ? _defaultConstructorDescription : desc , - null); + return new MBeanConstructorInfo(cons.getName(), desc, null); } /** diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java index 19b4586017..964b5ed5a0 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/management/MBeanInvocationHandlerImpl.java @@ -294,7 +294,9 @@ public class MBeanInvocationHandlerImpl implements InvocationHandler, Notificati public void handleNotification(Notification notification, Object handback) { - // only RMI Connections are serviced here, Local API atta + assert notification instanceof JMXConnectionNotification; + + // only RMI Connections are serviced here, Local API atta // rmi://169.24.29.116 guest 3 String[] connectionData = ((JMXConnectionNotification) notification).getConnectionId().split(" "); String user = connectionData[1]; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData.java index 2f8c2e09a2..30bea7b6e6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageMetaData.java @@ -110,7 +110,6 @@ public class MessageMetaData implements StorableMessageMetaData public int getStorableSize() { - BasicContentHeaderProperties properties = (BasicContentHeaderProperties) (_contentHeaderBody.properties); int size = _contentHeaderBody.getSize(); size += 4; size += EncodingUtils.encodedShortStringLength(_messagePublishInfo.getExchange()); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferHeader.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferHeader.java index a15e16a64f..0296735699 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferHeader.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/message/MessageTransferHeader.java @@ -56,7 +56,7 @@ class MessageTransferHeader implements AMQMessageHeader public long getExpiration() { - return _deliveryProps == null ? null : _deliveryProps.getExpiration(); + return _deliveryProps == null ? 0L : _deliveryProps.getExpiration(); } public String getMessageId() diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java index 5a7c9923f8..c55c07a145 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java @@ -652,7 +652,7 @@ public class AMQProtocolEngine implements ProtocolEngine, Managable, AMQProtocol // InvalidArgument and if they then decide to close the session/connection then the there will be time // for that to occur i.e. a new close method be sent before the exeption handling can mark the session closed. //removeChannel(channelId); - _closingChannelsList.remove(new Integer(channelId)); + _closingChannelsList.remove(channelId); } private void markChannelAwaitingCloseOk(int channelId) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java index b3cb90fc6e..e894dda341 100755 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java @@ -382,7 +382,7 @@ private static final byte[] AMQP_0_9_1_HEADER = { _networkDriver.send(ByteBuffer.wrap(newestSupported)); - newDelegate = new ClosedDelegateProtocolEngine(); + _delegate = new ClosedDelegateProtocolEngine(); } else { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java index 6bfd7470ac..bee55118ba 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java @@ -170,9 +170,9 @@ public class AMQQueueFactory conflationKey = QPID_LVQ_KEY; } } - else if(arguments.containsKey(X_QPID_PRIORITIES)) + else if(arguments.containsKey(X_QPID_PRIORITIES.toString())) { - Object prioritiesObj = arguments.get(X_QPID_PRIORITIES); + Object prioritiesObj = arguments.get(X_QPID_PRIORITIES.toString()); if(prioritiesObj instanceof Number) { priorities = ((Number)prioritiesObj).intValue(); @@ -202,9 +202,9 @@ public class AMQQueueFactory { for(QueueProperty p : DECLAREABLE_PROPERTIES) { - if(arguments.containsKey(p.getArgumentName())) + if(arguments.containsKey(p.getArgumentName().toString())) { - p.setPropertyValue(q, arguments.get(p.getArgumentName())); + p.setPropertyValue(q, arguments.get(p.getArgumentName().toString())); } } } @@ -225,10 +225,8 @@ public class AMQQueueFactory Map<String,Object> arguments = null; if(config.isLVQ() || config.getLVQKey() != null) { - if(arguments == null) - { - arguments = new HashMap<String,Object>(); - } + + arguments = new HashMap<String,Object>(); arguments.put(QPID_LAST_VALUE_QUEUE, 1); arguments.put(QPID_LAST_VALUE_QUEUE_KEY, config.getLVQKey() == null ? QPID_LVQ_KEY : config.getLVQKey()); } @@ -238,10 +236,7 @@ public class AMQQueueFactory int priorities = config.getPriorities(); if(priority || priorities > 0) { - if(arguments == null) - { - arguments = new HashMap<String,Object>(); - } + arguments = new HashMap<String,Object>(); if (priorities < 0) { priorities = 10; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java index 484dd5971d..fc04e1382e 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java @@ -162,7 +162,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener private final AtomicLong _stateChangeCount = new AtomicLong(Long.MIN_VALUE); - private AtomicReference _asynchronousRunner = new AtomicReference(null); + private AtomicReference<Runnable> _asynchronousRunner = new AtomicReference<Runnable>(null); private final Executor _asyncDelivery; private AtomicInteger _deliveredMessages = new AtomicInteger(); private AtomicBoolean _stopped = new AtomicBoolean(false); @@ -1085,23 +1085,22 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener */ public List<QueueEntry> getMessagesRangeOnTheQueue(final long fromPosition, final long toPosition) { - List<QueueEntry> entries = getMessagesOnTheQueue(new QueueEntryFilter() - { - private long position = 0; + return getMessagesOnTheQueue(new QueueEntryFilter() + { + private long position = 0; - public boolean accept(QueueEntry entry) - { - position++; - return (position >= fromPosition) && (position <= toPosition); - } + public boolean accept(QueueEntry entry) + { + position++; + return (position >= fromPosition) && (position <= toPosition); + } - public boolean filterComplete() - { - return position >= toPosition; - } - }); + public boolean filterComplete() + { + return position >= toPosition; + } + }); - return entries; } public void moveMessagesToAnotherQueue(final long fromMessageId, @@ -1410,7 +1409,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener adapter.setEntry(entry); final List<? extends BaseQueue> rerouteQueues = _alternateExchange.route(adapter); final ServerMessage message = entry.getMessage(); - if(rerouteQueues != null & rerouteQueues.size() != 0) + if(rerouteQueues != null && rerouteQueues.size() != 0) { txn.enqueue(rerouteQueues, entry.getMessage(), new ServerTransaction.Action() @@ -1801,7 +1800,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener boolean deliveryIncomplete = true; int extraLoops = 1; - Long iterations = new Long(MAX_ASYNC_DELIVERIES); + long iterations = MAX_ASYNC_DELIVERIES; _asynchronousRunner.compareAndSet(runner, null); @@ -1823,7 +1822,7 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener previousStateChangeCount = stateChangeCount; deliveryIncomplete = _subscriptionList.size() != 0; - boolean done = true; + boolean done; SubscriptionList.SubscriptionNodeIterator subscriptionIter = _subscriptionList.iterator(); //iterate over the subscribers and try to advance their pointer @@ -1833,10 +1832,9 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener sub.getSendLock(); try { - if (sub != null) - { - done = attemptDelivery(sub); - } + + done = attemptDelivery(sub); + if (done) { if (extraLoops == 0) @@ -2050,6 +2048,8 @@ public class SimpleAMQQueue implements AMQQueue, Subscription.StateListener public boolean equals(Object o) { + assert o != null; + assert o instanceof QueueEntryListener; return _sub == ((QueueEntryListener) o)._sub; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryList.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryList.java index 8721da0f78..334b7f4ea9 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryList.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleQueueEntryList.java @@ -164,7 +164,7 @@ public class SimpleQueueEntryList implements QueueEntryList } - public class QueueEntryIteratorImpl implements QueueEntryIterator + public static class QueueEntryIteratorImpl implements QueueEntryIterator { private QueueEntryImpl _lastNode; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java index af47ed6bf9..70a9ea5356 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/access/ObjectProperties.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.security.access; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.qpid.framing.AMQShortString; @@ -288,9 +289,11 @@ public class ObjectProperties extends HashMap<ObjectProperties.Property, String> return false; } - for (Property key : properties.keySet()) + for (Map.Entry<Property,String> entry : properties.entrySet()) { - String ruleValue = properties.get(key); + Property key = entry.getKey(); + String ruleValue = entry.getValue(); + String thisValue = get(key); if (!valueMatches(thisValue, ruleValue)) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java index 6ca9c8e762..5a92b33e43 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabase.java @@ -250,10 +250,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } catch (Exception e) @@ -300,10 +297,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } @@ -335,10 +329,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } return true; @@ -420,10 +411,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } @@ -567,10 +555,7 @@ public class Base64MD5PasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java index cea4e90c31..76ebea0321 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java @@ -232,10 +232,7 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } @@ -267,10 +264,7 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } return true; @@ -369,10 +363,7 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } @@ -501,10 +492,7 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase } finally { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } + _userUpdate.unlock(); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/management/AMQUserManagementMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/management/AMQUserManagementMBean.java index 153b8c25db..a9bee4466f 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/management/AMQUserManagementMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/management/AMQUserManagementMBean.java @@ -192,10 +192,7 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana } finally { - if (_accessRightsUpdate.isHeldByCurrentThread()) - { - _accessRightsUpdate.unlock(); - } + _accessRightsUpdate.unlock(); } return true; @@ -256,10 +253,7 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana } finally { - if (_accessRightsUpdate.isHeldByCurrentThread()) - { - _accessRightsUpdate.unlock(); - } + _accessRightsUpdate.unlock(); } } } @@ -409,16 +403,22 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana _accessRightsUpdate.lock(); Properties accessRights = new Properties(); - accessRights.load(new FileInputStream(_accessFile)); + FileInputStream inStream = new FileInputStream(_accessFile); + try + { + accessRights.load(inStream); + } + finally + { + inStream.close(); + } + checkAccessRights(accessRights); setAccessRights(accessRights); } finally { - if (_accessRightsUpdate.isHeldByCurrentThread()) - { - _accessRightsUpdate.unlock(); - } + _accessRightsUpdate.unlock(); } } else @@ -494,10 +494,7 @@ public class AMQUserManagementMBean extends AMQManagedObject implements UserMana } finally { - if (_accessRightsUpdate.isHeldByCurrentThread()) - { - _accessRightsUpdate.unlock(); - } + _accessRightsUpdate.unlock(); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePasswordInitialiser.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePasswordInitialiser.java index dd0bd096c3..5c13e03886 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePasswordInitialiser.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/UsernamePasswordInitialiser.java @@ -46,7 +46,7 @@ public abstract class UsernamePasswordInitialiser implements AuthenticationProvi private ServerCallbackHandler _callbackHandler; - private class ServerCallbackHandler implements CallbackHandler + private static class ServerCallbackHandler implements CallbackHandler { private final PrincipalDatabase _principalDatabase; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java index 38e84c799b..8020d97364 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java @@ -55,7 +55,7 @@ public class CRAMMD5HexInitialiser extends UsernamePasswordInitialiser } - private class HexifyPrincipalDatabase implements PrincipalDatabase + private static class HexifyPrincipalDatabase implements PrincipalDatabase { private PrincipalDatabase _realPricipalDatabase; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java index 838867f233..0865165925 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DerbyMessageStore.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.store; import java.io.ByteArrayInputStream; import java.io.File; +import java.io.IOException; import java.lang.ref.SoftReference; import java.nio.ByteBuffer; import java.sql.Blob; @@ -277,14 +278,25 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(DB_VERSION_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - - stmt.execute(CREATE_DB_VERSION_TABLE); - stmt.close(); + try + { + stmt.execute(CREATE_DB_VERSION_TABLE); + } + finally + { + stmt.close(); + } PreparedStatement pstmt = conn.prepareStatement(INSERT_INTO_DB_VERSION); - pstmt.setInt(1, DB_VERSION); - pstmt.execute(); - pstmt.close(); + try + { + pstmt.setInt(1, DB_VERSION); + pstmt.execute(); + } + finally + { + pstmt.close(); + } } } @@ -295,9 +307,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(EXCHANGE_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - - stmt.execute(CREATE_EXCHANGE_TABLE); - stmt.close(); + try + { + stmt.execute(CREATE_EXCHANGE_TABLE); + } + finally + { + stmt.close(); + } } } @@ -306,8 +323,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(QUEUE_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - stmt.execute(CREATE_QUEUE_TABLE); - stmt.close(); + try + { + stmt.execute(CREATE_QUEUE_TABLE); + } + finally + { + stmt.close(); + } } } @@ -316,9 +339,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(BINDINGS_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - stmt.execute(CREATE_BINDINGS_TABLE); - - stmt.close(); + try + { + stmt.execute(CREATE_BINDINGS_TABLE); + } + finally + { + stmt.close(); + } } } @@ -328,9 +356,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(QUEUE_ENTRY_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - stmt.execute(CREATE_QUEUE_ENTRY_TABLE); - - stmt.close(); + try + { + stmt.execute(CREATE_QUEUE_ENTRY_TABLE); + } + finally + { + stmt.close(); + } } } @@ -340,9 +373,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(META_DATA_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); - stmt.execute(CREATE_META_DATA_TABLE); - - stmt.close(); + try + { + stmt.execute(CREATE_META_DATA_TABLE); + } + finally + { + stmt.close(); + } } } @@ -353,9 +391,14 @@ public class DerbyMessageStore implements MessageStore if(!tableExists(MESSAGE_CONTENT_TABLE_NAME, conn)) { Statement stmt = conn.createStatement(); + try + { stmt.execute(CREATE_MESSAGE_CONTENT_TABLE); - - stmt.close(); + } + finally + { + stmt.close(); + } } } @@ -365,12 +408,24 @@ public class DerbyMessageStore implements MessageStore private boolean tableExists(final String tableName, final Connection conn) throws SQLException { PreparedStatement stmt = conn.prepareStatement(TABLE_EXISTANCE_QUERY); - stmt.setString(1, tableName); - ResultSet rs = stmt.executeQuery(); - boolean exists = rs.next(); - rs.close(); - stmt.close(); - return exists; + try + { + stmt.setString(1, tableName); + ResultSet rs = stmt.executeQuery(); + try + { + return rs.next(); + } + finally + { + rs.close(); + } + } + finally + { + stmt.close(); + } + } public void recover(ConfigurationRecoveryHandler recoveryHandler) throws AMQException @@ -382,7 +437,7 @@ public class DerbyMessageStore implements MessageStore try { ConfigurationRecoveryHandler.QueueRecoveryHandler qrh = recoveryHandler.begin(this); - List<String> queues = loadQueues(qrh); + loadQueues(qrh); ConfigurationRecoveryHandler.ExchangeRecoveryHandler erh = qrh.completeQueueRecovery(); List<String> exchanges = loadExchanges(erh); @@ -399,42 +454,57 @@ public class DerbyMessageStore implements MessageStore } - private List<String> loadQueues(ConfigurationRecoveryHandler.QueueRecoveryHandler qrh) throws SQLException + private void loadQueues(ConfigurationRecoveryHandler.QueueRecoveryHandler qrh) throws SQLException { Connection conn = newAutoCommitConnection(); + try + { + Statement stmt = conn.createStatement(); + try + { + ResultSet rs = stmt.executeQuery(SELECT_FROM_QUEUE); + try + { - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(SELECT_FROM_QUEUE); - List<String> queues = new ArrayList<String>(); + while(rs.next()) + { + String queueName = rs.getString(1); + String owner = rs.getString(2); + boolean exclusive = rs.getBoolean(3); + Blob argumentsAsBlob = rs.getBlob(4); + + byte[] dataAsBytes = argumentsAsBlob.getBytes(1,(int) argumentsAsBlob.length()); + FieldTable arguments; + if(dataAsBytes.length > 0) + { + org.apache.mina.common.ByteBuffer buffer = org.apache.mina.common.ByteBuffer.wrap(dataAsBytes); - while(rs.next()) - { - String queueName = rs.getString(1); - String owner = rs.getString(2); - boolean exclusive = rs.getBoolean(3); - Blob argumentsAsBlob = rs.getBlob(4); + arguments = new FieldTable(buffer,buffer.limit()); + } + else + { + arguments = null; + } - byte[] dataAsBytes = argumentsAsBlob.getBytes(1,(int) argumentsAsBlob.length()); - FieldTable arguments; - if(dataAsBytes.length > 0) - { - org.apache.mina.common.ByteBuffer buffer = org.apache.mina.common.ByteBuffer.wrap(dataAsBytes); + qrh.queue(queueName, owner, exclusive, arguments); - arguments = new FieldTable(buffer,buffer.limit()); + } + + } + finally + { + rs.close(); + } } - else + finally { - arguments = null; + stmt.close(); } - - qrh.queue(queueName, owner, exclusive, arguments); - - queues.add(queueName); } - - conn.close(); - - return queues; + finally + { + conn.close(); + } } @@ -448,21 +518,33 @@ public class DerbyMessageStore implements MessageStore conn = newAutoCommitConnection(); Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(SELECT_FROM_EXCHANGE); - - while(rs.next()) + try { - String exchangeName = rs.getString(1); - String type = rs.getString(2); - boolean autoDelete = rs.getShort(3) != 0; + ResultSet rs = stmt.executeQuery(SELECT_FROM_EXCHANGE); + try + { + while(rs.next()) + { + String exchangeName = rs.getString(1); + String type = rs.getString(2); + boolean autoDelete = rs.getShort(3) != 0; - exchanges.add(exchangeName); + exchanges.add(exchangeName); - erh.exchange(exchangeName, type, autoDelete); + erh.exchange(exchangeName, type, autoDelete); + } + return exchanges; + } + finally + { + rs.close(); + } + } + finally + { + stmt.close(); } - return exchanges; - } finally { @@ -485,31 +567,44 @@ public class DerbyMessageStore implements MessageStore PreparedStatement stmt = conn.prepareStatement(SELECT_FROM_BINDINGS); - ResultSet rs = stmt.executeQuery(); - - - while(rs.next()) + try { - String exchangeName = rs.getString(1); - String queueName = rs.getString(2); - String bindingKey = rs.getString(3); - Blob arguments = rs.getBlob(4); - java.nio.ByteBuffer buf; + ResultSet rs = stmt.executeQuery(); - if(arguments != null && arguments.length() != 0) + try { - byte[] argumentBytes = arguments.getBytes(1, (int) arguments.length()); - buf = java.nio.ByteBuffer.wrap(argumentBytes); + + while(rs.next()) + { + String exchangeName = rs.getString(1); + String queueName = rs.getString(2); + String bindingKey = rs.getString(3); + Blob arguments = rs.getBlob(4); + java.nio.ByteBuffer buf; + + if(arguments != null && arguments.length() != 0) + { + byte[] argumentBytes = arguments.getBytes(1, (int) arguments.length()); + buf = java.nio.ByteBuffer.wrap(argumentBytes); + } + else + { + buf = null; + } + + brh.binding(exchangeName, queueName, bindingKey, buf); + } } - else + finally { - buf = null; + rs.close(); } - - brh.binding(exchangeName, queueName, bindingKey, buf); } - - stmt.close(); + finally + { + stmt.close(); + } + } finally { @@ -529,7 +624,10 @@ public class DerbyMessageStore implements MessageStore try { - DriverManager.getConnection(_connectionURL + ";shutdown=true"); + Connection conn = DriverManager.getConnection(_connectionURL + ";shutdown=true"); + // Shouldn't reach this point - shutdown=true should throw SQLException + conn.close(); + _logger.error("Unable to shut down the store"); } catch (SQLException e) { @@ -563,48 +661,59 @@ public class DerbyMessageStore implements MessageStore public void removeMessage(long messageId) { - Connection conn = null; try { - conn = newConnection(); - PreparedStatement stmt = conn.prepareStatement(DELETE_FROM_META_DATA); - stmt.setLong(1,messageId); - int results = stmt.executeUpdate(); - stmt.close(); - - if (results == 0) + Connection conn = newConnection(); + try { - throw new RuntimeException("Message metadata not found for message id " + messageId); - } + PreparedStatement stmt = conn.prepareStatement(DELETE_FROM_META_DATA); + try + { + stmt.setLong(1,messageId); + int results = stmt.executeUpdate(); + stmt.close(); - if (_logger.isDebugEnabled()) - { - _logger.debug("Deleted metadata for message " + messageId); - } + if (results == 0) + { + throw new RuntimeException("Message metadata not found for message id " + messageId); + } - stmt = conn.prepareStatement(DELETE_FROM_MESSAGE_CONTENT); - stmt.setLong(1,messageId); - results = stmt.executeUpdate(); - stmt.close(); + if (_logger.isDebugEnabled()) + { + _logger.debug("Deleted metadata for message " + messageId); + } - conn.commit(); - conn.close(); - } - catch (SQLException e) - { - if ((conn != null)) + stmt = conn.prepareStatement(DELETE_FROM_MESSAGE_CONTENT); + stmt.setLong(1,messageId); + results = stmt.executeUpdate(); + } + finally + { + stmt.close(); + } + conn.commit(); + } + catch(SQLException e) { try { conn.rollback(); - conn.close(); } - catch (SQLException e1) + catch(SQLException t) { - + // ignore - we are re-throwing underlying exception } - } + throw e; + + } + finally + { + conn.close(); + } + } + catch (SQLException e) + { throw new RuntimeException("Error removing message with id " + messageId + " from database: " + e.getMessage(), e); } @@ -616,37 +725,52 @@ public class DerbyMessageStore implements MessageStore { try { - Connection conn = null; + Connection conn = newAutoCommitConnection(); try { - conn = newAutoCommitConnection(); - PreparedStatement stmt = conn.prepareStatement(FIND_EXCHANGE); - stmt.setString(1, exchange.getNameShortString().toString()); - ResultSet rs = stmt.executeQuery(); + PreparedStatement stmt = conn.prepareStatement(FIND_EXCHANGE); + try + { + stmt.setString(1, exchange.getNameShortString().toString()); + ResultSet rs = stmt.executeQuery(); + try + { - // If we don't have any data in the result set then we can add this exchange - if (!rs.next()) + // If we don't have any data in the result set then we can add this exchange + if (!rs.next()) + { + + PreparedStatement insertStmt = conn.prepareStatement(INSERT_INTO_EXCHANGE); + try + { + insertStmt.setString(1, exchange.getName().toString()); + insertStmt.setString(2, exchange.getTypeShortString().asString()); + insertStmt.setShort(3, exchange.isAutoDelete() ? (short) 1 : (short) 0); + insertStmt.execute(); + } + finally + { + insertStmt.close(); + } + } + } + finally + { + rs.close(); + } + } + finally { stmt.close(); - - stmt = conn.prepareStatement(INSERT_INTO_EXCHANGE); - stmt.setString(1, exchange.getName().toString()); - stmt.setString(2, exchange.getTypeShortString().asString()); - stmt.setShort(3, exchange.isAutoDelete() ? (short) 1 : (short) 0); - stmt.execute(); - stmt.close(); } } finally { - if(conn != null) - { - conn.close(); - } + conn.close(); } } catch (SQLException e) @@ -659,39 +783,37 @@ public class DerbyMessageStore implements MessageStore public void removeExchange(Exchange exchange) throws AMQStoreException { - Connection conn = null; try { - conn = newAutoCommitConnection(); - PreparedStatement stmt = conn.prepareStatement(DELETE_FROM_EXCHANGE); - stmt.setString(1, exchange.getNameShortString().toString()); - int results = stmt.executeUpdate(); - stmt.close(); - if(results == 0) + Connection conn = newAutoCommitConnection(); + try + { + PreparedStatement stmt = conn.prepareStatement(DELETE_FROM_EXCHANGE); + try + { + stmt.setString(1, exchange.getNameShortString().toString()); + int results = stmt.executeUpdate(); + stmt.close(); + if(results == 0) + { + throw new AMQStoreException("Exchange " + exchange.getNameShortString() + " not found"); + } + } + finally + { + stmt.close(); + } + } + finally { - throw new AMQStoreException("Exchange " + exchange.getNameShortString() + " not found"); + conn.close(); } } catch (SQLException e) { throw new AMQStoreException("Error deleting Exchange with name " + exchange.getNameShortString() + " from database: " + e.getMessage(), e); } - finally - { - if(conn != null) - { - try - { - conn.close(); - } - catch (SQLException e) - { - _logger.error(e); - } - } - - } } public void bindQueue(Exchange exchange, AMQShortString routingKey, AMQQueue queue, FieldTable args) @@ -699,44 +821,69 @@ public class DerbyMessageStore implements MessageStore { if (_state != State.RECOVERING) { - Connection conn = null; - try { - conn = newAutoCommitConnection(); - - PreparedStatement stmt = conn.prepareStatement(FIND_BINDING); - stmt.setString(1, exchange.getNameShortString().toString() ); - stmt.setString(2, queue.getNameShortString().toString()); - stmt.setString(3, routingKey == null ? null : routingKey.toString()); - - ResultSet rs = stmt.executeQuery(); + Connection conn = newAutoCommitConnection(); - // If this binding is not already in the store then create it. - if (!rs.next()) + try { - stmt = conn.prepareStatement(INSERT_INTO_BINDINGS); - stmt.setString(1, exchange.getNameShortString().toString() ); - stmt.setString(2, queue.getNameShortString().toString()); - stmt.setString(3, routingKey == null ? null : routingKey.toString()); - if(args != null) + + PreparedStatement stmt = conn.prepareStatement(FIND_BINDING); + try { - /* This would be the Java 6 way of setting a Blob - Blob blobArgs = conn.createBlob(); - blobArgs.setBytes(0, args.getDataAsBytes()); - stmt.setBlob(4, blobArgs); - */ - byte[] bytes = args.getDataAsBytes(); - ByteArrayInputStream bis = new ByteArrayInputStream(bytes); - stmt.setBinaryStream(4, bis, bytes.length); + stmt.setString(1, exchange.getNameShortString().toString() ); + stmt.setString(2, queue.getNameShortString().toString()); + stmt.setString(3, routingKey == null ? null : routingKey.toString()); + + ResultSet rs = stmt.executeQuery(); + try + { + // If this binding is not already in the store then create it. + if (!rs.next()) + { + PreparedStatement insertStmt = conn.prepareStatement(INSERT_INTO_BINDINGS); + try + { + insertStmt.setString(1, exchange.getNameShortString().toString() ); + insertStmt.setString(2, queue.getNameShortString().toString()); + insertStmt.setString(3, routingKey == null ? null : routingKey.toString()); + if(args != null) + { + /* This would be the Java 6 way of setting a Blob + Blob blobArgs = conn.createBlob(); + blobArgs.setBytes(0, args.getDataAsBytes()); + stmt.setBlob(4, blobArgs); + */ + byte[] bytes = args.getDataAsBytes(); + ByteArrayInputStream bis = new ByteArrayInputStream(bytes); + insertStmt.setBinaryStream(4, bis, bytes.length); + } + else + { + insertStmt.setNull(4, Types.BLOB); + } + + insertStmt.executeUpdate(); + } + finally + { + insertStmt.close(); + } + } + } + finally + { + rs.close(); + } } - else + finally { - stmt.setNull(4, Types.BLOB); + stmt.close(); } - - stmt.executeUpdate(); - stmt.close(); + } + finally + { + conn.close(); } } catch (SQLException e) @@ -744,21 +891,6 @@ public class DerbyMessageStore implements MessageStore throw new AMQStoreException("Error writing binding for AMQQueue with name " + queue.getNameShortString() + " to exchange " + exchange.getNameShortString() + " to database: " + e.getMessage(), e); } - finally - { - if(conn != null) - { - try - { - conn.close(); - } - catch (SQLException e) - { - _logger.error(e); - } - } - - } } @@ -828,39 +960,58 @@ public class DerbyMessageStore implements MessageStore Connection conn = newAutoCommitConnection(); PreparedStatement stmt = conn.prepareStatement(FIND_QUEUE); - stmt.setString(1, queue.getNameShortString().toString()); - - ResultSet rs = stmt.executeQuery(); - - // If we don't have any data in the result set then we can add this queue - if (!rs.next()) + try { - stmt = conn.prepareStatement(INSERT_INTO_QUEUE); - - String owner = queue.getOwner() == null ? null : queue.getOwner().toString(); - stmt.setString(1, queue.getNameShortString().toString()); - stmt.setString(2, owner); - stmt.setBoolean(3,queue.isExclusive()); - - final byte[] underlying; - if(arguments != null) + ResultSet rs = stmt.executeQuery(); + try { - underlying = arguments.getDataAsBytes(); + + // If we don't have any data in the result set then we can add this queue + if (!rs.next()) + { + PreparedStatement insertStmt = conn.prepareStatement(INSERT_INTO_QUEUE); + + try + { + String owner = queue.getOwner() == null ? null : queue.getOwner().toString(); + + insertStmt.setString(1, queue.getNameShortString().toString()); + insertStmt.setString(2, owner); + insertStmt.setBoolean(3,queue.isExclusive()); + + final byte[] underlying; + if(arguments != null) + { + underlying = arguments.getDataAsBytes(); + } + else + { + underlying = new byte[0]; + } + + ByteArrayInputStream bis = new ByteArrayInputStream(underlying); + insertStmt.setBinaryStream(4,bis,underlying.length); + + insertStmt.execute(); + } + finally + { + insertStmt.close(); + } + } } - else + finally { - underlying = new byte[0]; + rs.close(); } - - ByteArrayInputStream bis = new ByteArrayInputStream(underlying); - stmt.setBinaryStream(4,bis,underlying.length); - - stmt.execute(); + } + finally + { stmt.close(); - - conn.close(); } + conn.close(); + } catch (SQLException e) { @@ -886,24 +1037,46 @@ public class DerbyMessageStore implements MessageStore { Connection conn = newAutoCommitConnection(); - PreparedStatement stmt = conn.prepareStatement(FIND_QUEUE); - stmt.setString(1, queue.getNameShortString().toString()); - - ResultSet rs = stmt.executeQuery(); - - if (rs.next()) + try { - PreparedStatement stmt2 = conn.prepareStatement(UPDATE_QUEUE_EXCLUSIVITY); - - stmt2.setBoolean(1,queue.isExclusive()); - stmt2.setString(2, queue.getNameShortString().toString()); + PreparedStatement stmt = conn.prepareStatement(FIND_QUEUE); + try + { + stmt.setString(1, queue.getNameShortString().toString()); - stmt2.execute(); - stmt2.close(); + ResultSet rs = stmt.executeQuery(); + try + { + if (rs.next()) + { + PreparedStatement stmt2 = conn.prepareStatement(UPDATE_QUEUE_EXCLUSIVITY); + try + { + stmt2.setBoolean(1,queue.isExclusive()); + stmt2.setString(2, queue.getNameShortString().toString()); + + stmt2.execute(); + } + finally + { + stmt2.close(); + } + } + } + finally + { + rs.close(); + } + } + finally + { + stmt.close(); + } + } + finally + { + conn.close(); } - - stmt.close(); - conn.close(); } catch (SQLException e) { @@ -920,7 +1093,22 @@ public class DerbyMessageStore implements MessageStore private Connection newAutoCommitConnection() throws SQLException { final Connection connection = newConnection(); - connection.setAutoCommit(true); + try + { + connection.setAutoCommit(true); + } + catch (SQLException sqlEx) + { + + try + { + connection.close(); + } + finally + { + throw sqlEx; + } + } return connection; } @@ -932,8 +1120,22 @@ public class DerbyMessageStore implements MessageStore private Connection newConnection() throws SQLException { final Connection connection = DriverManager.getConnection(_connectionURL); - connection.setAutoCommit(false); - connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); + try + { + connection.setAutoCommit(false); + connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED); + } + catch (SQLException sqlEx) + { + try + { + connection.close(); + } + finally + { + throw sqlEx; + } + } return connection; } @@ -999,10 +1201,16 @@ public class DerbyMessageStore implements MessageStore } PreparedStatement stmt = conn.prepareStatement(INSERT_INTO_QUEUE_ENTRY); - stmt.setString(1,name); - stmt.setLong(2,messageId); - stmt.executeUpdate(); - stmt.close(); + try + { + stmt.setString(1,name); + stmt.setLong(2,messageId); + stmt.executeUpdate(); + } + finally + { + stmt.close(); + } } catch (SQLException e) { @@ -1024,19 +1232,27 @@ public class DerbyMessageStore implements MessageStore try { PreparedStatement stmt = conn.prepareStatement(DELETE_FROM_QUEUE_ENTRY); - stmt.setString(1,name); - stmt.setLong(2,messageId); - int results = stmt.executeUpdate(); - stmt.close(); - - if(results != 1) + try { - throw new AMQStoreException("Unable to find message with id " + messageId + " on queue " + name); - } + stmt.setString(1,name); + stmt.setLong(2,messageId); + int results = stmt.executeUpdate(); - if (_logger.isDebugEnabled()) + + + if(results != 1) + { + throw new AMQStoreException("Unable to find message with id " + messageId + " on queue " + name); + } + + if (_logger.isDebugEnabled()) + { + _logger.debug("Dequeuing message " + messageId + " on queue " + name );//+ "[Connection" + conn + "]"); + } + } + finally { - _logger.debug("Dequeuing message " + messageId + " on queue " + name );//+ "[Connection" + conn + "]"); + stmt.close(); } } catch (SQLException e) @@ -1147,25 +1363,48 @@ public class DerbyMessageStore implements MessageStore } PreparedStatement stmt = conn.prepareStatement(INSERT_INTO_META_DATA); - stmt.setLong(1,messageId); - - final int bodySize = 1 + metaData.getStorableSize(); - byte[] underlying = new byte[bodySize]; - underlying[0] = (byte) metaData.getType().ordinal(); - java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(underlying); - buf.position(1); - buf = buf.slice(); - - metaData.writeToBuffer(0, buf); - ByteArrayInputStream bis = new ByteArrayInputStream(underlying); - stmt.setBinaryStream(2,bis,underlying.length); - int result = stmt.executeUpdate(); - stmt.close(); - - if(result == 0) + try { - throw new RuntimeException("Unable to add meta data for message " +messageId); + stmt.setLong(1,messageId); + + final int bodySize = 1 + metaData.getStorableSize(); + byte[] underlying = new byte[bodySize]; + underlying[0] = (byte) metaData.getType().ordinal(); + java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(underlying); + buf.position(1); + buf = buf.slice(); + + metaData.writeToBuffer(0, buf); + ByteArrayInputStream bis = new ByteArrayInputStream(underlying); + try + { + stmt.setBinaryStream(2,bis,underlying.length); + int result = stmt.executeUpdate(); + + if(result == 0) + { + throw new RuntimeException("Unable to add meta data for message " +messageId); + } + } + finally + { + try + { + bis.close(); + } + catch (IOException e) + { + + throw new SQLException(e); + } + } + } + finally + { + stmt.close(); + } + } @@ -1174,38 +1413,58 @@ public class DerbyMessageStore implements MessageStore private void recoverMessages(MessageStoreRecoveryHandler recoveryHandler) throws SQLException { Connection conn = newAutoCommitConnection(); + try + { + MessageStoreRecoveryHandler.StoredMessageRecoveryHandler messageHandler = recoveryHandler.begin(); - MessageStoreRecoveryHandler.StoredMessageRecoveryHandler messageHandler = recoveryHandler.begin(); + Statement stmt = conn.createStatement(); + try + { + ResultSet rs = stmt.executeQuery(SELECT_ALL_FROM_META_DATA); + try + { - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(SELECT_ALL_FROM_META_DATA); + long maxId = 0; - long maxId = 0; + while(rs.next()) + { - while(rs.next()) - { + long messageId = rs.getLong(1); + Blob dataAsBlob = rs.getBlob(2); + + if(messageId > maxId) + { + maxId = messageId; + } + + byte[] dataAsBytes = dataAsBlob.getBytes(1,(int) dataAsBlob.length()); + java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(dataAsBytes); + buf.position(1); + buf = buf.slice(); + MessageMetaDataType type = MessageMetaDataType.values()[dataAsBytes[0]]; + StorableMessageMetaData metaData = type.getFactory().createMetaData(buf); + StoredDerbyMessage message = new StoredDerbyMessage(messageId, metaData, false); + messageHandler.message(message); + } - long messageId = rs.getLong(1); - Blob dataAsBlob = rs.getBlob(2); + _messageId.set(maxId); - if(messageId > maxId) + messageHandler.completeMessageRecovery(); + } + finally + { + rs.close(); + } + } + finally { - maxId = messageId; + stmt.close(); } - - byte[] dataAsBytes = dataAsBlob.getBytes(1,(int) dataAsBlob.length()); - java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(dataAsBytes); - buf.position(1); - buf = buf.slice(); - MessageMetaDataType type = MessageMetaDataType.values()[dataAsBytes[0]]; - StorableMessageMetaData metaData = type.getFactory().createMetaData(buf); - StoredDerbyMessage message = new StoredDerbyMessage(messageId, metaData, false); - messageHandler.message(message); } - - _messageId.set(maxId); - - messageHandler.completeMessageRecovery(); + finally + { + conn.close(); + } } @@ -1213,23 +1472,40 @@ public class DerbyMessageStore implements MessageStore private void recoverQueueEntries(TransactionLogRecoveryHandler recoveryHandler) throws SQLException { Connection conn = newAutoCommitConnection(); + try + { + TransactionLogRecoveryHandler.QueueEntryRecoveryHandler queueEntryHandler = recoveryHandler.begin(this); - TransactionLogRecoveryHandler.QueueEntryRecoveryHandler queueEntryHandler = recoveryHandler.begin(this); + Statement stmt = conn.createStatement(); + try + { + ResultSet rs = stmt.executeQuery(SELECT_FROM_QUEUE_ENTRY); + try + { + while(rs.next()) + { - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery(SELECT_FROM_QUEUE_ENTRY); + String queueName = rs.getString(1); + long messageId = rs.getLong(2); + queueEntryHandler.queueEntry(queueName,messageId); + } + } + finally + { + rs.close(); + } + } + finally + { + stmt.close(); + } - while(rs.next()) + queueEntryHandler.completeQueueEntryRecovery(); + } + finally { - - String queueName = rs.getString(1); - long messageId = rs.getLong(2); - queueEntryHandler.queueEntry(queueName,messageId); + conn.close(); } - - stmt.close(); - - queueEntryHandler.completeQueueEntryRecovery(); } StorableMessageMetaData getMetaData(long messageId) throws SQLException @@ -1239,31 +1515,40 @@ public class DerbyMessageStore implements MessageStore try { PreparedStatement stmt = conn.prepareStatement(SELECT_FROM_META_DATA); - stmt.setLong(1,messageId); - ResultSet rs = stmt.executeQuery(); - - if(rs.next()) + try { - stmt.close(); - - Blob dataAsBlob = rs.getBlob(1); + stmt.setLong(1,messageId); + ResultSet rs = stmt.executeQuery(); + try + { + + if(rs.next()) + { + Blob dataAsBlob = rs.getBlob(1); - byte[] dataAsBytes = dataAsBlob.getBytes(1,(int) dataAsBlob.length()); - java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(dataAsBytes); - buf.position(1); - buf = buf.slice(); - MessageMetaDataType type = MessageMetaDataType.values()[dataAsBytes[0]]; - StorableMessageMetaData metaData = type.getFactory().createMetaData(buf); + byte[] dataAsBytes = dataAsBlob.getBytes(1,(int) dataAsBlob.length()); + java.nio.ByteBuffer buf = java.nio.ByteBuffer.wrap(dataAsBytes); + buf.position(1); + buf = buf.slice(); + MessageMetaDataType type = MessageMetaDataType.values()[dataAsBytes[0]]; + StorableMessageMetaData metaData = type.getFactory().createMetaData(buf); - return metaData; + return metaData; + } + else + { + throw new RuntimeException("Meta data not found for message with id " + messageId); + } + } + finally + { + rs.close(); + } } - else + finally { stmt.close(); - - throw new RuntimeException("Meta data not found for message with id " + messageId); } - } finally { diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java index 3fbb6bfa4a..9ea81660c6 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/SubscriptionList.java @@ -34,7 +34,6 @@ public class SubscriptionList private final SubscriptionNode _head = new SubscriptionNode(); private AtomicReference<SubscriptionNode> _tail = new AtomicReference<SubscriptionNode>(_head); - private final AMQQueue _queue; private AtomicInteger _size = new AtomicInteger(); @@ -115,7 +114,6 @@ public class SubscriptionList public SubscriptionList(AMQQueue queue) { - _queue = queue; } private void advanceHead() @@ -176,7 +174,7 @@ public class SubscriptionList } - public class SubscriptionNodeIterator + public static class SubscriptionNodeIterator { private SubscriptionNode _lastNode; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 117be3e3b7..84601b1b7a 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -198,7 +198,7 @@ public class ServerSessionDelegate extends SessionDelegate { exception(session,method,ExecutionErrorCode.NOT_FOUND, "Queue: " + queueName + " not found"); } - if(queue.getPrincipalHolder() != null && queue.getPrincipalHolder() != session) + else if(queue.getPrincipalHolder() != null && queue.getPrincipalHolder() != session) { exception(session,method,ExecutionErrorCode.RESOURCE_LOCKED, "Exclusive Queue: " + queueName + " owned exclusively by another session"); } @@ -1162,8 +1162,7 @@ public class ServerSessionDelegate extends SessionDelegate { exception(session, sfm, ExecutionErrorCode.NOT_FOUND, "not-found: destination '"+destination+"'"); } - - if(sub.isStopped()) + else if(sub.isStopped()) { sub.setFlowMode(sfm.getFlowMode()); } @@ -1180,8 +1179,10 @@ public class ServerSessionDelegate extends SessionDelegate { exception(session, stop, ExecutionErrorCode.NOT_FOUND, "not-found: destination '"+destination+"'"); } - - sub.stop(); + else + { + sub.stop(); + } } @@ -1196,8 +1197,10 @@ public class ServerSessionDelegate extends SessionDelegate { exception(session, flow, ExecutionErrorCode.NOT_FOUND, "not-found: destination '"+destination+"'"); } - - sub.addCredit(flow.getUnit(), flow.getValue()); + else + { + sub.addCredit(flow.getUnit(), flow.getValue()); + } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java index 45d4be9340..2db1944cd1 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/HouseKeepingTask.java @@ -29,15 +29,15 @@ public abstract class HouseKeepingTask implements Runnable { Logger _logger = Logger.getLogger(this.getClass()); - protected VirtualHost _virtualhost; + private VirtualHost _virtualHost; private String _name; private RootMessageLogger _rootLogger; public HouseKeepingTask(VirtualHost vhost) { - _virtualhost = vhost; - _name = _virtualhost.getName() + ":" + this.getClass().getSimpleName(); + _virtualHost = vhost; + _name = _virtualHost.getName() + ":" + this.getClass().getSimpleName(); _rootLogger = CurrentActor.get().getRootMessageLogger(); } @@ -65,6 +65,10 @@ public abstract class HouseKeepingTask implements Runnable } } + public VirtualHost getVirtualHost() + { + return _virtualHost; + } /** Execute the plugin. */ public abstract void execute(); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java index f2444718af..6ec1c512e5 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java @@ -299,11 +299,13 @@ public class VirtualHostImpl implements VirtualHost if (plugins != null) { - for (String pluginName : plugins.keySet()) + for (Map.Entry<String, VirtualHostPluginFactory> entry : plugins.entrySet()) { + String pluginName = entry.getKey(); + VirtualHostPluginFactory factory = entry.getValue(); try { - VirtualHostPlugin plugin = plugins.get(pluginName).newInstance(this); + VirtualHostPlugin plugin = factory.newInstance(this); // If we had configuration for the plugin the schedule it. if (plugin != null) @@ -636,8 +638,10 @@ public class VirtualHostImpl implements VirtualHost final String password) { BrokerLink blink = new BrokerLink(this, transport, host, port, vhost, durable, authMechanism, username, password); - _links.putIfAbsent(blink,blink); - getConfigStore().addConfiguredObject(blink); + if(_links.putIfAbsent(blink,blink) != null) + { + getConfigStore().addConfiguredObject(blink); + } } public void removeBrokerConnection(final String transport, @@ -671,7 +675,7 @@ public class VirtualHostImpl implements VirtualHost * This is so we can replay the creation of queues/exchanges in to the real _RT after it has been loaded. * This should be removed after the _RT has been fully split from the the TL */ - private class StartupRoutingTable implements DurableConfigurationStore + private static class StartupRoutingTable implements DurableConfigurationStore { public List<Exchange> exchange = new LinkedList<Exchange>(); public List<CreateQueueTuple> queue = new LinkedList<CreateQueueTuple>(); @@ -740,7 +744,7 @@ public class VirtualHostImpl implements VirtualHost } - private class CreateQueueTuple + private static class CreateQueueTuple { public AMQQueue queue; public FieldTable arguments; @@ -752,7 +756,7 @@ public class VirtualHostImpl implements VirtualHost } } - private class CreateBindingTuple + private static class CreateBindingTuple { public AMQQueue queue; public FieldTable arguments; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/SlowConsumerDetection.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/SlowConsumerDetection.java index ddc55652a8..5c4fe0aab8 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/SlowConsumerDetection.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/SlowConsumerDetection.java @@ -19,7 +19,6 @@ */ package org.apache.qpid.server.virtualhost.plugins; -import java.util.HashSet; import java.util.Set; import java.util.concurrent.TimeUnit; @@ -32,8 +31,6 @@ import org.apache.qpid.server.plugins.Plugin; import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.virtualhost.VirtualHost; import org.apache.qpid.server.virtualhost.plugins.logging.SlowConsumerDetectionMessages; -import org.apache.qpid.server.virtualhost.plugins.VirtualHostHouseKeepingPlugin; -import org.apache.qpid.server.virtualhost.plugins.VirtualHostPluginFactory; public class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin { @@ -67,10 +64,10 @@ public class SlowConsumerDetection extends VirtualHostHouseKeepingPlugin public void configure(ConfigurationPlugin config) { _config = (SlowConsumerDetectionConfiguration) config; - _listener = new ConfiguredQueueBindingListener(_virtualhost.getName()); - for (AMQShortString exchangeName : _virtualhost.getExchangeRegistry().getExchangeNames()) + _listener = new ConfiguredQueueBindingListener(getVirtualHost().getName()); + for (AMQShortString exchangeName : getVirtualHost().getExchangeRegistry().getExchangeNames()) { - _virtualhost.getExchangeRegistry().getExchange(exchangeName).addBindingListener(_listener); + getVirtualHost().getExchangeRegistry().getExchange(exchangeName).addBindingListener(_listener); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostHouseKeepingPlugin.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostHouseKeepingPlugin.java index d119190842..3798f47f0b 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostHouseKeepingPlugin.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostHouseKeepingPlugin.java @@ -30,18 +30,11 @@ public abstract class VirtualHostHouseKeepingPlugin extends HouseKeepingTask imp { protected final Logger _logger = Logger.getLogger(getClass()); - protected VirtualHost _virtualhost; - public VirtualHostHouseKeepingPlugin(VirtualHost vhost) { super(vhost); - setVirtualHost(vhost); } - public void setVirtualHost(VirtualHost vhost) - { - _virtualhost = vhost; - } /** * Long value representing the delay between repeats diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostPlugin.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostPlugin.java index 26eb5bbd7f..1886c2d01d 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostPlugin.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/plugins/VirtualHostPlugin.java @@ -27,8 +27,6 @@ import org.apache.qpid.server.virtualhost.VirtualHost; public interface VirtualHostPlugin extends Runnable, Plugin { - public void setVirtualHost(VirtualHost vhost); - /** * Long value representing the delay between repeats * diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/MessageStoreTool.java b/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/MessageStoreTool.java index f26611f0bc..dca165fa7e 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/MessageStoreTool.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/MessageStoreTool.java @@ -171,7 +171,7 @@ public class MessageStoreTool /** * Simple ShutdownHook to cleanly shutdown the databases */ - class ShutdownHook implements Runnable + static class ShutdownHook implements Runnable { MessageStoreTool _tool; @@ -443,7 +443,7 @@ public class MessageStoreTool * * */ - public class State + public static class State { private VirtualHost _vhost = null; private AMQQueue _queue = null; diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java b/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java index a7d58dc6dd..8bb5d02b01 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Dump.java @@ -127,7 +127,7 @@ public class Dump extends Show addShowInformation(hex, ascii, msg, null, false, false, true); } - // Add Content Body seciont + // Add Content Body section hex.add("Content Body"); ascii.add(""); hex.add(Console.ROW_DIVIDER); @@ -182,12 +182,12 @@ public class Dump extends Show String encStr = new String(encoded, 0, bufsize * 2, DEFAULT_ENCODING); String hexLine = ""; - int strKength = encStr.length(); - for (int c = 0; c < strKength; c++) + int strLength = encStr.length(); + for (int c = 0; c < strLength; c++) { hexLine += encStr.charAt(c); - if (c % 2 == 1 && SPACE_BYTES) + if ((c & 1) == 1 && SPACE_BYTES) { hexLine += BYTE_SPACER; } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleConsole.java b/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleConsole.java index ec080a4611..2791a39f92 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleConsole.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/tools/utils/SimpleConsole.java @@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -35,10 +36,10 @@ public class SimpleConsole implements Console private static Logger _devlog = LoggerFactory.getLogger(SimpleConsole.class); /** Console Writer. */ - protected static BufferedWriter _consoleWriter; + protected BufferedWriter _consoleWriter; /** Console Reader. */ - protected static BufferedReader _consoleReader; + protected BufferedReader _consoleReader; /** Parser for command-line input. */ protected CommandParser _parser; @@ -62,7 +63,7 @@ public class SimpleConsole implements Console } catch (IOException e) { - _devlog.error(e.getMessage() + ": Occured whilst trying to write:" + message); + _devlog.error(e.getMessage() + ": Occurred whilst trying to write:" + Arrays.asList(message)); } } |
