summaryrefslogtreecommitdiff
path: root/java/common/src
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2007-06-15 16:28:46 +0000
committerMartin Ritchie <ritchiem@apache.org>2007-06-15 16:28:46 +0000
commitf92c24912aafd5fd5a0c279fddb9c51123b89df0 (patch)
treeac7368d22bd2265861bb79072b5fa7d3056b5445 /java/common/src
parentb12c2969adee98ba7ee68349c051b59a549b2a7d (diff)
downloadqpid-python-f92c24912aafd5fd5a0c279fddb9c51123b89df0.tar.gz
Merged revisions 439476-447993,447995-448007,448009-448141,448143-448157,448161-448194,448196-448210,448212-448218,448220-448223,448225-448233,448235,448237-448241,448243-448596,448598-448623,448625-448850,448852-448880,448882-448982,448984-449635,449637-449639,449641-449642,449644-449645,449647-449674,449676-449719,449721-449749,449751-449762,449764-449933,449935-449941,449943-450383,450385,450387-450400,450402-450433,450435-450503,450505-450555,450557-450860,450862-451024,451026-451149,451151-451316,451318-451931,451933-452139,452141-452162,452164-452320,452322,452324-452325,452327-452333,452335-452429,452431-452528,452530-452545,452547-453192,453194-453195,453197-453536,453538,453540-453656,453658-454676,454678-454735,454737,454739-454781,454783-462728,462730-462819,462821-462833,462835-462839,462841-463071,463073-463178,463180-463308,463310-463362,463364-463375,463377-463396,463398-463402,463404-463409,463411-463661,463663-463670,463672-463673,463675-464493,464495-464502,464504-464576,464578-464613,464615-464628,464630,464632-464866,464868-464899,464901-464942,464944-464949,464951-465004,465006-465016,465018-465053,465055-465165,465167-465321,465323-465406,465408-465427,465429-465431,465433-465548,465550-466044,466047-466075,466077,466079-466081,466083-466099,466101-466112,466114-466126,466128-466240,466242-466971,466973-466978,466980-467309,467311-467312,467316-467328,467330-467485,467487-467588,467590-467604,467606-467699,467701-467706,467708-467749,467751-468069,468071-468537,468539-469241,469244-469246,469248-469318,469320-469421,469423,469425-469429,469431-469435,469437-469462,469464-469469,469472-469477,469479-469490,469492-469503,469505-469529,469531-469598,469600-469624,469626-469737,469739-469752,469754-469806,469808-469928,469930-469953,469955-470011,470013-470109,470111-470335,470338-470339,470341-470379,470381,470383-470399,470401-470446,470448-470741,470743-470758,470760-470809,470811-470817,470819-470993,470995-471001,471003-471788,471790-471792,471794-472028,472030-472032,472034-472036,472038,472040,472043,472045-472059,472061,472063,472065-472066,472068,472070-472072,472074-472080,472082,472084-472092,472094-472107,472109-472123,472125-472158,472160-472165,472167-472172,472174-472457,472459-472460,472462-472464,472466-472470,472472-472483,472486-472491,472493-472494,472496-472497,472499,472501-472503,472505-472512,472514-472544,472546-472556,472558-472560,472562-472572,472574-472587,472589-472591,472593-472605,472607,472609-472731,472733-472786,472788-472843,472845-472849,472851-472859,472861-472878,472880-472903,472905,472907-472988,472990-472991,472993-473071,473073-473086,473088-473090,473093,473095-473096,473098-473106,473108-473110,473112-473185,473187-473260,473262,473268-473270,473275-473279,473281,473284-473287,473289-473295,473297-473306,473308-473330,473332-473335,473337,473339-473344,473346-473351,473353-473355,473357-473358,473361-473471,473473-473497,473499-473535,473537-473567,473569-473888,473890-474451,474454-474492,474494-474563,474565-474843,474845-474865,474867-474932,474934-475035,475037-475144,475146-475180,475182-475265,475267-475285,475287,475289-475293,475295-475296,475298-475302,475304-475631,475633-475649,475651-475748,475750-475752,475754-476107,476109-476302,476304-476413,476415-476430,476432-476700,476702-476868,476870-477147,477149-477213,477215-477263,477265-477340,477342-477635,477637-477789,477791-477825,477827-477841,477843,477846-477852,477854,477856,477858-477865,477867-477894,477896-478022,478024-478182,478184-478211,478213-478233,478235-478236,478238-478241,478243-478252,478254-478259,478261-478263,478265,478267-478269,478271-478286,478288-478342,478344-478379,478381-478412,478414-478443,478445-478636,478639-478658,478660-478821,478823-478853,478855-478922,478924-478962,478965-478974,478976-479029,479031-479049,479051-479210,479212-479214,479216-479407,479409-479415,479417-479425,479427-479559,479561-479639,479641-479676,479678-479685,479687-480030,480033-480086,480091-480093,480095-480118,480120-480139,480141,480143-480148,480150-480156,480158-480163,480165-480177,480179-480189,480191-480193,480195-480198,480200-480220,480222-480282,480284-480292,480294-480308,480310-480317,480320-480422,480424,480426-480581,480583-480656,480658-480692,480695-480702,480704,480706-480710,480712-480910,480913-480933,480935-480945,480947-480972,480974-480993,480995-481034,481036-481158,481161-481174,481176-481220,481222-481234,481236-481260,481263-481264,481266-481296,481298-481304,481306-481311,481313-481332,481334,481336-481380,481382-481441,481443-482144,482146-482180,482182-482193,482195-482232,482234-482236,482239,482241-482242,482244-482247,482250-482251,482253,482256-482261,482264-482288,482290-482364,482366,482368,482370-482554,482556,482558-482569,482572-482636,482638,482640-482696,482698-482722,482724-482732,482734-482771,482774-482957,482959-483045,483047-483105,483108,483110-483115,483117,483119-483127,483130-483134,483136-483148,483150-483158,483160-483164,483166-483178,483180-483391,483393-483400,483402-483403,483405-483418,483420-483421,483425-483436,483438-483470,483472-483502,483504-483558,483560-483599,483601-483637,483639-483644,483646-483659,483661-483670,483672-483878,483880-483910,483912-483915,483917-483940,483942,483944-483968,483970-483972,483974-483976,483978,483980-484612,484614-484657,484659-484693,484695-484718,484720-484842,484844-484847,484849-484986,484988-485019,485021-485489,485491-485544,485546-485591,485593,485595-485697,485699-485729,485731-485734,485736-485779,485781-485787,485789-485851,485853,485855-486007,486009,486011-486020,486022-486083,486085-486097,486099-486117,486120-486131,486133-486148,486150-486161,486163-486164,486166-486197,486199-486205,486208-486247,486249-486253,486256-486427,486429-486431,486433-486554,486556-486573,486575-486593,486595,486597-486609,486611-486619,486622,486625,486627-486641,486643-486645,486649-486687,486689-486721,486723-486730,486732-486746,486748-486759,486761,486763-486777,486779-486782,486784-486788,486790,486792,486794-486796,486798-487175,487178,487180-487213,487215,487217-487267,487269-487284,487286-487298,487300-487358,487360-487367,487369-487382,487384-487434,487436-487480,487482-487547,487549-487561,487563-487565,487567-487578,487580-487615,487617-487622,487624,487626,487628,487630-487635,487637-487703,487705-487777,487780-487781,487783-487800,487802-487803,487805-487820,487822-487848,487850-487902,487904-488103,488105-488133,488135-488158,488160-488163,488165-488187,488189-488216,488218-488248,488250-488278,488280,488282-488303,488305-488313,488315-488342,488344-488351,488353-488376,488378-488449,488451-488593,488595,488597-488623,488625-488700,488702-488704,488706-488710,488714,488716-488725,488727-488744,488746-488770,488772-488798,488800,488802-488807,488809,488811-488829,488831-488843,488845-488851,488853-489069,489071-489077,489079-489081,489084-489102,489104-489105,489107-489109,489111-489112,489114-489139,489141-489178,489181-489203,489205-489211,489213,489216-489329,489332-489402,489404-489417,489419-489421,489423-489643,489645-489690,489692-489703,489705-489714,489716-489747,489749-489753,489755-489803,489805-489904,489906-490372,490374-490504,490506-490604,490606-490707,490710-490733,490735-490871,490873-490984,490986-491028,491030,491032-491071,491073-491119,491121-491576,491578-491672,491674-491800,491802-491838,491840-491878,491880-492183,492185-492279,492281-492317,492319-492513,492515-492584,492586-492587,492589-492601,492603-492635,492637-492640,492642-492717,492719-492723,492725-492729,492731-492755,492757-492901,492903-492955,492957-492962,492964-492997,492999-493002,493004-493041,493043-493059,493062-493063,493065-493086,493088-493125,493127-493139,493141-493150,493152-493871,493873-494017,494019-494030,494032-494041,494043-494091,494093-494120,494122-494354,494356-494436,494438-494539,494541-494552,494554-494586,494588-494649,494651,494653-494654,494656-494657,494659-494764,494766-494768,494770-494796,494798-494799,494802,494804-494860,494862-494903,494905-494906,494908-495019,495021-495160,495162-495168,495171-495188,495190-495229,495231-495254,495256-495303,495305-495313,495315-495336,495338-495372,495374-495379,495381-495454,495457-495459,495462-495516,495518-495524,495526-495531,495533-495548,495551-495553,495555,495557-495558,495560,495562-495573,495575-495583,495585-495594,495596-495628,495630-495638,495640-495651,495653-495660,495662-495753,495755-496259,496261-496262,496264-496269,496271-496275,496277-496301,496303-496316,496318-496383,496385-496413,496415-496495,496497-496625,496627-496636,496638-496640,496642-496647,496650-496657,496659-496660,496663-496664,496666-496677,496679-496681,496683-496730,496732-496750,496752,496754-496784,496786-496832,496834-496840,496842-496990,496992-496995,496997-497340,497343-497351,497353-497403,497405-497424,497426-497438,497440-497481,497483-497497,497499-497765,497767-497769,497771-497775,497777-497778,497780,497782-497783,497785,497787-497812,497814-497871,497873-497877,497879-498573,498575-498588,498590,498592,498594-498636,498638-498669,498671-498686,498688-498689,498691-498719,498721-498964,498966-498969,498971-498973,498975-498982,498985-499035,499037-499040,499042,499044-499048,499050-499082,499084-499086,499088-499164,499167-499169,499171-499355,499357-499370,499372-499373,499375-499391,499393,499395-499425,499428,499430-499445,499447-499455,499457-499460,499462-499465,499467,499469-499489,499491-499492,499494-499531,499533-499562,499566-499627,499629-499715,499717-499732,499734-499755,499758-499763,499765-499780,499782-499795,499797-499802,499804-499844,499846,499848-499850,499852-499863,499865-499873,499875-499974,499976-499978,499980-500263,500265-500283,500285-500309,500311-501000,501002,501012-501057,501059-501095,501097-501390,501392-501410,501413-501447,501449-501454,501456,501458-501464,501466-501471,501473-501803,501805-501913,501915-501916,501918-501919,501921-501944,501946-502171,502173-502177,502181,502183-502247,502250-502252,502254-502260,502262-502267,502270,502272,502274-502575,502577-502609,502611-502619,502621-502626,502628-502654,502656-503592,503594-503603,503605-503608,503610-503636,503638-503645,503647-503705,503707-503789,503791-504024,504026-504111,504113-504506,504508-504735,504737-504863,504865-504867,504869-504914,504916-505241,505243-505254,505257-505267,505269-505354,505356-505891,505893-505971,505973-506400,506402-506404,506407-506438,506440-506516,506518-506541,506543-506966,506968-506971,506973-507095,507097-507108,507111-507454,507456,507459-507471,507473-507556,507558,507560-507581,507585-507594,507597,507599-507608,507610-507728,507730-507893,507895-507937,507940-508234,508236-508350,508352-508365,508367-508380,508383,508386-508415,508417-508648,508650-508941,508943-509146,509148-509171,509173-509175,509179-509201,509203-509207,509209-509215,509217-509222,509224-509477,509480-509627,509629-509634,509636-509641,509643-509736,509738-509931,509933-510059,510061-510075,510077-510158,510161-510896,510898-510938,510940-511388,511390-511922,511924-512287,512289-512698,512702-512813,512815-512817,512819-513359,513361-513370,513372-514702,514704-514886,514888-514902,514904-515126,515129-515141,515143-515516,515518-515534,515536-515538,515540-515648,515650-515651,515653-516070,516072-516411,516413-516448,516450,516452-517637,517639-517647,517649-517659,517661-517663,517665-517677,517679-517682,517684-517744,517746-518085,518087-518175,518177-518558,518560-518568,518571-518666,518668,518670-518699,518701-518987,518990-518992,518994-519908,519910-519932,519934-520414,520416-520842,520844-520937,520939-521362,521364-521681,521683-521704,521706-521709,521711-521714,521716-521781,521783-521792,521794-522462,522464-522527,522529-522534,522536-522566,522568-522958,522960,522962-522966,522968-522976,522978-522980,522982-522988,522992-522993,522995-523244,523246-523746,523748-524049,524051-524738,524741-524742,524744-524762,524764,524766,524768-525486,525488-525530,525532,525534,525537-525552,525554-525765,525767-525776,525778-525784,525789-525803,525805-525816,525818-525828,525830-525861,525863-525866,525868-526090,526092-526112,526114-526116,526119-526121,526123-526149,526151-526153,526155-526156,526160-526165,526167-526186,526188-526193,526196-526197,526200-526665,526667-526682,526686-526690,526693,526695-526708,526710-526713,526715-526775,526777-526802,526804-526806,526808-527048,527051-527052,527054-527181,527183-527486,527488-527492,527494-527498,527500-527508,527510-527517,527519-527536,527538-527555,527559-527802,527804-527842,527844-527847,527849-527875,527877-527940,527942-527958,527960-527971,527973-528002,528004,528006-528423,528425-529232,529234-529245,529247-529296,529298-529634,529636-529658,529660-529665,529667-529668,529670-530033,530035-530036,530038-530040,530045-530046,530050-530051,530053-530431,530433-530436,530439-530440,530443,530445-530446,530448,530450-530682,530684,530687-530696,530698-530733,530735-530776,530778-530795,530799,530801-530811,530813-530818,530820-530837,530839-531436,531438-531455,531457,531459-531511,531514,531516,531519-531523,531525,531528-531858,531860-531864,531866-531907,531909-531916,531918-531936,531938-531988,531990-532001,532003-532371,532373-532465,532467-532727,532729-532765,532767-532785,532788-532790,532792-532793,532795-533064,533066-533074,533076,533080-533130,533132-533139,533142-533703,533705-533720,533722-533763,533766-533818,533820-533839,533841-533859,533862-534035,534037-534112,534114-534116,534118-534472,534474-534477,534479-534762,534764-534896,534898-534902,534904-535253,535255-535308,535310-535808,535810-535873,535875-536007,536009-536140,536142-536162,536165-536242,536244-536252,536254-536278,536280-536338,536340-536448,536450-536479,536481-536482,536484-536485,536487-536495,536497,536500-536505,536507-536561,536563-536570,536572,536574-536583,536586-536823,536825-537014,537016-537018,537020-537025,537027-537028,537030-537160,537162-537170,537172-537672,537674-537781,537783-537833,537836-537840,537842-537844,537846-537953,537955-538034,538036-538078,538080-538083,538085-538097,538099-538108,538110-538239,538241-538881,538883-538906,538908-538911,538913-538921,538923-539177,539179-539190,539192-539475,539477-539500,539502-539593,539595-539782,539784-539787,539789-540106,540108-540168,540170-540510,540512-541919,541921-544507,544509-544865,544867-545145,545147-547177,547179-547627 via svnmerge from
https://svn.apache.org/repos/asf/incubator/qpid/branches/M2 ........ r539470 | ritchiem | 2007-05-18 14:50:59 +0100 (Fri, 18 May 2007) | 1 line QPID-401 Integrated python tests with maven tested on windows CMD.exe and linux FC5 ........ r539481 | ritchiem | 2007-05-18 15:30:06 +0100 (Fri, 18 May 2007) | 1 line QPID-401 Update to allow -Dskip-python-tests to disable python checking ........ r539484 | ritchiem | 2007-05-18 15:35:13 +0100 (Fri, 18 May 2007) | 1 line QPID-401 Update to allow -Dskip-python-tests to disable python checking ........ r541247 | rgodfrey | 2007-05-24 10:57:00 +0100 (Thu, 24 May 2007) | 1 line QPID-482 : Small performance tweaks ........ r542484 | rupertlssmith | 2007-05-29 11:52:29 +0100 (Tue, 29 May 2007) | 1 line Can now pass property to skip python tests, set in settings.xml ........ r542789 | ritchiem | 2007-05-30 11:09:28 +0100 (Wed, 30 May 2007) | 1 line Update to ensure fastinstall profile skips the broker python tests. ........ r543496 | rupertlssmith | 2007-06-01 15:33:07 +0100 (Fri, 01 Jun 2007) | 1 line QPID-402: FailoverException falling through to client. All blocking operations now wrapped in failover support wrappers. ........ r544109 | ritchiem | 2007-06-04 10:47:53 +0100 (Mon, 04 Jun 2007) | 7 lines Addition of a sustained test client. This is currently setup for running a pub/sub test. The test allows for multiple clients to connect and participate in testing the broker throughput. A single producer continually sends messages to a topic which the clients then send batched results back about. The producer uses the timings in the reports to update the rate at which it sends messages. Ideally reaching a steady state where all messages produced are received by everyone within a specified time frame. ........ r544422 | ritchiem | 2007-06-05 09:50:54 +0100 (Tue, 05 Jun 2007) | 1 line Added documentation on how to run the sustained tests. ........ r546096 | rupertlssmith | 2007-06-11 12:23:08 +0100 (Mon, 11 Jun 2007) | 1 line Set up top dir location and path to parent pom. Needed in preparation for deploy and release plugins. ........ r546190 | rupertlssmith | 2007-06-11 17:43:57 +0100 (Mon, 11 Jun 2007) | 1 line Removed log4j dependency from client. Using slf4j instead, end-user to supply logging implementation as desired. Log4j used for tests. ........ r546441 | rupertlssmith | 2007-06-12 10:52:29 +0100 (Tue, 12 Jun 2007) | 1 line QPID-465, now throws UnsupportedOperationException when sending to a null queue in QueueSender. ........ r546458 | ritchiem | 2007-06-12 12:41:17 +0100 (Tue, 12 Jun 2007) | 1 line Added repository info for running mvn rat:check ........ r547627 | ritchiem | 2007-06-15 12:21:40 +0100 (Fri, 15 Jun 2007) | 1 line QPID-511 adjusted to use the ReadWriteThreadModel rather than setting editing the filterChain directly which could cause problems when using an InVM transport due to the way the InVM transport alters the filter chain during a connect call. ........ git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@547730 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src')
-rw-r--r--java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java9
-rw-r--r--java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java15
-rw-r--r--java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java4
-rw-r--r--java/common/src/main/java/org/apache/qpid/common/QpidProperties.java7
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java10
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java46
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java26
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java16
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java125
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java152
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java5
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java11
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java14
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java11
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/FieldTable.java187
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java23
-rw-r--r--java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java11
-rw-r--r--java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java4
-rw-r--r--java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java13
-rw-r--r--java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java94
-rw-r--r--java/common/src/main/java/org/apache/qpid/util/FileUtils.java2
-rw-r--r--java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java2
-rw-r--r--java/common/src/main/java/org/apache/qpid/util/PropertiesUtils.java7
-rw-r--r--java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java326
-rw-r--r--java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java19
25 files changed, 600 insertions, 539 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java b/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java
index e95e805e9f..b2ce3c1b32 100644
--- a/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java
+++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java
@@ -23,14 +23,17 @@ package org.apache.qpid;
import org.apache.qpid.protocol.AMQConstant;
/**
- * AMQConnectionClosedException indicates that an operation cannot be performed becauase a connection has been closed.
+ * AMQConnectionClosedException indicates that a connection has been closed.
+ *
+ * <p/>This exception is really used as an event, in order that the method handler that raises it creates an event
+ * which is propagated to the io handler, in order to notify it of the connection closure.
*
* <p/><table id="crc"><caption>CRC Card</caption>
* <tr><th> Responsibilities <th> Collaborations
- * <tr><td> Represents a failed operation on a closed conneciton.
+ * <tr><td> Represents a the closure of a connection.
* </table>
*
- * @todo Does this duplicate AMQConnectionException?
+ * @todo Should review where exceptions-as-events
*/
public class AMQConnectionClosedException extends AMQException
{
diff --git a/java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java b/java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java
index 883e13e5e6..a0574efa72 100644
--- a/java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java
+++ b/java/common/src/main/java/org/apache/qpid/AMQPInvalidClassException.java
@@ -14,13 +14,22 @@
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
+ * under the License.
+ *
*
- *
*/
package org.apache.qpid;
-
+/**
+ * AMQPInvalidClassException indicates an error when trying to store an illegally typed argument in a field table.
+ *
+ * <p/><table id="crc"><caption>CRC Card</caption>
+ * <tr><th> Responsibilities <th> Collaborations
+ * <tr><td> Represents illegal argument type for field table values.
+ * </table>
+ *
+ * @todo Could just re-use an exising exception like IllegalArgumentException or ClassCastException.
+ */
public class AMQPInvalidClassException extends RuntimeException
{
public AMQPInvalidClassException(String s)
diff --git a/java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java b/java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java
index 4e3a46eb90..fa890d0ebb 100644
--- a/java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java
+++ b/java/common/src/main/java/org/apache/qpid/codec/AMQCodecFactory.java
@@ -37,10 +37,10 @@ import org.apache.mina.filter.codec.ProtocolEncoder;
public class AMQCodecFactory implements ProtocolCodecFactory
{
/** Holds the protocol encoder. */
- private AMQEncoder _encoder = new AMQEncoder();
+ private final AMQEncoder _encoder = new AMQEncoder();
/** Holds the protocol decoder. */
- private AMQDecoder _frameDecoder;
+ private final AMQDecoder _frameDecoder;
/**
* Creates a new codec factory, specifiying whether it is expected that the first frame of data should be an
diff --git a/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java b/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java
index 5a357557ca..2c783aeaa4 100644
--- a/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java
+++ b/java/common/src/main/java/org/apache/qpid/common/QpidProperties.java
@@ -20,13 +20,14 @@
*/
package org.apache.qpid.common;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.Properties;
-import org.apache.log4j.Logger;
-
/**
* QpidProperties captures the project name, version number, and source code repository revision number from a properties
* file which is generated as part of the build process. Normally, the name and version number are pulled from the module
@@ -50,7 +51,7 @@ import org.apache.log4j.Logger;
public class QpidProperties
{
/** Used for debugging purposes. */
- private static final Logger _logger = Logger.getLogger(QpidProperties.class);
+ private static final Logger _logger = LoggerFactory.getLogger(QpidProperties.class);
/** The name of the version properties file to load from the class path. */
public static final String VERSION_RESOURCE = "qpidversion.properties";
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java
index 9155c4024f..903b5bfa7a 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlock.java
@@ -40,4 +40,14 @@ public abstract class AMQDataBlock implements EncodableAMQDataBlock
* @param buffer
*/
public abstract void writePayload(ByteBuffer buffer);
+
+ public ByteBuffer toByteBuffer()
+ {
+ final ByteBuffer buffer = ByteBuffer.allocate((int)getSize());
+
+ writePayload(buffer);
+ buffer.flip();
+ return buffer;
+ }
+
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
index 9f36448986..82ffc60802 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,12 +20,15 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+
import org.apache.qpid.protocol.AMQVersionAwareProtocolSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class AMQDataBlockDecoder
{
private static final String SESSION_METHOD_BODY_FACTORY = "QPID_SESSION_METHOD_BODY_FACTORY";
@@ -39,14 +42,10 @@ public class AMQDataBlockDecoder
_bodiesSupported[HeartbeatBody.TYPE] = new HeartbeatBodyFactory();
}
-
- Logger _logger = Logger.getLogger(AMQDataBlockDecoder.class);
-
-
+ Logger _logger = LoggerFactory.getLogger(AMQDataBlockDecoder.class);
public AMQDataBlockDecoder()
- {
- }
+ { }
public boolean decodable(IoSession session, ByteBuffer in) throws AMQFrameDecodingException
{
@@ -56,26 +55,24 @@ public class AMQDataBlockDecoder
{
return false;
}
+
in.skip(1 + 2);
final long bodySize = in.getUnsignedInt();
-
-
return (remainingAfterAttributes >= bodySize);
}
-
protected Object createAndPopulateFrame(IoSession session, ByteBuffer in)
- throws AMQFrameDecodingException, AMQProtocolVersionException
+ throws AMQFrameDecodingException, AMQProtocolVersionException
{
final byte type = in.get();
BodyFactory bodyFactory;
- if(type == AMQMethodBody.TYPE)
+ if (type == AMQMethodBody.TYPE)
{
bodyFactory = (BodyFactory) session.getAttribute(SESSION_METHOD_BODY_FACTORY);
- if(bodyFactory == null)
+ if (bodyFactory == null)
{
AMQVersionAwareProtocolSession protocolSession = (AMQVersionAwareProtocolSession) session.getAttachment();
bodyFactory = new AMQMethodBodyFactory(protocolSession);
@@ -89,10 +86,7 @@ public class AMQDataBlockDecoder
bodyFactory = _bodiesSupported[type];
}
-
-
-
- if(bodyFactory == null)
+ if (bodyFactory == null)
{
throw new AMQFrameDecodingException(null, "Unsupported frame type: " + type, null);
}
@@ -101,25 +95,25 @@ public class AMQDataBlockDecoder
final long bodySize = in.getUnsignedInt();
// bodySize can be zero
- if (channel < 0 || bodySize < 0)
+ if ((channel < 0) || (bodySize < 0))
{
- throw new AMQFrameDecodingException(null, "Undecodable frame: type = " + type + " channel = " + channel +
- " bodySize = " + bodySize, null);
+ throw new AMQFrameDecodingException(null, "Undecodable frame: type = " + type + " channel = " + channel
+ + " bodySize = " + bodySize, null);
}
AMQFrame frame = new AMQFrame(in, channel, bodySize, bodyFactory);
-
byte marker = in.get();
if ((marker & 0xFF) != 0xCE)
{
- throw new AMQFrameDecodingException(null, "End of frame marker not found. Read " + marker + " length=" + bodySize + " type=" + type, null);
+ throw new AMQFrameDecodingException(null, "End of frame marker not found. Read " + marker + " length=" + bodySize
+ + " type=" + type, null);
}
+
return frame;
}
- public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out)
- throws Exception
+ public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception
{
out.write(createAndPopulateFrame(session, in));
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java
index aedea6dd89..05fd2bb480 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockEncoder.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,39 +20,37 @@
*/
package org.apache.qpid.framing;
-import java.util.Collections;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
import org.apache.mina.common.IoSession;
import org.apache.mina.filter.codec.ProtocolEncoderOutput;
import org.apache.mina.filter.codec.demux.MessageEncoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Collections;
+import java.util.Set;
+
public final class AMQDataBlockEncoder implements MessageEncoder
{
- private static final Logger _logger = Logger.getLogger(AMQDataBlockEncoder.class);
+ private static final Logger _logger = LoggerFactory.getLogger(AMQDataBlockEncoder.class);
private final Set _messageTypes = Collections.singleton(EncodableAMQDataBlock.class);
public AMQDataBlockEncoder()
- {
- }
+ { }
public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception
{
final AMQDataBlock frame = (AMQDataBlock) message;
- int frameSize = (int)frame.getSize();
- final ByteBuffer buffer = ByteBuffer.allocate(frameSize);
- //buffer.setAutoExpand(true);
- frame.writePayload(buffer);
+
+ final ByteBuffer buffer = frame.toByteBuffer();
if (_logger.isDebugEnabled())
{
_logger.debug("Encoded frame byte-buffer is '" + EncodingUtils.convertToHexString(buffer) + "'");
}
- buffer.flip();
out.write(buffer);
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
index 5293c00379..cf85bdab31 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,16 +20,19 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
+
import org.apache.qpid.protocol.AMQVersionAwareProtocolSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class AMQMethodBodyFactory implements BodyFactory
{
- private static final Logger _log = Logger.getLogger(AMQMethodBodyFactory.class);
+ private static final Logger _log = LoggerFactory.getLogger(AMQMethodBodyFactory.class);
private final AMQVersionAwareProtocolSession _protocolSession;
-
+
public AMQMethodBodyFactory(AMQVersionAwareProtocolSession protocolSession)
{
_protocolSession = protocolSession;
@@ -37,6 +40,7 @@ public class AMQMethodBodyFactory implements BodyFactory
public AMQBody createBody(ByteBuffer in, long bodySize) throws AMQFrameDecodingException
{
- return _protocolSession.getRegistry().get((short)in.getUnsignedShort(), (short)in.getUnsignedShort(), in, bodySize);
+ return _protocolSession.getRegistry().get((short) in.getUnsignedShort(), (short) in.getUnsignedShort(), in,
+ bodySize);
}
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
index 3f6ef73781..ee7abd55c0 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
@@ -1,8 +1,10 @@
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* A short string is a representation of an AMQ Short String
* Short strings differ from the Java String class by being limited to on ASCII characters (0-127)
@@ -11,11 +13,11 @@ import org.apache.mina.common.ByteBuffer;
*/
public final class AMQShortString implements CharSequence, Comparable<AMQShortString>
{
- private static final Logger _logger = Logger.getLogger(AMQShortString.class);
+ private static final Logger _logger = LoggerFactory.getLogger(AMQShortString.class);
private final ByteBuffer _data;
private int _hashCode;
- final int _length;
+ private final int _length;
private static final char[] EMPTY_CHAR_ARRAY = new char[0];
public AMQShortString(byte[] data)
@@ -25,22 +27,25 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
_length = data.length;
}
-
public AMQShortString(String data)
{
- this(data == null ? EMPTY_CHAR_ARRAY : data.toCharArray());
- if(data != null) _hashCode = data.hashCode();
+ this((data == null) ? EMPTY_CHAR_ARRAY : data.toCharArray());
+ if (data != null)
+ {
+ _hashCode = data.hashCode();
+ }
}
public AMQShortString(char[] data)
{
- if(data == null)
+ if (data == null)
{
throw new NullPointerException("Cannot create AMQShortString with null char[]");
}
+
final int length = data.length;
final byte[] stringBytes = new byte[length];
- for(int i = 0; i < length; i++)
+ for (int i = 0; i < length; i++)
{
stringBytes[i] = (byte) (0xFF & data[i]);
}
@@ -56,12 +61,13 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
final int length = charSequence.length();
final byte[] stringBytes = new byte[length];
int hash = 0;
- for(int i = 0 ; i < length; i++)
+ for (int i = 0; i < length; i++)
{
stringBytes[i] = ((byte) (0xFF & charSequence.charAt(i)));
hash = (31 * hash) + stringBytes[i];
}
+
_data = ByteBuffer.wrap(stringBytes);
_data.rewind();
_hashCode = hash;
@@ -73,9 +79,8 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
{
_data = data;
_length = data.limit();
-
- }
+ }
/**
* Get the length of the short string
@@ -95,17 +100,18 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
public CharSequence subSequence(int start, int end)
{
- return new CharSubSequence(start,end);
+ return new CharSubSequence(start, end);
}
public int writeToByteArray(byte[] encoding, int pos)
{
final int size = length();
encoding[pos++] = (byte) length();
- for(int i = 0; i < size; i++)
+ for (int i = 0; i < size; i++)
{
encoding[pos++] = _data.get(i);
}
+
return pos;
}
@@ -113,12 +119,12 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
{
final byte len = byteEncodedDestination[pos];
- if(len == 0)
+ if (len == 0)
{
return null;
}
- ByteBuffer data = ByteBuffer.wrap(byteEncodedDestination,pos+1,len).slice();
-
+
+ ByteBuffer data = ByteBuffer.wrap(byteEncodedDestination, pos + 1, len).slice();
return new AMQShortString(data);
}
@@ -141,11 +147,10 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
}
}
-
public byte[] getBytes()
{
- if(_data.buf().hasArray() && _data.arrayOffset() == 0)
+ if (_data.buf().hasArray() && (_data.arrayOffset() == 0))
{
return _data.array();
}
@@ -157,30 +162,27 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
buf.rewind();
buf.get(b);
-
return b;
}
-
}
public void writeToBuffer(ByteBuffer buffer)
{
-
final int size = length();
if (size != 0)
{
- buffer.put((byte)size);
- if(_data.buf().hasArray())
+ buffer.put((byte) size);
+ if (_data.buf().hasArray())
{
- buffer.put(_data.array(),_data.arrayOffset(),length());
+ buffer.put(_data.array(), _data.arrayOffset(), length());
}
else
{
- for(int i = 0; i < size; i++)
+ for (int i = 0; i < size; i++)
{
buffer.put(_data.get(i));
@@ -200,14 +202,12 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
private final int _offset;
private final int _end;
-
public CharSubSequence(final int offset, final int end)
{
_offset = offset;
_end = end;
}
-
public int length()
{
return _end - _offset;
@@ -220,29 +220,23 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
public CharSequence subSequence(int start, int end)
{
- return new CharSubSequence(start+_offset,end+_offset);
+ return new CharSubSequence(start + _offset, end + _offset);
}
}
-
-
public char[] asChars()
{
final int size = length();
final char[] chars = new char[size];
-
-
-
- for(int i = 0 ; i < size; i++)
+ for (int i = 0; i < size; i++)
{
chars[i] = (char) _data.get(i);
}
+
return chars;
}
-
-
public String asString()
{
return new String(asChars());
@@ -250,66 +244,69 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
public boolean equals(Object o)
{
- if(o == null)
+ if (o == null)
{
return false;
}
- if(o == this)
+
+ if (o == this)
{
return true;
}
- if(o instanceof AMQShortString)
+
+ if (o instanceof AMQShortString)
{
final AMQShortString otherString = (AMQShortString) o;
- if((_hashCode != 0) && (otherString._hashCode != 0) && (_hashCode != otherString._hashCode))
+ if ((_hashCode != 0) && (otherString._hashCode != 0) && (_hashCode != otherString._hashCode))
{
return false;
}
return _data.equals(otherString._data);
-
-
-
}
- return (o instanceof CharSequence) && equals((CharSequence)o);
+
+ return (o instanceof CharSequence) && equals((CharSequence) o);
}
public boolean equals(CharSequence s)
{
- if(s == null)
+ if (s == null)
{
return false;
}
- if(s.length() != length())
+
+ if (s.length() != length())
{
return false;
}
- for(int i = 0; i < length(); i++)
+
+ for (int i = 0; i < length(); i++)
{
- if(charAt(i)!= s.charAt(i))
+ if (charAt(i) != s.charAt(i))
{
return false;
}
}
+
return true;
}
public int hashCode()
{
int hash = _hashCode;
- if(hash == 0)
+ if (hash == 0)
{
final int size = length();
-
- for(int i = 0; i < size; i++)
+ for (int i = 0; i < size; i++)
{
hash = (31 * hash) + _data.get(i);
}
+
_hashCode = hash;
}
@@ -320,38 +317,42 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
{
_hashCode = 0;
}
-
+
public String toString()
{
return asString();
}
-
public int compareTo(AMQShortString name)
{
- if(name == null)
+ if (name == null)
{
return 1;
}
else
{
- if(name.length() < length())
+ if (name.length() < length())
{
- return - name.compareTo(this);
+ return -name.compareTo(this);
}
-
-
- for(int i = 0; i < length() ; i++)
+ for (int i = 0; i < length(); i++)
{
final byte d = _data.get(i);
final byte n = name._data.get(i);
- if(d < n) return -1;
- if(d > n) return 1;
+ if (d < n)
+ {
+ return -1;
+ }
+
+ if (d > n)
+ {
+ return 1;
+ }
}
- return length() == name.length() ? 0 : -1;
+ return (length() == name.length()) ? 0 : -1;
}
}
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java b/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
index 4424fc1def..61f2f891e5 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/BasicContentHeaderProperties.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,13 +20,14 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class BasicContentHeaderProperties implements CommonContentHeaderProperties
{
- private static final Logger _logger = Logger.getLogger(BasicContentHeaderProperties.class);
+ private static final Logger _logger = LoggerFactory.getLogger(BasicContentHeaderProperties.class);
private static final AMQShortString ZERO_STRING = null;
@@ -96,8 +97,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
private static final int CLUSTER_ID_MASK = 1 << 2;
public BasicContentHeaderProperties()
- {
- }
+ { }
public int getPropertyListSize()
{
@@ -113,30 +113,37 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
size += EncodingUtils.encodedShortStringLength(_contentType);
}
+
if ((_propertyFlags & ENCONDING_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_encoding);
}
+
if ((_propertyFlags & HEADERS_MASK) > 0)
{
size += EncodingUtils.encodedFieldTableLength(_headers);
}
+
if ((_propertyFlags & DELIVERY_MODE_MASK) > 0)
{
size += 1;
}
+
if ((_propertyFlags & PROPRITY_MASK) > 0)
{
size += 1;
}
+
if ((_propertyFlags & CORRELATION_ID_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_correlationId);
}
+
if ((_propertyFlags & REPLY_TO_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_replyTo);
}
+
if ((_propertyFlags & EXPIRATION_MASK) > 0)
{
if (_expiration == 0L)
@@ -148,40 +155,48 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
size += EncodingUtils.encodedShortStringLength(_expiration);
}
}
+
if ((_propertyFlags & MESSAGE_ID_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_messageId);
}
+
if ((_propertyFlags & TIMESTAMP_MASK) > 0)
{
size += 8;
}
+
if ((_propertyFlags & TYPE_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_type);
}
+
if ((_propertyFlags & USER_ID_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_userId);
}
+
if ((_propertyFlags & APPLICATION_ID_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_appId);
}
+
if ((_propertyFlags & CLUSTER_ID_MASK) > 0)
{
size += EncodingUtils.encodedShortStringLength(_clusterId);
}
+
return size;
}
}
private void clearEncodedForm()
{
- if (!_decoded && _encodedForm != null)
+ if (!_decoded && (_encodedForm != null))
{
- //decode();
+ // decode();
}
+
_encodedForm = null;
}
@@ -208,30 +223,37 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
EncodingUtils.writeShortStringBytes(buffer, _contentType);
}
+
if ((_propertyFlags & ENCONDING_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _encoding);
}
+
if ((_propertyFlags & HEADERS_MASK) != 0)
{
EncodingUtils.writeFieldTableBytes(buffer, _headers);
}
+
if ((_propertyFlags & DELIVERY_MODE_MASK) != 0)
{
buffer.put(_deliveryMode);
}
+
if ((_propertyFlags & PROPRITY_MASK) != 0)
{
buffer.put(_priority);
}
+
if ((_propertyFlags & CORRELATION_ID_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _correlationId);
}
+
if ((_propertyFlags & REPLY_TO_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _replyTo);
}
+
if ((_propertyFlags & EXPIRATION_MASK) != 0)
{
if (_expiration == 0L)
@@ -243,26 +265,32 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
EncodingUtils.writeShortStringBytes(buffer, String.valueOf(_expiration));
}
}
+
if ((_propertyFlags & MESSAGE_ID_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _messageId);
}
+
if ((_propertyFlags & TIMESTAMP_MASK) != 0)
{
EncodingUtils.writeTimestamp(buffer, _timestamp);
}
+
if ((_propertyFlags & TYPE_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _type);
}
+
if ((_propertyFlags & USER_ID_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _userId);
}
+
if ((_propertyFlags & APPLICATION_ID_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _appId);
}
+
if ((_propertyFlags & CLUSTER_ID_MASK) != 0)
{
EncodingUtils.writeShortStringBytes(buffer, _clusterId);
@@ -270,8 +298,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
}
}
- public void populatePropertiesFromBuffer(ByteBuffer buffer, int propertyFlags, int size)
- throws AMQFrameDecodingException
+ public void populatePropertiesFromBuffer(ByteBuffer buffer, int propertyFlags, int size) throws AMQFrameDecodingException
{
_propertyFlags = propertyFlags;
@@ -279,6 +306,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
_logger.debug("Property flags: " + _propertyFlags);
}
+
decode(buffer);
/*_encodedForm = new byte[size];
buffer.get(_encodedForm, 0, size);
@@ -289,7 +317,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
private void decode(ByteBuffer buffer)
{
- //ByteBuffer buffer = ByteBuffer.wrap(_encodedForm);
+ // ByteBuffer buffer = ByteBuffer.wrap(_encodedForm);
int pos = buffer.position();
try
{
@@ -297,54 +325,67 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
_contentType = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & ENCONDING_MASK) != 0)
{
_encoding = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & HEADERS_MASK) != 0)
{
_headers = EncodingUtils.readFieldTable(buffer);
}
+
if ((_propertyFlags & DELIVERY_MODE_MASK) != 0)
{
_deliveryMode = buffer.get();
}
+
if ((_propertyFlags & PROPRITY_MASK) != 0)
{
_priority = buffer.get();
}
+
if ((_propertyFlags & CORRELATION_ID_MASK) != 0)
{
_correlationId = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & REPLY_TO_MASK) != 0)
{
_replyTo = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & EXPIRATION_MASK) != 0)
{
_expiration = EncodingUtils.readLongAsShortString(buffer);
}
+
if ((_propertyFlags & MESSAGE_ID_MASK) != 0)
{
_messageId = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & TIMESTAMP_MASK) != 0)
{
_timestamp = EncodingUtils.readTimestamp(buffer);
}
+
if ((_propertyFlags & TYPE_MASK) != 0)
{
_type = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & USER_ID_MASK) != 0)
{
_userId = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & APPLICATION_ID_MASK) != 0)
{
_appId = EncodingUtils.readAMQShortString(buffer);
}
+
if ((_propertyFlags & CLUSTER_ID_MASK) != 0)
{
_clusterId = EncodingUtils.readAMQShortString(buffer);
@@ -367,7 +408,6 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_decoded = true;
}
-
private void decodeUpToHeaders()
{
ByteBuffer buffer = ByteBuffer.wrap(_encodedForm);
@@ -378,16 +418,19 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
byte length = buffer.get();
buffer.skip(length);
}
+
if ((_propertyFlags & ENCONDING_MASK) != 0)
{
byte length = buffer.get();
buffer.skip(length);
}
+
if ((_propertyFlags & HEADERS_MASK) != 0)
{
_headers = EncodingUtils.readFieldTable(buffer);
}
+
_decodedHeaders = true;
}
catch (AMQFrameDecodingException e)
@@ -412,7 +455,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
if (!_decoded)
{
- //decode();
+ // decode();
}
}
@@ -435,14 +478,15 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public AMQShortString getContentType()
{
decodeContentTypeIfNecessary();
+
return _contentType;
}
-
public String getContentTypeAsString()
{
decodeContentTypeIfNecessary();
- return _contentType == null ? null : _contentType.toString();
+
+ return (_contentType == null) ? null : _contentType.toString();
}
public void setContentType(AMQShortString contentType)
@@ -452,21 +496,21 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_contentType = contentType;
}
-
public void setContentType(String contentType)
{
- setContentType(contentType == null ? null : new AMQShortString(contentType));
+ setContentType((contentType == null) ? null : new AMQShortString(contentType));
}
public String getEncodingAsString()
{
- return getEncoding() == null ? null : getEncoding().toString();
+ return (getEncoding() == null) ? null : getEncoding().toString();
}
public AMQShortString getEncoding()
{
decodeIfNecessary();
+
return _encoding;
}
@@ -474,7 +518,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
{
clearEncodedForm();
_propertyFlags |= ENCONDING_MASK;
- _encoding = encoding == null ? null : new AMQShortString(encoding);
+ _encoding = (encoding == null) ? null : new AMQShortString(encoding);
}
public void setEncoding(AMQShortString encoding)
@@ -484,7 +528,6 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_encoding = encoding;
}
-
public FieldTable getHeaders()
{
decodeHeadersIfNecessary();
@@ -504,10 +547,10 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_headers = headers;
}
-
public byte getDeliveryMode()
{
decodeIfNecessary();
+
return _deliveryMode;
}
@@ -521,6 +564,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public byte getPriority()
{
decodeIfNecessary();
+
return _priority;
}
@@ -534,18 +578,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public AMQShortString getCorrelationId()
{
decodeIfNecessary();
+
return _correlationId;
}
public String getCorrelationIdAsString()
{
decodeIfNecessary();
- return _correlationId == null ? null : _correlationId.toString();
+
+ return (_correlationId == null) ? null : _correlationId.toString();
}
public void setCorrelationId(String correlationId)
{
- setCorrelationId(correlationId == null ? null : new AMQShortString(correlationId));
+ setCorrelationId((correlationId == null) ? null : new AMQShortString(correlationId));
}
public void setCorrelationId(AMQShortString correlationId)
@@ -558,19 +604,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String getReplyToAsString()
{
decodeIfNecessary();
- return _replyTo == null ? null : _replyTo.toString();
+
+ return (_replyTo == null) ? null : _replyTo.toString();
}
public AMQShortString getReplyTo()
{
decodeIfNecessary();
+
return _replyTo;
}
-
public void setReplyTo(String replyTo)
{
- setReplyTo(replyTo == null ? null : new AMQShortString(replyTo));
+ setReplyTo((replyTo == null) ? null : new AMQShortString(replyTo));
}
public void setReplyTo(AMQShortString replyTo)
@@ -584,6 +631,7 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public long getExpiration()
{
decodeIfNecessary();
+
return _expiration;
}
@@ -594,24 +642,25 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_expiration = expiration;
}
-
public AMQShortString getMessageId()
{
decodeIfNecessary();
+
return _messageId;
}
public String getMessageIdAsString()
{
decodeIfNecessary();
- return _messageId == null ? null : _messageId.toString();
+
+ return (_messageId == null) ? null : _messageId.toString();
}
public void setMessageId(String messageId)
{
clearEncodedForm();
_propertyFlags |= MESSAGE_ID_MASK;
- _messageId = messageId == null ? null : new AMQShortString(messageId);
+ _messageId = (messageId == null) ? null : new AMQShortString(messageId);
}
public void setMessageId(AMQShortString messageId)
@@ -621,10 +670,10 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
_messageId = messageId;
}
-
public long getTimestamp()
{
decodeIfNecessary();
+
return _timestamp;
}
@@ -638,20 +687,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String getTypeAsString()
{
decodeIfNecessary();
- return _type == null ? null : _type.toString();
- }
+ return (_type == null) ? null : _type.toString();
+ }
public AMQShortString getType()
{
decodeIfNecessary();
+
return _type;
}
-
public void setType(String type)
{
- setType(type == null ? null : new AMQShortString(type));
+ setType((type == null) ? null : new AMQShortString(type));
}
public void setType(AMQShortString type)
@@ -664,18 +713,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String getUserIdAsString()
{
decodeIfNecessary();
- return _userId == null ? null : _userId.toString();
+
+ return (_userId == null) ? null : _userId.toString();
}
public AMQShortString getUserId()
{
decodeIfNecessary();
+
return _userId;
}
public void setUserId(String userId)
{
- setUserId(userId == null ? null : new AMQShortString(userId));
+ setUserId((userId == null) ? null : new AMQShortString(userId));
}
public void setUserId(AMQShortString userId)
@@ -688,18 +739,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String getAppIdAsString()
{
decodeIfNecessary();
- return _appId == null ? null : _appId.toString();
+
+ return (_appId == null) ? null : _appId.toString();
}
public AMQShortString getAppId()
{
decodeIfNecessary();
+
return _appId;
}
public void setAppId(String appId)
{
- setAppId(appId == null ? null : new AMQShortString(appId));
+ setAppId((appId == null) ? null : new AMQShortString(appId));
}
public void setAppId(AMQShortString appId)
@@ -712,18 +765,20 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String getClusterIdAsString()
{
decodeIfNecessary();
- return _clusterId == null ? null : _clusterId.toString();
+
+ return (_clusterId == null) ? null : _clusterId.toString();
}
public AMQShortString getClusterId()
{
decodeIfNecessary();
+
return _clusterId;
}
public void setClusterId(String clusterId)
{
- setClusterId(clusterId == null ? null : new AMQShortString(clusterId));
+ setClusterId((clusterId == null) ? null : new AMQShortString(clusterId));
}
public void setClusterId(AMQShortString clusterId)
@@ -735,19 +790,10 @@ public class BasicContentHeaderProperties implements CommonContentHeaderProperti
public String toString()
{
- return "reply-to = " + _replyTo +
- ",propertyFlags = " + _propertyFlags +
- ",ApplicationID = " + _appId +
- ",ClusterID = " + _clusterId +
- ",UserId = " + _userId +
- ",JMSMessageID = " + _messageId +
- ",JMSCorrelationID = " + _correlationId +
- ",JMSDeliveryMode = " + _deliveryMode +
- ",JMSExpiration = " + _expiration +
- ",JMSPriority = " + _priority +
- ",JMSTimestamp = " + _timestamp +
- ",JMSType = " + _type;
+ return "reply-to = " + _replyTo + ",propertyFlags = " + _propertyFlags + ",ApplicationID = " + _appId
+ + ",ClusterID = " + _clusterId + ",UserId = " + _userId + ",JMSMessageID = " + _messageId
+ + ",JMSCorrelationID = " + _correlationId + ",JMSDeliveryMode = " + _deliveryMode + ",JMSExpiration = "
+ + _expiration + ",JMSPriority = " + _priority + ",JMSTimestamp = " + _timestamp + ",JMSType = " + _type;
}
-
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java b/java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java
index 1641cbf4e8..66c5e19633 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/CommonContentHeaderProperties.java
@@ -1,12 +1,7 @@
package org.apache.qpid.framing;
-import org.apache.mina.common.ByteBuffer;
-
-import org.apache.log4j.Logger;
-
public interface CommonContentHeaderProperties extends ContentHeaderProperties
{
-
AMQShortString getContentType();
void setContentType(AMQShortString contentType);
diff --git a/java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java b/java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java
index 5636229d53..c42995d148 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/ContentBodyFactory.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,12 +20,14 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class ContentBodyFactory implements BodyFactory
{
- private static final Logger _log = Logger.getLogger(AMQMethodBodyFactory.class);
+ private static final Logger _log = LoggerFactory.getLogger(AMQMethodBodyFactory.class);
private static final ContentBodyFactory _instance = new ContentBodyFactory();
@@ -44,4 +46,3 @@ public class ContentBodyFactory implements BodyFactory
return new ContentBody(in, bodySize);
}
}
-
diff --git a/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java b/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java
index 818fc9cf0c..8d5e2f9fb4 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/ContentHeaderBodyFactory.java
@@ -7,9 +7,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -20,12 +20,14 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class ContentHeaderBodyFactory implements BodyFactory
{
- private static final Logger _log = Logger.getLogger(AMQMethodBodyFactory.class);
+ private static final Logger _log = LoggerFactory.getLogger(AMQMethodBodyFactory.class);
private static final ContentHeaderBodyFactory _instance = new ContentHeaderBodyFactory();
@@ -43,8 +45,6 @@ public class ContentHeaderBodyFactory implements BodyFactory
{
// all content headers are the same - it is only the properties that differ.
// the content header body further delegates construction of properties
- return new ContentHeaderBody(in,bodySize);
+ return new ContentHeaderBody(in, bodySize);
}
-
-
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java
index 62fefdc2fc..ccba8bd41e 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/EncodingUtils.java
@@ -20,15 +20,16 @@
*/
package org.apache.qpid.framing;
-import java.nio.charset.Charset;
+import org.apache.mina.common.ByteBuffer;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import org.apache.mina.common.ByteBuffer;
+import java.nio.charset.Charset;
public class EncodingUtils
{
- private static final Logger _logger = Logger.getLogger(EncodingUtils.class);
+ private static final Logger _logger = LoggerFactory.getLogger(EncodingUtils.class);
private static final String STRING_ENCODING = "iso8859-15";
@@ -1024,6 +1025,4 @@ public class EncodingUtils
return l;
}
-
-
}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java b/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
index 631a3ae149..2fe96b722b 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/FieldTable.java
@@ -20,6 +20,14 @@
*/
package org.apache.qpid.framing;
+import org.apache.mina.common.ByteBuffer;
+
+import org.apache.qpid.AMQPInvalidClassException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.math.BigDecimal;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
@@ -27,16 +35,13 @@ import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
-import java.math.BigDecimal;
-import org.apache.log4j.Logger;
-import org.apache.mina.common.ByteBuffer;
-import org.apache.qpid.AMQPInvalidClassException;
-
-//extends FieldTable
+// extends FieldTable
public class FieldTable
{
- private static final Logger _logger = Logger.getLogger(FieldTable.class);
+ private static final Logger _logger = LoggerFactory.getLogger(FieldTable.class);
+ private static final String STRICT_AMQP = "STRICT_AMQP";
+ private final boolean _strictAMQP = Boolean.valueOf(System.getProperty(STRICT_AMQP, "false"));
private ByteBuffer _encodedForm;
private LinkedHashMap<AMQShortString, AMQTypedValue> _properties;
@@ -47,9 +52,9 @@ public class FieldTable
public FieldTable()
{
super();
-// _encodedForm = ByteBuffer.allocate(INITIAL_ENCODED_FORM_SIZE);
-// _encodedForm.setAutoExpand(true);
-// _encodedForm.limit(0);
+ // _encodedForm = ByteBuffer.allocate(INITIAL_ENCODED_FORM_SIZE);
+ // _encodedForm.setAutoExpand(true);
+ // _encodedForm.limit(0);
}
/**
@@ -69,7 +74,6 @@ public class FieldTable
buffer.skip((int) length);
}
-
private AMQTypedValue getProperty(AMQShortString string)
{
checkPropertyName(string);
@@ -112,7 +116,6 @@ public class FieldTable
}
}
-
private AMQTypedValue setProperty(AMQShortString key, AMQTypedValue val)
{
checkPropertyName(key);
@@ -126,7 +129,7 @@ public class FieldTable
return removeKey(key);
}
}
- else if (_encodedForm != null && val != null)
+ else if ((_encodedForm != null) && (val != null))
{
EncodingUtils.writeShortStringBytes(_encodedForm, key);
val.writeToBuffer(_encodedForm);
@@ -137,7 +140,6 @@ public class FieldTable
return null;
}
-
AMQTypedValue oldVal = _properties.put(key, val);
if (oldVal != null)
{
@@ -147,6 +149,7 @@ public class FieldTable
{
_encodedSize += EncodingUtils.encodedShortStringLength(key) + 1;
}
+
_encodedSize += val.getEncodingSize();
return oldVal;
@@ -158,7 +161,7 @@ public class FieldTable
{
if (_properties == null)
{
- if (_encodedForm == null || _encodedSize == 0)
+ if ((_encodedForm == null) || (_encodedSize == 0))
{
_properties = new LinkedHashMap<AMQShortString, AMQTypedValue>();
}
@@ -171,7 +174,6 @@ public class FieldTable
}
}
-
public Boolean getBoolean(String string)
{
return getBoolean(new AMQShortString(string));
@@ -180,7 +182,7 @@ public class FieldTable
public Boolean getBoolean(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.BOOLEAN))
+ if ((value != null) && (value.getType() == AMQType.BOOLEAN))
{
return (Boolean) value.getValue();
}
@@ -190,7 +192,6 @@ public class FieldTable
}
}
-
public Byte getByte(String string)
{
return getByte(new AMQShortString(string));
@@ -199,7 +200,7 @@ public class FieldTable
public Byte getByte(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.BYTE))
+ if ((value != null) && (value.getType() == AMQType.BYTE))
{
return (Byte) value.getValue();
}
@@ -217,7 +218,7 @@ public class FieldTable
public Short getShort(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.SHORT))
+ if ((value != null) && (value.getType() == AMQType.SHORT))
{
return (Short) value.getValue();
}
@@ -235,7 +236,7 @@ public class FieldTable
public Integer getInteger(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.INT))
+ if ((value != null) && (value.getType() == AMQType.INT))
{
return (Integer) value.getValue();
}
@@ -253,7 +254,7 @@ public class FieldTable
public Long getLong(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.LONG))
+ if ((value != null) && (value.getType() == AMQType.LONG))
{
return (Long) value.getValue();
}
@@ -271,7 +272,7 @@ public class FieldTable
public Float getFloat(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.FLOAT))
+ if ((value != null) && (value.getType() == AMQType.FLOAT))
{
return (Float) value.getValue();
}
@@ -289,7 +290,7 @@ public class FieldTable
public Double getDouble(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.DOUBLE))
+ if ((value != null) && (value.getType() == AMQType.DOUBLE))
{
return (Double) value.getValue();
}
@@ -307,12 +308,10 @@ public class FieldTable
public String getString(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if ((value != null) && ((value.getType() == AMQType.WIDE_STRING) ||
- (value.getType() == AMQType.ASCII_STRING)))
+ if ((value != null) && ((value.getType() == AMQType.WIDE_STRING) || (value.getType() == AMQType.ASCII_STRING)))
{
return (String) value.getValue();
}
-
else if ((value != null) && (value.getValue() != null) && !(value.getValue() instanceof byte[]))
{
return String.valueOf(value.getValue());
@@ -332,7 +331,7 @@ public class FieldTable
public Character getCharacter(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.ASCII_CHARACTER))
+ if ((value != null) && (value.getType() == AMQType.ASCII_CHARACTER))
{
return (Character) value.getValue();
}
@@ -350,7 +349,7 @@ public class FieldTable
public byte[] getBytes(AMQShortString string)
{
AMQTypedValue value = getProperty(string);
- if (value != null && (value.getType() == AMQType.BINARY))
+ if ((value != null) && (value.getType() == AMQType.BINARY))
{
return (byte[]) value.getValue();
}
@@ -382,7 +381,7 @@ public class FieldTable
public Long getTimestamp(AMQShortString name)
{
AMQTypedValue value = getProperty(name);
- if ((value != null) && ((value.getType() == AMQType.TIMESTAMP)))
+ if ((value != null) && (value.getType() == AMQType.TIMESTAMP))
{
return (Long) value.getValue();
}
@@ -395,7 +394,7 @@ public class FieldTable
public BigDecimal getDecimal(AMQShortString propertyName)
{
AMQTypedValue value = getProperty(propertyName);
- if ((value != null) && ((value.getType() == AMQType.DECIMAL)))
+ if ((value != null) && (value.getType() == AMQType.DECIMAL))
{
return (BigDecimal) value.getValue();
}
@@ -405,76 +404,73 @@ public class FieldTable
}
}
-
// ************ Setters
- public Object setBoolean(String string, boolean b)
+ public Object setBoolean(String string, Boolean b)
{
return setBoolean(new AMQShortString(string), b);
}
- public Object setBoolean(AMQShortString string, boolean b)
+ public Object setBoolean(AMQShortString string, Boolean b)
{
return setProperty(string, AMQType.BOOLEAN.asTypedValue(b));
}
- public Object setByte(String string, byte b)
+ public Object setByte(String string, Byte b)
{
return setByte(new AMQShortString(string), b);
}
- public Object setByte(AMQShortString string, byte b)
+ public Object setByte(AMQShortString string, Byte b)
{
return setProperty(string, AMQType.BYTE.asTypedValue(b));
}
- public Object setShort(String string, short i)
+ public Object setShort(String string, Short i)
{
return setShort(new AMQShortString(string), i);
}
- public Object setShort(AMQShortString string, short i)
+ public Object setShort(AMQShortString string, Short i)
{
return setProperty(string, AMQType.SHORT.asTypedValue(i));
}
-
- public Object setInteger(String string, int i)
+ public Object setInteger(String string, Integer i)
{
return setInteger(new AMQShortString(string), i);
}
- public Object setInteger(AMQShortString string, int i)
+ public Object setInteger(AMQShortString string, Integer i)
{
return setProperty(string, AMQType.INT.asTypedValue(i));
}
-
- public Object setLong(String string, long l)
+ public Object setLong(String string, Long l)
{
return setLong(new AMQShortString(string), l);
}
- public Object setLong(AMQShortString string, long l)
+ public Object setLong(AMQShortString string, Long l)
{
return setProperty(string, AMQType.LONG.asTypedValue(l));
}
- public Object setFloat(String string, float f)
+ public Object setFloat(String string, Float f)
{
return setFloat(new AMQShortString(string), f);
}
- public Object setFloat(AMQShortString string, float v)
+ public Object setFloat(AMQShortString string, Float v)
{
return setProperty(string, AMQType.FLOAT.asTypedValue(v));
}
- public Object setDouble(String string, double d)
+ public Object setDouble(String string, Double d)
{
return setDouble(new AMQShortString(string), d);
}
- public Object setDouble(AMQShortString string, double v)
+ public Object setDouble(AMQShortString string, Double v)
{
return setProperty(string, AMQType.DOUBLE.asTypedValue(v));
}
@@ -537,6 +533,7 @@ public class FieldTable
{
byte[] newBytes = new byte[length];
System.arraycopy(bytes, start, newBytes, 0, length);
+
return setBytes(string, bytes);
}
@@ -560,7 +557,7 @@ public class FieldTable
if (decimal.scale() > Byte.MAX_VALUE)
{
throw new UnsupportedOperationException("AMQP doesnot support decimal scales larger than " + Byte.MAX_VALUE);
- }
+ }
return setProperty(string, AMQType.DECIMAL.asTypedValue(decimal));
}
@@ -619,6 +616,7 @@ public class FieldTable
public boolean isNullStringValue(String name)
{
AMQTypedValue value = getProperty(new AMQShortString(name));
+
return (value != null) && (value.getType() == AMQType.VOID);
}
@@ -643,6 +641,7 @@ public class FieldTable
{
checkPropertyName(propertyName);
initMapIfNecessary();
+
return _properties.containsKey(propertyName);
}
@@ -654,6 +653,7 @@ public class FieldTable
public String toString()
{
initMapIfNecessary();
+
return _properties.toString();
}
@@ -668,20 +668,23 @@ public class FieldTable
throw new IllegalArgumentException("Property name must not be the empty string");
}
- checkIdentiferFormat(propertyName);
+ if (_strictAMQP)
+ {
+ checkIdentiferFormat(propertyName);
+ }
}
protected static void checkIdentiferFormat(AMQShortString propertyName)
{
-// AMQP Spec: 4.2.5.5 Field Tables
-// Guidelines for implementers:
-// * Field names MUST start with a letter, '$' or '#' and may continue with
-// letters, '$' or '#', digits, or underlines, to a maximum length of 128
-// characters.
-// * The server SHOULD validate field names and upon receiving an invalid
-// field name, it SHOULD signal a connection exception with reply code
-// 503 (syntax error). Conformance test: amq_wlp_table_01.
-// * A peer MUST handle duplicate fields by using only the first instance.
+ // AMQP Spec: 4.2.5.5 Field Tables
+ // Guidelines for implementers:
+ // * Field names MUST start with a letter, '$' or '#' and may continue with
+ // letters, '$' or '#', digits, or underlines, to a maximum length of 128
+ // characters.
+ // * The server SHOULD validate field names and upon receiving an invalid
+ // field name, it SHOULD signal a connection exception with reply code
+ // 503 (syntax error). Conformance test: amq_wlp_table_01.
+ // * A peer MUST handle duplicate fields by using only the first instance.
// AMQP length limit
if (propertyName.length() > 128)
@@ -690,12 +693,11 @@ public class FieldTable
}
// AMQ start character
- if (!(Character.isLetter(propertyName.charAt(0))
- || propertyName.charAt(0) == '$'
- || propertyName.charAt(0) == '#'
- || propertyName.charAt(0) == '_')) // Not official AMQP added for JMS.
+ if (!(Character.isLetter(propertyName.charAt(0)) || (propertyName.charAt(0) == '$')
+ || (propertyName.charAt(0) == '#') || (propertyName.charAt(0) == '_'))) // Not official AMQP added for JMS.
{
- throw new IllegalArgumentException("Identifier '" + propertyName + "' does not start with a valid AMQP start character");
+ throw new IllegalArgumentException("Identifier '" + propertyName
+ + "' does not start with a valid AMQP start character");
}
}
@@ -708,7 +710,7 @@ public class FieldTable
if (trace)
{
_logger.trace("FieldTable::writeToBuffer: Writing encoded length of " + getEncodedSize() + "...");
- _logger.trace(_properties);
+ _logger.trace(_properties.toString());
}
EncodingUtils.writeUnsignedInteger(buffer, getEncodedSize());
@@ -727,6 +729,7 @@ public class FieldTable
buffer.flip();
buffer.get(result);
buffer.release();
+
return result;
}
@@ -749,6 +752,7 @@ public class FieldTable
}
}
+
_encodedSize = encodedSize;
}
@@ -760,7 +764,6 @@ public class FieldTable
recalculateEncodedSize();
}
-
public static interface FieldTableElementProcessor
{
public boolean processElement(String propertyName, AMQTypedValue value);
@@ -782,15 +785,15 @@ public class FieldTable
}
}
}
- return processor.getResult();
+ return processor.getResult();
}
-
public int size()
{
initMapIfNecessary();
+
return _properties.size();
}
@@ -803,6 +806,7 @@ public class FieldTable
public boolean containsKey(AMQShortString key)
{
initMapIfNecessary();
+
return _properties.containsKey(key);
}
@@ -819,23 +823,21 @@ public class FieldTable
{
keys.add(key.toString());
}
+
return keys;
}
-
public Object get(AMQShortString key)
{
return getObject(key);
}
-
public Object put(AMQShortString key, Object value)
{
return setObject(key, value);
}
-
public Object remove(String key)
{
@@ -846,10 +848,10 @@ public class FieldTable
public Object remove(AMQShortString key)
{
AMQTypedValue val = removeKey(key);
- return val == null ? null : val.getValue();
- }
+ return (val == null) ? null : val.getValue();
+ }
public AMQTypedValue removeKey(AMQShortString key)
{
@@ -865,12 +867,12 @@ public class FieldTable
_encodedSize -= EncodingUtils.encodedShortStringLength(key);
_encodedSize--;
_encodedSize -= value.getEncodingSize();
+
return value;
}
}
-
public void clear()
{
initMapIfNecessary();
@@ -882,6 +884,7 @@ public class FieldTable
public Set<AMQShortString> keySet()
{
initMapIfNecessary();
+
return _properties.keySet();
}
@@ -895,17 +898,17 @@ public class FieldTable
{
_encodedForm.flip();
}
-// _encodedForm.limit((int)getEncodedSize());
+ // _encodedForm.limit((int)getEncodedSize());
+
buffer.put(_encodedForm);
}
else if (_properties != null)
{
final Iterator<Map.Entry<AMQShortString, AMQTypedValue>> it = _properties.entrySet().iterator();
- //If there are values then write out the encoded Size... could check _encodedSize != 0
+ // If there are values then write out the encoded Size... could check _encodedSize != 0
// write out the total length, which we have kept up to date as data is added
-
while (it.hasNext())
{
final Map.Entry<AMQShortString, AMQTypedValue> me = it.next();
@@ -913,14 +916,12 @@ public class FieldTable
{
if (_logger.isTraceEnabled())
{
- _logger.trace("Writing Property:" + me.getKey() +
- " Type:" + me.getValue().getType() +
- " Value:" + me.getValue().getValue());
- _logger.trace("Buffer Position:" + buffer.position() +
- " Remaining:" + buffer.remaining());
+ _logger.trace("Writing Property:" + me.getKey() + " Type:" + me.getValue().getType() + " Value:"
+ + me.getValue().getValue());
+ _logger.trace("Buffer Position:" + buffer.position() + " Remaining:" + buffer.remaining());
}
- //Write the actual parameter name
+ // Write the actual parameter name
EncodingUtils.writeShortStringBytes(buffer, me.getKey());
me.getValue().writeToBuffer(buffer);
}
@@ -929,19 +930,17 @@ public class FieldTable
if (_logger.isTraceEnabled())
{
_logger.trace("Exception thrown:" + e);
- _logger.trace("Writing Property:" + me.getKey() +
- " Type:" + me.getValue().getType() +
- " Value:" + me.getValue().getValue());
- _logger.trace("Buffer Position:" + buffer.position() +
- " Remaining:" + buffer.remaining());
+ _logger.trace("Writing Property:" + me.getKey() + " Type:" + me.getValue().getType() + " Value:"
+ + me.getValue().getValue());
+ _logger.trace("Buffer Position:" + buffer.position() + " Remaining:" + buffer.remaining());
}
+
throw new RuntimeException(e);
}
}
}
}
-
private void setFromBuffer(ByteBuffer buffer, long length) throws AMQFrameDecodingException
{
@@ -961,17 +960,17 @@ public class FieldTable
if (trace)
{
- _logger.trace("FieldTable::PropFieldTable(buffer," + length + "): Read type '" + value.getType() + "', key '" + key + "', value '" + value.getValue() + "'");
+ _logger.trace("FieldTable::PropFieldTable(buffer," + length + "): Read type '" + value.getType()
+ + "', key '" + key + "', value '" + value.getValue() + "'");
}
-
_properties.put(key, value);
-
}
while (buffer.remaining() > expectedRemaining);
}
+
_encodedSize = length;
if (trace)
@@ -983,20 +982,22 @@ public class FieldTable
public int hashCode()
{
initMapIfNecessary();
+
return _properties.hashCode();
}
-
public boolean equals(Object o)
{
if (o == this)
{
return true;
}
+
if (o == null)
{
return false;
}
+
if (!(o instanceof FieldTable))
{
return false;
diff --git a/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java b/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java
index 916b476185..6006e9793c 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/VersionSpecificRegistry.java
@@ -20,15 +20,16 @@
*/
package org.apache.qpid.framing;
-import org.apache.log4j.Logger;
-
import org.apache.mina.common.ByteBuffer;
import org.apache.qpid.framing.abstraction.ProtocolVersionMethodConverter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class VersionSpecificRegistry
{
- private static final Logger _log = Logger.getLogger(VersionSpecificRegistry.class);
+ private static final Logger _log = LoggerFactory.getLogger(VersionSpecificRegistry.class);
private final byte _protocolMajorVersion;
private final byte _protocolMinorVersion;
@@ -152,16 +153,17 @@ public class VersionSpecificRegistry
}
catch (NullPointerException e)
{
- throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion
- + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID + ".", e);
+ throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version "
+ + _protocolMajorVersion + "-" + _protocolMinorVersion + " (while trying to decode class " + classID
+ + " method " + methodID + ".", e);
}
catch (IndexOutOfBoundsException e)
{
if (classID >= _registry.length)
{
- throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version " + _protocolMajorVersion
- + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID
- + ".", e);
+ throw new AMQFrameDecodingException(null, "Class " + classID + " unknown in AMQP version "
+ + _protocolMajorVersion + "-" + _protocolMinorVersion + " (while trying to decode class " + classID
+ + " method " + methodID + ".", e);
}
else
@@ -175,8 +177,9 @@ public class VersionSpecificRegistry
if (bodyFactory == null)
{
- throw new AMQFrameDecodingException(null, "Method " + methodID + " unknown in AMQP version " + _protocolMajorVersion
- + "-" + _protocolMinorVersion + " (while trying to decode class " + classID + " method " + methodID + ".", null);
+ throw new AMQFrameDecodingException(null, "Method " + methodID + " unknown in AMQP version "
+ + _protocolMajorVersion + "-" + _protocolMinorVersion + " (while trying to decode class " + classID
+ + " method " + methodID + ".", null);
}
return bodyFactory.newInstance(_protocolMajorVersion, _protocolMinorVersion, classID, methodID, in, size);
diff --git a/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java b/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java
index 7f6b1d40ac..d0dfb1adcf 100644
--- a/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java
+++ b/java/common/src/main/java/org/apache/qpid/pool/PoolingFilter.java
@@ -22,12 +22,15 @@ package org.apache.qpid.pool;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import org.apache.log4j.Logger;
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.IoFilterAdapter;
import org.apache.mina.common.IoSession;
import org.apache.qpid.pool.Event.CloseEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
/**
* PoolingFilter, is a no-op pass through filter that hands all events down the Mina filter chain by default. As it
* adds no behaviour by default to the filter chain, it is abstract.
@@ -78,7 +81,7 @@ import org.apache.qpid.pool.Event.CloseEvent;
public abstract class PoolingFilter extends IoFilterAdapter implements Job.JobCompletionHandler
{
/** Used for debugging purposes. */
- private static final Logger _logger = Logger.getLogger(PoolingFilter.class);
+ private static final Logger _logger = LoggerFactory.getLogger(PoolingFilter.class);
/** Holds a mapping from Mina sessions to batched jobs for execution. */
private final ConcurrentMap<IoSession, Job> _jobs = new ConcurrentHashMap<IoSession, Job>();
@@ -135,7 +138,7 @@ public abstract class PoolingFilter extends IoFilterAdapter implements Job.JobCo
*/
public void init()
{
- _logger.info("Init called on PoolingFilter " + toString());
+ _logger.debug("Init called on PoolingFilter " + toString());
// Called when the filter is initialised in the chain. If the reference count is
// zero this acquire will initialise the pool.
@@ -147,7 +150,7 @@ public abstract class PoolingFilter extends IoFilterAdapter implements Job.JobCo
*/
public void destroy()
{
- _logger.info("Destroy called on PoolingFilter " + toString());
+ _logger.debug("Destroy called on PoolingFilter " + toString());
// When the reference count gets to zero we release the executor service.
_poolReference.releaseExecutorService();
diff --git a/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java b/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java
index 808272e9ec..2fbeeda1d4 100644
--- a/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java
+++ b/java/common/src/main/java/org/apache/qpid/protocol/AMQMethodListener.java
@@ -28,7 +28,7 @@ import org.apache.qpid.framing.AMQMethodBody;
*
* <p/>An event listener may be associated with a particular context, usually an AMQP channel, and in addition to
* receiving method events will be notified of errors on that context. This enables listeners to perform any clean
- * up that they need to do before the context is closed.
+ * up that they need to do before the context is closed or retried.
*
* <p/><table id="crc"><caption>CRC Card</caption>
* <tr><th> Responsibilities
@@ -64,8 +64,6 @@ public interface AMQMethodListener
* any necessary clean-up for the context.
*
* @param e The underlying exception that is the source of the error.
- *
- * @todo Consider narrowing the exception, or wrapping it.
*/
void error(Exception e);
}
diff --git a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java
index 353c0d39c2..1774fa1194 100644
--- a/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java
+++ b/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java
@@ -20,18 +20,19 @@
*/
package org.apache.qpid.url;
+import org.apache.qpid.exchange.ExchangeDefaults;
+import org.apache.qpid.framing.AMQShortString;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
-import org.apache.log4j.Logger;
-
-import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.framing.AMQShortString;
-
public class AMQBindingURL implements BindingURL
{
- private static final Logger _logger = Logger.getLogger(AMQBindingURL.class);
+ private static final Logger _logger = LoggerFactory.getLogger(AMQBindingURL.class);
String _url;
AMQShortString _exchangeClass;
diff --git a/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java b/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java
index 4636f44795..461cf9591d 100644
--- a/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java
+++ b/java/common/src/main/java/org/apache/qpid/util/ConcurrentLinkedMessageQueueAtomicSize.java
@@ -14,22 +14,23 @@
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
+ * under the License.
+ *
*
- *
*/
package org.apache.qpid.util;
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import java.util.Queue;
import java.util.Collection;
import java.util.Iterator;
+import java.util.Queue;
import java.util.concurrent.atomic.AtomicInteger;
public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQueueAtomicSize<E> implements MessageQueue<E>
{
- private static final Logger _logger = Logger.getLogger(ConcurrentLinkedMessageQueueAtomicSize.class);
+ private static final Logger _logger = LoggerFactory.getLogger(ConcurrentLinkedMessageQueueAtomicSize.class);
protected Queue<E> _messageHead = new ConcurrentLinkedQueueAtomicSize<E>();
@@ -62,7 +63,6 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
_logger.debug("Providing item(" + e + ")from message head");
}
-
if (e != null)
{
_messageHeadSize.decrementAndGet();
@@ -85,6 +85,7 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
if (_messageHead.remove(o))
{
_messageHeadSize.decrementAndGet();
+
return true;
}
@@ -101,26 +102,25 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
}
else
{
- //fixme this is super.removeAll but iterator here doesn't work
+ // fixme this is super.removeAll but iterator here doesn't work
// we need to be able to correctly decrement _messageHeadSize
-// boolean modified = false;
-// Iterator<?> e = iterator();
-// while (e.hasNext())
-// {
-// if (c.contains(e.next()))
-// {
-// e.remove();
-// modified = true;
-// _size.decrementAndGet();
-// }
-// }
-// return modified;
+ // boolean modified = false;
+ // Iterator<?> e = iterator();
+ // while (e.hasNext())
+ // {
+ // if (c.contains(e.next()))
+ // {
+ // e.remove();
+ // modified = true;
+ // _size.decrementAndGet();
+ // }
+ // }
+ // return modified;
throw new RuntimeException("Not implemented");
}
}
-
@Override
public boolean isEmpty()
{
@@ -173,6 +173,7 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
{
_logger.debug("Peeking item (" + o + ") from message head");
}
+
return o;
}
@@ -182,36 +183,40 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
public Iterator<E> iterator()
{
final Iterator<E> mainMessageIterator = super.iterator();
+
return new Iterator<E>()
- {
- final Iterator<E> _headIterator = _messageHead.iterator();
- final Iterator<E> _mainIterator = mainMessageIterator;
+ {
+ final Iterator<E> _headIterator = _messageHead.iterator();
+ final Iterator<E> _mainIterator = mainMessageIterator;
- Iterator<E> last;
+ Iterator<E> last;
- public boolean hasNext()
- {
- return _headIterator.hasNext() || _mainIterator.hasNext();
- }
+ public boolean hasNext()
+ {
+ return _headIterator.hasNext() || _mainIterator.hasNext();
+ }
- public E next()
- {
- if (_headIterator.hasNext())
+ public E next()
{
- last = _headIterator;
- return _headIterator.next();
+ if (_headIterator.hasNext())
+ {
+ last = _headIterator;
+
+ return _headIterator.next();
+ }
+ else
+ {
+ last = _mainIterator;
+
+ return _mainIterator.next();
+ }
}
- else
+
+ public void remove()
{
- last = _mainIterator;
- return _mainIterator.next();
+ last.remove();
}
- }
- public void remove()
- {
- last.remove();
- }
- };
+ };
}
@Override
@@ -232,11 +237,14 @@ public class ConcurrentLinkedMessageQueueAtomicSize<E> extends ConcurrentLinkedQ
{
_logger.debug("Adding item(" + o + ") to head of queue");
}
+
if (_messageHead.offer(o))
{
_messageHeadSize.incrementAndGet();
+
return true;
}
+
return false;
}
-} \ No newline at end of file
+}
diff --git a/java/common/src/main/java/org/apache/qpid/util/FileUtils.java b/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
index 3c8d3f916b..3b8ebc1666 100644
--- a/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
+++ b/java/common/src/main/java/org/apache/qpid/util/FileUtils.java
@@ -22,8 +22,6 @@ package org.apache.qpid.util;
import java.io.*;
-import org.apache.log4j.Logger;
-
/**
* FileUtils provides some simple helper methods for working with files. It follows the convention of wrapping all
* checked exceptions as runtimes, so code using these methods is free of try-catch blocks but does not expect to
diff --git a/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java b/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java
index faeb9d7167..10f6a27293 100644
--- a/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java
+++ b/java/common/src/main/java/org/apache/qpid/util/PrettyPrintingUtils.java
@@ -26,6 +26,8 @@ package org.apache.qpid.util;
* <p><table id="crc"><caption>CRC Card</caption>
* <tr><th> Responsibilities <th> Collaborations
* </table>
+ *
+ * @todo Drop this. There are already array pretty printing methods it java.utils.Arrays.
*/
public class PrettyPrintingUtils
{
diff --git a/java/common/src/main/java/org/apache/qpid/util/PropertiesUtils.java b/java/common/src/main/java/org/apache/qpid/util/PropertiesUtils.java
index aa21841256..63cf6f252b 100644
--- a/java/common/src/main/java/org/apache/qpid/util/PropertiesUtils.java
+++ b/java/common/src/main/java/org/apache/qpid/util/PropertiesUtils.java
@@ -20,6 +20,9 @@
*/
package org.apache.qpid.util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -28,8 +31,6 @@ import java.net.URL;
import java.util.Iterator;
import java.util.Properties;
-import org.apache.log4j.Logger;
-
/**
* PropertiesHelper defines some static methods which are useful when working with properties
* files.
@@ -46,7 +47,7 @@ import org.apache.log4j.Logger;
public class PropertiesUtils
{
/** Used for logging. */
- private static final Logger log = Logger.getLogger(PropertiesUtils.class);
+ private static final Logger log = LoggerFactory.getLogger(PropertiesUtils.class);
/**
* Get properties from an input stream.
diff --git a/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java b/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
index 6160dc1843..e63b0df770 100644
--- a/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
+++ b/java/common/src/test/java/org/apache/qpid/framing/PropertyFieldTableTest.java
@@ -14,27 +14,25 @@
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
- * under the License.
+ * under the License.
+ *
*
- *
*/
package org.apache.qpid.framing;
import junit.framework.Assert;
import junit.framework.TestCase;
-import java.util.Enumeration;
-import java.util.Iterator;
-
import org.apache.mina.common.ByteBuffer;
-import org.apache.log4j.Logger;
+
import org.apache.qpid.AMQPInvalidClassException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class PropertyFieldTableTest extends TestCase
{
-
- private static final Logger _logger = Logger.getLogger(PropertyFieldTableTest.class);
-
+ private static final Logger _logger = LoggerFactory.getLogger(PropertyFieldTableTest.class);
/**
* Test that setting a similar named value replaces any previous value set on that name
@@ -42,9 +40,9 @@ public class PropertyFieldTableTest extends TestCase
public void testReplacement()
{
FieldTable table1 = new FieldTable();
- //Set a boolean value
+ // Set a boolean value
table1.setBoolean("value", true);
- //Check length of table is correct (<Value length> + <type> + <Boolean length>)
+ // Check length of table is correct (<Value length> + <type> + <Boolean length>)
int size = EncodingUtils.encodedShortStringLength("value") + 1 + EncodingUtils.encodedBooleanLength();
Assert.assertEquals(size, table1.getEncodedSize());
@@ -55,13 +53,12 @@ public class PropertyFieldTableTest extends TestCase
size = EncodingUtils.encodedShortStringLength("value") + 1 + EncodingUtils.encodedIntegerLength();
Assert.assertEquals(size, table1.getEncodedSize());
- //Check boolean value is null
+ // Check boolean value is null
Assert.assertEquals(null, table1.getBoolean("value"));
// ... and integer value is good
Assert.assertEquals((Integer) Integer.MAX_VALUE, table1.getInteger("value"));
}
-
/**
* Set a boolean and check that we can only get it back as a boolean and a string
* Check that attempting to lookup a non existent value returns null
@@ -72,10 +69,10 @@ public class PropertyFieldTableTest extends TestCase
table1.setBoolean("value", true);
Assert.assertTrue(table1.propertyExists("value"));
- //Test Getting right value back
+ // Test Getting right value back
Assert.assertEquals((Boolean) true, table1.getBoolean("value"));
- //Check we don't get anything back for other gets
+ // Check we don't get anything back for other gets
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -86,7 +83,7 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //except value as a string
+ // except value as a string
Assert.assertEquals("true", table1.getString("value"));
table1.remove("value");
@@ -94,7 +91,7 @@ public class PropertyFieldTableTest extends TestCase
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getBoolean("Rubbish"));
}
@@ -108,8 +105,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setByte("value", Byte.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(Byte.MAX_VALUE, (byte) table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -120,14 +117,14 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Byte.MAX_VALUE, table1.getString("value"));
table1.remove("value");
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getByte("Rubbish"));
}
@@ -141,8 +138,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setShort("value", Short.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(Short.MAX_VALUE, (short) table1.getShort("value"));
@@ -153,18 +150,17 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Short.MAX_VALUE, table1.getString("value"));
table1.remove("value");
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getShort("Rubbish"));
}
-
/**
* Set a char and check that we can only get it back as a char
* Check that attempting to lookup a non existent value returns null
@@ -175,8 +171,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setChar("value", 'c');
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -187,7 +183,7 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("c", table1.getString("value"));
table1.remove("value");
@@ -195,11 +191,10 @@ public class PropertyFieldTableTest extends TestCase
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getCharacter("Rubbish"));
}
-
/**
* Set a double and check that we can only get it back as a double
* Check that attempting to lookup a non existent value returns null
@@ -210,8 +205,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setDouble("value", Double.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -222,20 +217,19 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Double.MAX_VALUE, table1.getString("value"));
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getDouble("Rubbish"));
}
-
/**
* Set a float and check that we can only get it back as a float
* Check that attempting to lookup a non existent value returns null
@@ -246,8 +240,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setFloat("value", Float.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -258,22 +252,20 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Float.MAX_VALUE, table1.getString("value"));
-
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getFloat("Rubbish"));
}
-
/**
* Set an int and check that we can only get it back as an int
* Check that attempting to lookup a non existent value returns null
@@ -284,8 +276,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setInteger("value", Integer.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -296,22 +288,20 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Integer.MAX_VALUE, table1.getString("value"));
-
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getInteger("Rubbish"));
}
-
/**
* Set a long and check that we can only get it back as a long
* Check that attempting to lookup a non existent value returns null
@@ -322,8 +312,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setLong("value", Long.MAX_VALUE);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -334,36 +324,34 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(Long.MAX_VALUE, (long) table1.getLong("value"));
Assert.assertEquals(null, table1.getBytes("value"));
- //... and a the string value of it.
+ // ... and a the string value of it.
Assert.assertEquals("" + Long.MAX_VALUE, table1.getString("value"));
-
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getLong("Rubbish"));
}
-
/**
* Set a double and check that we can only get it back as a double
* Check that attempting to lookup a non existent value returns null
*/
public void testBytes()
{
- byte[] bytes = {99, 98, 97, 96, 95};
+ byte[] bytes = { 99, 98, 97, 96, 95 };
FieldTable table1 = new FieldTable();
table1.setBytes("value", bytes);
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -374,17 +362,17 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getLong("value"));
assertBytesEqual(bytes, table1.getBytes("value"));
- //... and a the string value of it is null
+ // ... and a the string value of it is null
Assert.assertEquals(null, table1.getString("value"));
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
// Table should now have zero length for encoding
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getBytes("Rubbish"));
}
@@ -405,7 +393,6 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(0, table.keySet().size());
}
-
/**
* Set a String and check that we can only get it back as a String
* Check that attempting to lookup a non existent value returns null
@@ -416,8 +403,8 @@ public class PropertyFieldTableTest extends TestCase
table1.setString("value", "Hello");
Assert.assertTrue(table1.propertyExists("value"));
- //Tets lookups we shouldn't get anything back for other gets
- //we should get right value back for this type ....
+ // Tets lookups we shouldn't get anything back for other gets
+ // we should get right value back for this type ....
Assert.assertEquals(null, table1.getBoolean("value"));
Assert.assertEquals(null, table1.getByte("value"));
Assert.assertEquals(null, table1.getShort("value"));
@@ -429,40 +416,35 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals(null, table1.getBytes("value"));
Assert.assertEquals("Hello", table1.getString("value"));
- //Try setting a null value and read it back
+ // Try setting a null value and read it back
table1.setString("value", null);
Assert.assertEquals(null, table1.getString("value"));
- //but still contains the value
+ // but still contains the value
Assert.assertTrue(table1.containsKey("value"));
table1.remove("value");
- //but after a removeKey it doesn't
+ // but after a removeKey it doesn't
Assert.assertFalse(table1.containsKey("value"));
checkEmpty(table1);
- //Looking up an invalid value returns null
+ // Looking up an invalid value returns null
Assert.assertEquals(null, table1.getString("Rubbish"));
- //Additional Test that haven't been covered for string
+ // Additional Test that haven't been covered for string
table1.setObject("value", "Hello");
- //Check that it was set correctly
+ // Check that it was set correctly
Assert.assertEquals("Hello", table1.getString("value"));
}
-
-
-
-
-
public void testValues()
{
FieldTable table = new FieldTable();
table.setBoolean("bool", true);
table.setByte("byte", Byte.MAX_VALUE);
- byte[] bytes = {99, 98, 97, 96, 95};
+ byte[] bytes = { 99, 98, 97, 96, 95 };
table.setBytes("bytes", bytes);
table.setChar("char", 'c');
table.setDouble("double", Double.MAX_VALUE);
@@ -484,7 +466,6 @@ public class PropertyFieldTableTest extends TestCase
table.setObject("object-short", Short.MAX_VALUE);
table.setObject("object-string", "Hello");
-
Assert.assertEquals((Boolean) true, table.getBoolean("bool"));
Assert.assertEquals((Byte) Byte.MAX_VALUE, table.getByte("byte"));
assertBytesEqual(bytes, table.getBytes("bytes"));
@@ -509,10 +490,9 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals("Hello", table.getObject("object-string"));
}
-
public void testwriteBuffer()
{
- byte[] bytes = {99, 98, 97, 96, 95};
+ byte[] bytes = { 99, 98, 97, 96, 95 };
FieldTable table = new FieldTable();
table.setBoolean("bool", true);
@@ -569,13 +549,11 @@ public class PropertyFieldTableTest extends TestCase
size += 1 + EncodingUtils.encodedShortStringLength("boolean") + EncodingUtils.encodedBooleanLength();
Assert.assertEquals(size, result.getEncodedSize());
-
result.setByte("byte", (byte) Byte.MAX_VALUE);
size += 1 + EncodingUtils.encodedShortStringLength("byte") + EncodingUtils.encodedByteLength();
Assert.assertEquals(size, result.getEncodedSize());
-
- byte[] _bytes = {99, 98, 97, 96, 95};
+ byte[] _bytes = { 99, 98, 97, 96, 95 };
result.setBytes("bytes", _bytes);
size += 1 + EncodingUtils.encodedShortStringLength("bytes") + 4 + _bytes.length;
@@ -597,7 +575,6 @@ public class PropertyFieldTableTest extends TestCase
size += 1 + EncodingUtils.encodedShortStringLength("int") + EncodingUtils.encodedIntegerLength();
Assert.assertEquals(size, result.getEncodedSize());
-
result.setLong("long", (long) Long.MAX_VALUE);
size += 1 + EncodingUtils.encodedShortStringLength("long") + EncodingUtils.encodedLongLength();
Assert.assertEquals(size, result.getEncodedSize());
@@ -610,7 +587,6 @@ public class PropertyFieldTableTest extends TestCase
size += 1 + EncodingUtils.encodedShortStringLength("result") + EncodingUtils.encodedLongStringLength("Hello");
Assert.assertEquals(size, result.getEncodedSize());
-
result.setObject("object-bool", true);
size += 1 + EncodingUtils.encodedShortStringLength("object-bool") + EncodingUtils.encodedBooleanLength();
Assert.assertEquals(size, result.getEncodedSize());
@@ -639,7 +615,6 @@ public class PropertyFieldTableTest extends TestCase
size += 1 + EncodingUtils.encodedShortStringLength("object-int") + EncodingUtils.encodedIntegerLength();
Assert.assertEquals(size, result.getEncodedSize());
-
result.setObject("object-long", Long.MAX_VALUE);
size += 1 + EncodingUtils.encodedShortStringLength("object-long") + EncodingUtils.encodedLongLength();
Assert.assertEquals(size, result.getEncodedSize());
@@ -650,63 +625,62 @@ public class PropertyFieldTableTest extends TestCase
}
-// public void testEncodingSize1()
-// {
-// PropertyFieldTable table = new PropertyFieldTable();
-// int length = 0;
-// result.put("one", 1L);
-// length = EncodingUtils.encodedShortStringLength("one");
-// length += 1 + EncodingUtils.encodedLongLength();
-// assertEquals(length, result.getEncodedSize());
-//
-// result.put("two", 2L);
-// length += EncodingUtils.encodedShortStringLength("two");
-// length += 1 + EncodingUtils.encodedLongLength();
-// assertEquals(length, result.getEncodedSize());
-//
-// result.put("three", 3L);
-// length += EncodingUtils.encodedShortStringLength("three");
-// length += 1 + EncodingUtils.encodedLongLength();
-// assertEquals(length, result.getEncodedSize());
-//
-// result.put("four", 4L);
-// length += EncodingUtils.encodedShortStringLength("four");
-// length += 1 + EncodingUtils.encodedLongLength();
-// assertEquals(length, result.getEncodedSize());
-//
-// result.put("five", 5L);
-// length += EncodingUtils.encodedShortStringLength("five");
-// length += 1 + EncodingUtils.encodedLongLength();
-// assertEquals(length, result.getEncodedSize());
-//
-// //fixme should perhaps be expanded to incorporate all types.
-//
-// final ByteBuffer buffer = ByteBuffer.allocate((int) result.getEncodedSize()); // FIXME XXX: Is cast a problem?
-//
-// result.writeToBuffer(buffer);
-//
-// buffer.flip();
-//
-// long length = buffer.getUnsignedInt();
-//
-// try
-// {
-// PropertyFieldTable table2 = new PropertyFieldTable(buffer, length);
-//
-// Assert.assertEquals((Long) 1L, table2.getLong("one"));
-// Assert.assertEquals((Long) 2L, table2.getLong("two"));
-// Assert.assertEquals((Long) 3L, table2.getLong("three"));
-// Assert.assertEquals((Long) 4L, table2.getLong("four"));
-// Assert.assertEquals((Long) 5L, table2.getLong("five"));
-// }
-// catch (AMQFrameDecodingException e)
-// {
-// e.printStackTrace();
-// fail("PFT should be instantiated from bytes." + e.getCause());
-// }
-//
-// }
-
+ // public void testEncodingSize1()
+ // {
+ // PropertyFieldTable table = new PropertyFieldTable();
+ // int length = 0;
+ // result.put("one", 1L);
+ // length = EncodingUtils.encodedShortStringLength("one");
+ // length += 1 + EncodingUtils.encodedLongLength();
+ // assertEquals(length, result.getEncodedSize());
+ //
+ // result.put("two", 2L);
+ // length += EncodingUtils.encodedShortStringLength("two");
+ // length += 1 + EncodingUtils.encodedLongLength();
+ // assertEquals(length, result.getEncodedSize());
+ //
+ // result.put("three", 3L);
+ // length += EncodingUtils.encodedShortStringLength("three");
+ // length += 1 + EncodingUtils.encodedLongLength();
+ // assertEquals(length, result.getEncodedSize());
+ //
+ // result.put("four", 4L);
+ // length += EncodingUtils.encodedShortStringLength("four");
+ // length += 1 + EncodingUtils.encodedLongLength();
+ // assertEquals(length, result.getEncodedSize());
+ //
+ // result.put("five", 5L);
+ // length += EncodingUtils.encodedShortStringLength("five");
+ // length += 1 + EncodingUtils.encodedLongLength();
+ // assertEquals(length, result.getEncodedSize());
+ //
+ // //fixme should perhaps be expanded to incorporate all types.
+ //
+ // final ByteBuffer buffer = ByteBuffer.allocate((int) result.getEncodedSize()); // FIXME XXX: Is cast a problem?
+ //
+ // result.writeToBuffer(buffer);
+ //
+ // buffer.flip();
+ //
+ // long length = buffer.getUnsignedInt();
+ //
+ // try
+ // {
+ // PropertyFieldTable table2 = new PropertyFieldTable(buffer, length);
+ //
+ // Assert.assertEquals((Long) 1L, table2.getLong("one"));
+ // Assert.assertEquals((Long) 2L, table2.getLong("two"));
+ // Assert.assertEquals((Long) 3L, table2.getLong("three"));
+ // Assert.assertEquals((Long) 4L, table2.getLong("four"));
+ // Assert.assertEquals((Long) 5L, table2.getLong("five"));
+ // }
+ // catch (AMQFrameDecodingException e)
+ // {
+ // e.printStackTrace();
+ // fail("PFT should be instantiated from bytes." + e.getCause());
+ // }
+ //
+ // }
/**
* Additional test for setObject
@@ -715,7 +689,7 @@ public class PropertyFieldTableTest extends TestCase
{
FieldTable table = new FieldTable();
- //Try setting a non primative object
+ // Try setting a non primative object
try
{
@@ -724,7 +698,7 @@ public class PropertyFieldTableTest extends TestCase
}
catch (AMQPInvalidClassException iae)
{
- //normal path
+ // normal path
}
// so length should be zero
Assert.assertEquals(0, table.getEncodedSize());
@@ -739,18 +713,17 @@ public class PropertyFieldTableTest extends TestCase
try
{
- table.setObject((String)null, "String");
+ table.setObject((String) null, "String");
fail("Null property name is not allowed");
}
catch (IllegalArgumentException iae)
{
- //normal path
+ // normal path
}
// so length should be zero
Assert.assertEquals(0, table.getEncodedSize());
}
-
/**
* Additional test checkPropertyName doesn't accept an empty String
*/
@@ -765,18 +738,19 @@ public class PropertyFieldTableTest extends TestCase
}
catch (IllegalArgumentException iae)
{
- //normal path
+ // normal path
}
// so length should be zero
Assert.assertEquals(0, table.getEncodedSize());
}
-
/**
* Additional test checkPropertyName doesn't accept an empty String
*/
public void testCheckPropertyNamehasMaxLength()
{
+ String oldVal = System.getProperty("STRICT_AMQP");
+ System.setProperty("STRICT_AMQP", "true");
FieldTable table = new FieldTable();
StringBuffer longPropertyName = new StringBuffer(129);
@@ -793,21 +767,30 @@ public class PropertyFieldTableTest extends TestCase
}
catch (IllegalArgumentException iae)
{
- //normal path
+ // normal path
}
// so length should be zero
Assert.assertEquals(0, table.getEncodedSize());
+ if (oldVal != null)
+ {
+ System.setProperty("STRICT_AMQP", oldVal);
+ }
+ else
+ {
+ System.clearProperty("STRICT_AMQP");
+ }
}
-
/**
* Additional test checkPropertyName starts with a letter
*/
public void testCheckPropertyNameStartCharacterIsLetter()
{
+ String oldVal = System.getProperty("STRICT_AMQP");
+ System.setProperty("STRICT_AMQP", "true");
FieldTable table = new FieldTable();
- //Try a name that starts with a number
+ // Try a name that starts with a number
try
{
table.setObject("1", "String");
@@ -815,21 +798,30 @@ public class PropertyFieldTableTest extends TestCase
}
catch (IllegalArgumentException iae)
{
- //normal path
+ // normal path
}
// so length should be zero
Assert.assertEquals(0, table.getEncodedSize());
+ if (oldVal != null)
+ {
+ System.setProperty("STRICT_AMQP", oldVal);
+ }
+ else
+ {
+ System.clearProperty("STRICT_AMQP");
+ }
}
-
/**
* Additional test checkPropertyName starts with a hash or a dollar
*/
public void testCheckPropertyNameStartCharacterIsHashorDollar()
{
+ String oldVal = System.getProperty("STRICT_AMQP");
+ System.setProperty("STRICT_AMQP", "true");
FieldTable table = new FieldTable();
- //Try a name that starts with a number
+ // Try a name that starts with a number
try
{
table.setObject("#", "String");
@@ -839,8 +831,16 @@ public class PropertyFieldTableTest extends TestCase
{
fail("property name are allowed to start with # and $s");
}
- }
+ if (oldVal != null)
+ {
+ System.setProperty("STRICT_AMQP", oldVal);
+ }
+ else
+ {
+ System.clearProperty("STRICT_AMQP");
+ }
+ }
/**
* Additional test to test the contents of the table
@@ -853,7 +853,7 @@ public class PropertyFieldTableTest extends TestCase
Assert.assertEquals("String", table.getString("StringProperty"));
- //Test Clear
+ // Test Clear
table.clear();
@@ -872,18 +872,12 @@ public class PropertyFieldTableTest extends TestCase
table.setObject("n2", "2");
table.setObject("n3", "3");
-
Assert.assertEquals("1", table.getObject("n1"));
Assert.assertEquals("2", table.getObject("n2"));
Assert.assertEquals("3", table.getObject("n3"));
-
-
-
}
-
-
private void assertBytesEqual(byte[] expected, byte[] actual)
{
Assert.assertEquals(expected.length, actual.length);
diff --git a/java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java b/java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java
index c480ce3944..815b61d293 100644
--- a/java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java
+++ b/java/common/src/test/java/org/apache/qpid/util/CommandLineParserTest.java
@@ -1,10 +1,11 @@
package org.apache.qpid.util;
-import java.util.Properties;
-
import junit.framework.*;
-import org.apache.log4j.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
/**
* Unit tests the {@link CommandLineParser} class.
@@ -37,7 +38,7 @@ import org.apache.log4j.*;
*/
public class CommandLineParserTest extends TestCase
{
- private static final Logger log = Logger.getLogger(CommandLineParserTest.class);
+ private static final Logger log = LoggerFactory.getLogger(CommandLineParserTest.class);
public CommandLineParserTest(String name)
{
@@ -58,11 +59,6 @@ public class CommandLineParserTest extends TestCase
return suite;
}
- public void setUp()
- {
- NDC.push(getName());
- }
-
/** Check that get errors returns an empty string on no errors. */
public void testGetErrorsReturnsEmptyStringOnNoErrors() throws Exception
{
@@ -534,9 +530,4 @@ public class CommandLineParserTest extends TestCase
assertTrue("IllegalArgumentException not thrown for an unknown option when errors on unknowns mode is on.",
testPassed);
}
-
- protected void tearDown() throws Exception
- {
- NDC.pop();
- }
}