Index: activemq-core/src/test/java/org/apache/activemq/transport/StubTransport.java =================================================================== --- activemq-core/src/test/java/org/apache/activemq/transport/StubTransport.java (revision 415067) +++ activemq-core/src/test/java/org/apache/activemq/transport/StubTransport.java (working copy) @@ -46,5 +46,9 @@ return queue; } + public String getRemoteAddress() { + return null; + } + } Index: activemq-core/src/test/java/org/apache/activemq/broker/StubConnection.java =================================================================== --- activemq-core/src/test/java/org/apache/activemq/broker/StubConnection.java (revision 415067) +++ activemq-core/src/test/java/org/apache/activemq/broker/StubConnection.java (working copy) @@ -58,6 +58,10 @@ protected OpenWireFormat getWireFormat() { return wireFormat; } + + public String getRemoteAddress() { + return null; + } }; } Index: activemq-core/src/main/java/org/apache/activemq/selector/SelectorParserTokenManager.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/selector/SelectorParserTokenManager.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/selector/SelectorParserTokenManager.java (working copy) @@ -904,7 +904,7 @@ static final long[] jjtoSpecial = { 0x3eL, }; -protected SimpleCharStream input_stream; +private SimpleCharStream input_stream; private final int[] jjrounds = new int[43]; private final int[] jjstateSet = new int[86]; protected char curChar; @@ -946,7 +946,7 @@ curLexState = lexState; } -protected Token jjFillToken() +private final Token jjFillToken() { Token t = Token.newToken(jjmatchedKind); t.kind = jjmatchedKind; @@ -966,7 +966,7 @@ int jjmatchedPos; int jjmatchedKind; -public Token getNextToken() +public final Token getNextToken() { int kind; Token specialToken = null; Index: activemq-core/src/main/java/org/apache/activemq/selector/SelectorParser.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/selector/SelectorParser.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/selector/SelectorParser.java (working copy) @@ -518,484 +518,600 @@ final private boolean jj_2_1(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_1(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_1(); } final private boolean jj_2_2(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_2(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_2(); } final private boolean jj_2_3(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_3(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_3(); } final private boolean jj_2_4(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_4(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_4(); } final private boolean jj_2_5(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_5(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_5(); } final private boolean jj_2_6(int xla) { jj_la = xla; jj_lastpos = jj_scanpos = token; - try { return !jj_3_6(); } - catch(LookaheadSuccess ls) { return true; } + return !jj_3_6(); } - final private boolean jj_3R_56() { + final private boolean jj_3R_58() { if (jj_scan_token(37)) return true; - if (jj_3R_9()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_11()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_51() { + final private boolean jj_3R_53() { if (jj_scan_token(32)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_27() { + final private boolean jj_3R_29() { if (jj_scan_token(ID)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_61() { + final private boolean jj_3R_63() { if (jj_scan_token(35)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_48() { + final private boolean jj_3R_50() { Token xsp; xsp = jj_scanpos; - if (jj_3R_56()) { + if (jj_3R_58()) { jj_scanpos = xsp; - if (jj_3R_57()) return true; - } + if (jj_3R_59()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_38() { + final private boolean jj_3R_40() { if (jj_scan_token(OR)) return true; - if (jj_3R_37()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_39()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_50() { + final private boolean jj_3R_52() { if (jj_scan_token(31)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_25() { + final private boolean jj_3R_27() { if (jj_scan_token(34)) return true; - if (jj_3R_28()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_30()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(36)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_24() { - if (jj_3R_27()) return true; + final private boolean jj_3R_26() { + if (jj_3R_29()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_49() { + final private boolean jj_3R_51() { if (jj_scan_token(30)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_44() { + final private boolean jj_3R_46() { Token xsp; xsp = jj_scanpos; - if (jj_3R_49()) { - jj_scanpos = xsp; - if (jj_3R_50()) { - jj_scanpos = xsp; if (jj_3R_51()) { jj_scanpos = xsp; if (jj_3R_52()) { jj_scanpos = xsp; if (jj_3R_53()) { jj_scanpos = xsp; + if (jj_3R_54()) { + jj_scanpos = xsp; + if (jj_3R_55()) { + jj_scanpos = xsp; if (jj_3_2()) { jj_scanpos = xsp; - if (jj_3R_54()) { + if (jj_3R_56()) { jj_scanpos = xsp; if (jj_3_3()) { jj_scanpos = xsp; - if (jj_3R_55()) { + if (jj_3R_57()) { jj_scanpos = xsp; if (jj_3_4()) return true; - } - } - } - } - } - } - } - } - } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_23() { - if (jj_3R_26()) return true; + final private boolean jj_3R_25() { + if (jj_3R_28()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_43() { - if (jj_3R_9()) return true; + final private boolean jj_3R_45() { + if (jj_3R_11()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_48()) { jj_scanpos = xsp; break; } + if (jj_3R_50()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - final private boolean jj_3R_28() { - if (jj_3R_37()) return true; + final private boolean jj_3R_30() { + if (jj_3R_39()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_38()) { jj_scanpos = xsp; break; } + if (jj_3R_40()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - final private boolean jj_3R_22() { + final private boolean jj_3R_24() { Token xsp; xsp = jj_scanpos; - if (jj_3R_23()) { + if (jj_3R_25()) { jj_scanpos = xsp; - if (jj_3R_24()) { + if (jj_3R_26()) { jj_scanpos = xsp; - if (jj_3R_25()) return true; - } - } + if (jj_3R_27()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_17() { - if (jj_3R_22()) return true; + final private boolean jj_3R_19() { + if (jj_3R_24()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_21() { + final private boolean jj_3R_23() { if (jj_scan_token(STRING_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_60() { + final private boolean jj_3R_62() { if (jj_scan_token(35)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_16() { + final private boolean jj_3R_18() { if (jj_scan_token(XQUERY)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_41() { - if (jj_3R_43()) return true; + final private boolean jj_3R_43() { + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_44()) { jj_scanpos = xsp; break; } + if (jj_3R_46()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - final private boolean jj_3R_59() { + final private boolean jj_3R_61() { if (jj_scan_token(ESCAPE)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } final private boolean jj_3_4() { if (jj_scan_token(NOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(IN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(34)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_61()) { jj_scanpos = xsp; break; } + if (jj_3R_63()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } if (jj_scan_token(36)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } final private boolean jj_3_6() { if (jj_scan_token(37)) return true; - if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_15() { + final private boolean jj_3R_17() { if (jj_scan_token(XPATH)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_14() { - if (jj_scan_token(NOT)) return true; - if (jj_3R_10()) return true; + final private boolean jj_3R_38() { + if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_36() { - if (jj_scan_token(NULL)) return true; + final private boolean jj_3R_16() { + if (jj_scan_token(NOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_12() { + final private boolean jj_3R_14() { if (jj_scan_token(37)) return true; - if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_55() { + final private boolean jj_3R_57() { if (jj_scan_token(IN)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(34)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_60()) { jj_scanpos = xsp; break; } + if (jj_3R_62()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } if (jj_scan_token(36)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_47() { + final private boolean jj_3R_49() { if (jj_scan_token(IS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(NOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_13() { + final private boolean jj_3R_15() { if (jj_scan_token(38)) return true; - if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_35() { + final private boolean jj_3R_37() { if (jj_scan_token(FALSE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } final private boolean jj_3_1() { if (jj_scan_token(IS)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(NULL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_10() { + final private boolean jj_3R_12() { Token xsp; xsp = jj_scanpos; - if (jj_3R_12()) { - jj_scanpos = xsp; - if (jj_3R_13()) { - jj_scanpos = xsp; if (jj_3R_14()) { jj_scanpos = xsp; if (jj_3R_15()) { jj_scanpos = xsp; if (jj_3R_16()) { jj_scanpos = xsp; - if (jj_3R_17()) return true; - } - } - } - } - } + if (jj_3R_17()) { + jj_scanpos = xsp; + if (jj_3R_18()) { + jj_scanpos = xsp; + if (jj_3R_19()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_34() { + final private boolean jj_3R_36() { if (jj_scan_token(TRUE)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_46() { + final private boolean jj_3R_48() { if (jj_scan_token(29)) return true; - if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } final private boolean jj_3_3() { if (jj_scan_token(NOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(BETWEEN)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(AND)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_45() { + final private boolean jj_3R_47() { if (jj_scan_token(28)) return true; - if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_42() { + final private boolean jj_3R_44() { Token xsp; xsp = jj_scanpos; - if (jj_3R_45()) { + if (jj_3R_47()) { jj_scanpos = xsp; - if (jj_3R_46()) { + if (jj_3R_48()) { jj_scanpos = xsp; if (jj_3_1()) { jj_scanpos = xsp; - if (jj_3R_47()) return true; - } - } - } + if (jj_3R_49()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_33() { + final private boolean jj_3R_35() { if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_54() { + final private boolean jj_3R_56() { if (jj_scan_token(BETWEEN)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(AND)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_58() { + final private boolean jj_3R_60() { if (jj_scan_token(ESCAPE)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_32() { + final private boolean jj_3R_34() { if (jj_scan_token(OCTAL_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_20() { + final private boolean jj_3R_22() { if (jj_scan_token(41)) return true; - if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_39() { - if (jj_3R_41()) return true; + final private boolean jj_3R_41() { + if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_42()) { jj_scanpos = xsp; break; } + if (jj_3R_44()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } final private boolean jj_3_2() { if (jj_scan_token(NOT)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; if (jj_scan_token(LIKE)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_59()) jj_scanpos = xsp; + if (jj_3R_61()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_53() { + final private boolean jj_3R_55() { if (jj_scan_token(LIKE)) return true; - if (jj_3R_21()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; xsp = jj_scanpos; - if (jj_3R_58()) jj_scanpos = xsp; + if (jj_3R_60()) jj_scanpos = xsp; + else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_31() { + final private boolean jj_3R_33() { if (jj_scan_token(HEX_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_19() { + final private boolean jj_3R_21() { if (jj_scan_token(40)) return true; - if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_18() { - if (jj_scan_token(39)) return true; - if (jj_3R_10()) return true; - return false; - } - - final private boolean jj_3R_11() { + final private boolean jj_3R_13() { Token xsp; xsp = jj_scanpos; - if (jj_3R_18()) { + if (jj_3R_20()) { jj_scanpos = xsp; - if (jj_3R_19()) { + if (jj_3R_21()) { jj_scanpos = xsp; - if (jj_3R_20()) return true; - } - } + if (jj_3R_22()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_40() { + final private boolean jj_3R_20() { + if (jj_scan_token(39)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_42() { if (jj_scan_token(AND)) return true; - if (jj_3R_39()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_30() { + final private boolean jj_3R_32() { if (jj_scan_token(DECIMAL_LITERAL)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_9() { - if (jj_3R_10()) return true; + final private boolean jj_3R_11() { + if (jj_3R_12()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_11()) { jj_scanpos = xsp; break; } + if (jj_3R_13()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } - final private boolean jj_3R_29() { - if (jj_3R_21()) return true; + final private boolean jj_3R_10() { + if (jj_scan_token(38)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_57() { + final private boolean jj_3R_31() { + if (jj_3R_23()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_9() { + if (jj_scan_token(37)) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + return false; + } + + final private boolean jj_3R_59() { if (jj_scan_token(38)) return true; - if (jj_3R_9()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_11()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_37() { - if (jj_3R_39()) return true; + final private boolean jj_3R_39() { + if (jj_3R_41()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_40()) { jj_scanpos = xsp; break; } + if (jj_3R_42()) { jj_scanpos = xsp; break; } + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; } return false; } @@ -1003,21 +1119,19 @@ final private boolean jj_3_5() { Token xsp; xsp = jj_scanpos; - if (jj_scan_token(37)) { + if (jj_3R_9()) { jj_scanpos = xsp; - if (jj_scan_token(38)) return true; - } - if (jj_3R_9()) return true; + if (jj_3R_10()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_11()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_26() { + final private boolean jj_3R_28() { Token xsp; xsp = jj_scanpos; - if (jj_3R_29()) { - jj_scanpos = xsp; - if (jj_3R_30()) { - jj_scanpos = xsp; if (jj_3R_31()) { jj_scanpos = xsp; if (jj_3R_32()) { @@ -1028,20 +1142,27 @@ jj_scanpos = xsp; if (jj_3R_35()) { jj_scanpos = xsp; - if (jj_3R_36()) return true; - } - } - } - } - } - } - } + if (jj_3R_36()) { + jj_scanpos = xsp; + if (jj_3R_37()) { + jj_scanpos = xsp; + if (jj_3R_38()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } - final private boolean jj_3R_52() { + final private boolean jj_3R_54() { if (jj_scan_token(33)) return true; - if (jj_3R_43()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_45()) return true; + if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; return false; } @@ -1106,8 +1227,6 @@ throw generateParseException(); } - static private final class LookaheadSuccess extends java.lang.Error { } - final private LookaheadSuccess jj_ls = new LookaheadSuccess(); final private boolean jj_scan_token(int kind) { if (jj_scanpos == jj_lastpos) { jj_la--; @@ -1119,9 +1238,7 @@ } else { jj_scanpos = jj_scanpos.next; } - if (jj_scanpos.kind != kind) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls; - return false; + return (jj_scanpos.kind != kind); } final public Token getNextToken() { @@ -1147,7 +1264,7 @@ return (jj_ntk = jj_nt.kind); } - public ParseException generateParseException() { + final public ParseException generateParseException() { Token errortok = token.next; int line = errortok.beginLine, column = errortok.beginColumn; String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image; Index: activemq-core/src/main/java/org/apache/activemq/broker/Connection.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/broker/Connection.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/broker/Connection.java (working copy) @@ -96,4 +96,9 @@ */ public boolean isManageable(); + /** + * @return the source address for this connection + */ + public String getRemoteAddress(); + } Index: activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java (working copy) @@ -216,4 +216,8 @@ setMarkedCandidate(false); } } + + public String getRemoteAddress() { + return transport.getRemoteAddress(); + } } Index: activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionView.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionView.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionView.java (working copy) @@ -97,4 +97,8 @@ return connection.getStatistics().getDequeues().getCount(); } + public String getRemoteAddress() { + return connection.getRemoteAddress(); + } + } Index: activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionViewMBean.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionViewMBean.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/broker/jmx/ConnectionViewMBean.java (working copy) @@ -62,5 +62,12 @@ * @return the number of messages dequeued on this connection */ public long getDequeueCount(); + + /** + * Returns the source address for this connection + * + * @return the souce address for this connection + */ + public String getRemoteAddress(); } \ No newline at end of file Index: activemq-core/src/main/java/org/apache/activemq/transport/TransportFilter.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/TransportFilter.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/TransportFilter.java (working copy) @@ -108,4 +108,8 @@ } return next.narrow(target); } + + public String getRemoteAddress() { + return next.getRemoteAddress(); + } } \ No newline at end of file Index: activemq-core/src/main/java/org/apache/activemq/transport/udp/UdpTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/udp/UdpTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/udp/UdpTransport.java (working copy) @@ -439,4 +439,11 @@ return (InetSocketAddress)channel.socket().getLocalSocketAddress(); } } + + public String getRemoteAddress() { + if(targetAddress != null){ + return "" + targetAddress; + } + return null; + } } Index: activemq-core/src/main/java/org/apache/activemq/transport/activeio/ActiveIOTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/activeio/ActiveIOTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/activeio/ActiveIOTransport.java (working copy) @@ -196,4 +196,13 @@ return writeCounter; } + public String getRemoteAddress() { + SocketMetadata sm = (SocketMetadata) commandChannel.getAdapter(SocketMetadata.class); + + if (sm != null) { + return "" + sm.getRemoteSocketAddress(); + } + return null; + } + } Index: activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/vm/VMTransport.java (working copy) @@ -143,4 +143,11 @@ return location+"#"+id; } + public String getRemoteAddress() { + if(peer != null){ + return peer.toString(); + } + return null; + } + } Index: activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (working copy) @@ -331,4 +331,11 @@ public void setSocketOptions(Map socketOptions) { IntrospectionSupport.setProperties(socket, socketOptions); } + + public String getRemoteAddress() { + if(socket != null){ + return "" + socket.getRemoteSocketAddress(); + } + return null; + } } Index: activemq-core/src/main/java/org/apache/activemq/transport/mock/MockTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/mock/MockTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/mock/MockTransport.java (working copy) @@ -127,6 +127,10 @@ filter.setTransportListener(this); getNext().setTransportListener(filter); setNext(filter); - } + } + + public String getRemoteAddress() { + return next.getRemoteAddress(); + } } \ No newline at end of file Index: activemq-core/src/main/java/org/apache/activemq/transport/fanout/FanoutTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/fanout/FanoutTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/fanout/FanoutTransport.java (working copy) @@ -518,4 +518,13 @@ } + public String getRemoteAddress() { + if(primary != null){ + if(primary.transport != null){ + return primary.transport.getRemoteAddress(); + } + } + return null; + } + } Index: activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/failover/FailoverTransport.java (working copy) @@ -513,4 +513,11 @@ return connectedTransportURI==null ? "unconnected" : connectedTransportURI.toString(); } + public String getRemoteAddress() { + if(connectedTransport != null){ + return connectedTransport.getRemoteAddress(); + } + return null; + } + } Index: activemq-core/src/main/java/org/apache/activemq/transport/Transport.java =================================================================== --- activemq-core/src/main/java/org/apache/activemq/transport/Transport.java (revision 415067) +++ activemq-core/src/main/java/org/apache/activemq/transport/Transport.java (working copy) @@ -84,4 +84,10 @@ */ public Object narrow(Class target); + /** + * @return the remote address for this connection + * + */ + public String getRemoteAddress(); + }