@@ -1425,71 +1425,38 @@ public boolean page(Message message,
14251425
14261426 @ Override
14271427 public boolean checkFullPolicy (Message message ) throws Exception {
1428-
1429- boolean diskFull = pagingManager .isDiskFull ();
1430-
1431- if (diskFull && (diskFullMessagePolicy == DiskFullMessagePolicy .DROP || diskFullMessagePolicy == DiskFullMessagePolicy .FAIL )) {
1432- if (message .isLargeMessage ()) {
1433- ((LargeServerMessage ) message ).deleteFile ();
1434- }
1435-
1436- if (diskFullMessagePolicy == DiskFullMessagePolicy .FAIL ) {
1437- throw ActiveMQMessageBundle .BUNDLE .addressIsFull (address .toString ());
1438- }
1439-
1440- // Dist is full, just drop the data
1441- if (!printedDropMessagesWarning ) {
1442- printedDropMessagesWarning = true ;
1443- ActiveMQServerLogger .LOGGER .pageStoreDropMessages (storeName , getPageInfo ());
1444- }
1445-
1428+ if (pagingManager .isDiskFull () && (diskFullMessagePolicy == DiskFullMessagePolicy .DROP || diskFullMessagePolicy == DiskFullMessagePolicy .FAIL )) {
1429+ handleDrop (message , diskFullMessagePolicy == DiskFullMessagePolicy .FAIL );
14461430 return false ;
14471431 }
14481432
1449- if (isFull ()) {
1450- if (addressFullMessagePolicy == AddressFullMessagePolicy .FAIL ) {
1451- if (message .isLargeMessage ()) {
1452- removeLargeMessage (message );
1453- }
1454- throw ActiveMQMessageBundle .BUNDLE .addressIsFull (address .toString ());
1455- } else if (addressFullMessagePolicy == AddressFullMessagePolicy .DROP ) {
1456- if (message .isLargeMessage ()) {
1457- removeLargeMessage (message );
1458- }
1459- // storage is full, just drop the data
1460- if (!printedDropMessagesWarning ) {
1461- printedDropMessagesWarning = true ;
1462- ActiveMQServerLogger .LOGGER .pageStoreDropMessages (storeName , getPageInfo ());
1463- }
1464- return false ;
1465- }
1433+ if (isFull () && (addressFullMessagePolicy == AddressFullMessagePolicy .DROP || addressFullMessagePolicy == AddressFullMessagePolicy .FAIL )) {
1434+ handleDrop (message , addressFullMessagePolicy == AddressFullMessagePolicy .FAIL );
1435+ return false ;
14661436 }
14671437
14681438 if (pageFull ) {
1469- if (message .isLargeMessage ()) {
1470- removeLargeMessage (message );
1471- }
1472-
1473- if (pageFullMessagePolicy == PageFullMessagePolicy .FAIL ) {
1474- throw ActiveMQMessageBundle .BUNDLE .addressIsFull (address .toString ());
1475- }
1476-
1477- if (!printedDropMessagesWarning ) {
1478- printedDropMessagesWarning = true ;
1479- ActiveMQServerLogger .LOGGER .pageStoreDropMessages (storeName , getPageInfo ());
1480- }
1439+ handleDrop (message , pageFullMessagePolicy == PageFullMessagePolicy .FAIL );
14811440 return false ;
14821441 }
14831442
14841443 return true ;
14851444 }
14861445
1487- private static void removeLargeMessage (Message message ) {
1488- try {
1446+ // message will be dropped, we may throw an Exception if fail
1447+ private void handleDrop (Message message , boolean fail ) throws Exception {
1448+ if (message .isLargeMessage ()) {
14891449 ((LargeServerMessage ) message ).deleteFile ();
1490- } catch (Exception e ) {
1491- // only thing to be done is log on this case
1492- logger .debug ("Error deleting large message file for {}" , message , e );
1450+ }
1451+
1452+ if (fail ) {
1453+ throw ActiveMQMessageBundle .BUNDLE .addressIsFull (address .toString ());
1454+ }
1455+
1456+ // System is full, just drop the message
1457+ if (!printedDropMessagesWarning ) {
1458+ printedDropMessagesWarning = true ;
1459+ ActiveMQServerLogger .LOGGER .pageStoreDropMessages (storeName , getPageInfo ());
14931460 }
14941461 }
14951462
0 commit comments