The following document contains the results of FindBugs
FindBugs Version is 3.0.1
Threshold is medium
Effort is min
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
com.kdt.api.KdtApiClient.buildParamStr(HashMap) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 104 | Medium |
com.kdt.api.KdtApiClient.buildCompleteParams(String, HashMap) makes inefficient use of keySet iterator instead of entrySet iterator | PERFORMANCE | WMI_WRONG_MAP_ITERATOR | 119 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
com.kdt.api.KdtApiProtocol.sign(String, HashMap) concatenates strings using + in a loop | PERFORMANCE | SBSC_USE_STRINGBUFFER_CONCATENATION | 44 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
Found reliance on default encoding in com.kdt.test.KDTApiTest.sendGet(): new java.io.InputStreamReader(InputStream) | I18N | DM_DEFAULT_ENCODING | 40 | High |
Found reliance on default encoding in com.kdt.test.KDTApiTest.sendPost(): new java.io.InputStreamReader(InputStream) | I18N | DM_DEFAULT_ENCODING | 80 | High |
com.kdt.test.KDTApiTest.sendGet() may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 40 | Medium |
com.kdt.test.KDTApiTest.sendPost() may fail to close stream | BAD_PRACTICE | OS_OPEN_STREAM | 80 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.GoodsDetail.getItemImgs() may expose internal representation by returning GoodsDetail.itemImgs | MALICIOUS_CODE | EI_EXPOSE_REP | 618 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getItemQrcodes() may expose internal representation by returning GoodsDetail.itemQrcodes | MALICIOUS_CODE | EI_EXPOSE_REP | 410 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getItemTags() may expose internal representation by returning GoodsDetail.itemTags | MALICIOUS_CODE | EI_EXPOSE_REP | 602 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getMessages() may expose internal representation by returning GoodsDetail.messages | MALICIOUS_CODE | EI_EXPOSE_REP | 698 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getSkus() may expose internal representation by returning GoodsDetail.skus | MALICIOUS_CODE | EI_EXPOSE_REP | 402 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getUmpLevel() may expose internal representation by returning GoodsDetail.umpLevel | MALICIOUS_CODE | EI_EXPOSE_REP | 418 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getUmpLevelText() may expose internal representation by returning GoodsDetail.umpLevelText | MALICIOUS_CODE | EI_EXPOSE_REP | 546 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getUmpTags() may expose internal representation by returning GoodsDetail.umpTags | MALICIOUS_CODE | EI_EXPOSE_REP | 570 | Medium |
org.oxerr.youzan.dto.GoodsDetail.getUmpTagsText() may expose internal representation by returning GoodsDetail.umpTagsText | MALICIOUS_CODE | EI_EXPOSE_REP | 514 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.itemImgs | MALICIOUS_CODE | EI_EXPOSE_REP2 | 351 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.itemQrcodes | MALICIOUS_CODE | EI_EXPOSE_REP2 | 325 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.itemTags | MALICIOUS_CODE | EI_EXPOSE_REP2 | 349 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.messages | MALICIOUS_CODE | EI_EXPOSE_REP2 | 361 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.skus | MALICIOUS_CODE | EI_EXPOSE_REP2 | 324 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.umpLevel | MALICIOUS_CODE | EI_EXPOSE_REP2 | 326 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.umpLevelText | MALICIOUS_CODE | EI_EXPOSE_REP2 | 342 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.umpTags | MALICIOUS_CODE | EI_EXPOSE_REP2 | 345 | Medium |
new org.oxerr.youzan.dto.GoodsDetail(Boolean, Instant, String, BigDecimal, GoodsSku[], GoodsQrcode[], String[], Long, Long, Integer, Long, String, String, Long, String, String, String, Integer, String[], BigDecimal, String, Integer, String[], String, Long, String[], String, Boolean, Long, GoodsTag[], Instant, GoodsImage[], Boolean, Boolean, Long, String, String, String, String, Long, Boolean, Map[], Long, String, String, Long, String) may expose internal representation by storing an externally mutable object into GoodsDetail.umpTagsText | MALICIOUS_CODE | EI_EXPOSE_REP2 | 338 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setItemImgs(GoodsImage[]) may expose internal representation by storing an externally mutable object into GoodsDetail.itemImgs | MALICIOUS_CODE | EI_EXPOSE_REP2 | 622 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setItemQrcodes(GoodsQrcode[]) may expose internal representation by storing an externally mutable object into GoodsDetail.itemQrcodes | MALICIOUS_CODE | EI_EXPOSE_REP2 | 414 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setItemTags(GoodsTag[]) may expose internal representation by storing an externally mutable object into GoodsDetail.itemTags | MALICIOUS_CODE | EI_EXPOSE_REP2 | 606 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setMessages(Map[]) may expose internal representation by storing an externally mutable object into GoodsDetail.messages | MALICIOUS_CODE | EI_EXPOSE_REP2 | 702 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setSkus(GoodsSku[]) may expose internal representation by storing an externally mutable object into GoodsDetail.skus | MALICIOUS_CODE | EI_EXPOSE_REP2 | 406 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setUmpLevel(String[]) may expose internal representation by storing an externally mutable object into GoodsDetail.umpLevel | MALICIOUS_CODE | EI_EXPOSE_REP2 | 422 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setUmpLevelText(String[]) may expose internal representation by storing an externally mutable object into GoodsDetail.umpLevelText | MALICIOUS_CODE | EI_EXPOSE_REP2 | 550 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setUmpTags(String[]) may expose internal representation by storing an externally mutable object into GoodsDetail.umpTags | MALICIOUS_CODE | EI_EXPOSE_REP2 | 574 | Medium |
org.oxerr.youzan.dto.GoodsDetail.setUmpTagsText(String[]) may expose internal representation by storing an externally mutable object into GoodsDetail.umpTagsText | MALICIOUS_CODE | EI_EXPOSE_REP2 | 518 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.TradeDetail.getCouponDetails() may expose internal representation by returning TradeDetail.couponDetails | MALICIOUS_CODE | EI_EXPOSE_REP | 741 | Medium |
org.oxerr.youzan.dto.TradeDetail.getOrders() may expose internal representation by returning TradeDetail.orders | MALICIOUS_CODE | EI_EXPOSE_REP | 629 | Medium |
org.oxerr.youzan.dto.TradeDetail.getOutTradeNo() may expose internal representation by returning TradeDetail.outTradeNo | MALICIOUS_CODE | EI_EXPOSE_REP | 621 | Medium |
org.oxerr.youzan.dto.TradeDetail.getPromotionDetails() may expose internal representation by returning TradeDetail.promotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP | 637 | Medium |
org.oxerr.youzan.dto.TradeDetail.getRelations() may expose internal representation by returning TradeDetail.relations | MALICIOUS_CODE | EI_EXPOSE_REP | 869 | Medium |
org.oxerr.youzan.dto.TradeDetail.getSubTrades() may expose internal representation by returning TradeDetail.subTrades | MALICIOUS_CODE | EI_EXPOSE_REP | 589 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.couponDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 456 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.orders | MALICIOUS_CODE | EI_EXPOSE_REP2 | 442 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.outTradeNo | MALICIOUS_CODE | EI_EXPOSE_REP2 | 441 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.promotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 443 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.relations | MALICIOUS_CODE | EI_EXPOSE_REP2 | 472 | Medium |
new org.oxerr.youzan.dto.TradeDetail(Instant, String, Long, AdjustFee, String, String, Long, String, Integer, Long, BigDecimal, BigDecimal, BigDecimal, Long, TradeDetail[], String, Instant, Instant, String[], TradeOrder[], TradePromotion[], String, String, BigDecimal, String, String, String, BigDecimal, Long, String, BigDecimal, String, Instant, UmpTradeCoupon[], String, String, String, BigDecimal, TradeFetch, Integer, String, String, String, Instant, Integer, String, Integer, String, String, String[], String) may expose internal representation by storing an externally mutable object into TradeDetail.subTrades | MALICIOUS_CODE | EI_EXPOSE_REP2 | 437 | Medium |
org.oxerr.youzan.dto.TradeDetail.setCouponDetails(UmpTradeCoupon[]) may expose internal representation by storing an externally mutable object into TradeDetail.couponDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 745 | Medium |
org.oxerr.youzan.dto.TradeDetail.setOrders(TradeOrder[]) may expose internal representation by storing an externally mutable object into TradeDetail.orders | MALICIOUS_CODE | EI_EXPOSE_REP2 | 633 | Medium |
org.oxerr.youzan.dto.TradeDetail.setOutTradeNo(String[]) may expose internal representation by storing an externally mutable object into TradeDetail.outTradeNo | MALICIOUS_CODE | EI_EXPOSE_REP2 | 625 | Medium |
org.oxerr.youzan.dto.TradeDetail.setPromotionDetails(TradePromotion[]) may expose internal representation by storing an externally mutable object into TradeDetail.promotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 641 | Medium |
org.oxerr.youzan.dto.TradeDetail.setRelations(String[]) may expose internal representation by storing an externally mutable object into TradeDetail.relations | MALICIOUS_CODE | EI_EXPOSE_REP2 | 873 | Medium |
org.oxerr.youzan.dto.TradeDetail.setSubTrades(TradeDetail[]) may expose internal representation by storing an externally mutable object into TradeDetail.subTrades | MALICIOUS_CODE | EI_EXPOSE_REP2 | 593 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.TradeOrder.getBuyerMessages() may expose internal representation by returning TradeOrder.buyerMessages | MALICIOUS_CODE | EI_EXPOSE_REP | 305 | Medium |
org.oxerr.youzan.dto.TradeOrder.getOrderPromotionDetails() may expose internal representation by returning TradeOrder.orderPromotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP | 321 | Medium |
new org.oxerr.youzan.dto.TradeOrder(String, String, String, String, Integer, Long, Long, Long, String, String, Long, String, BigDecimal, String, BigDecimal, TradeBuyerMessage[], String, TradeOrderPromotion[], BigDecimal, BigDecimal, BigDecimal, BigDecimal, String) may expose internal representation by storing an externally mutable object into TradeOrder.buyerMessages | MALICIOUS_CODE | EI_EXPOSE_REP2 | 174 | Medium |
new org.oxerr.youzan.dto.TradeOrder(String, String, String, String, Integer, Long, Long, Long, String, String, Long, String, BigDecimal, String, BigDecimal, TradeBuyerMessage[], String, TradeOrderPromotion[], BigDecimal, BigDecimal, BigDecimal, BigDecimal, String) may expose internal representation by storing an externally mutable object into TradeOrder.orderPromotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 176 | Medium |
org.oxerr.youzan.dto.TradeOrder.setBuyerMessages(TradeBuyerMessage[]) may expose internal representation by storing an externally mutable object into TradeOrder.buyerMessages | MALICIOUS_CODE | EI_EXPOSE_REP2 | 309 | Medium |
org.oxerr.youzan.dto.TradeOrder.setOrderPromotionDetails(TradeOrderPromotion[]) may expose internal representation by storing an externally mutable object into TradeOrder.orderPromotionDetails | MALICIOUS_CODE | EI_EXPOSE_REP2 | 326 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.response.ItemsResponse.getItems() may expose internal representation by returning ItemsResponse.items | MALICIOUS_CODE | EI_EXPOSE_REP | 20 | Medium |
new org.oxerr.youzan.dto.response.ItemsResponse(GoodsDetail[]) may expose internal representation by storing an externally mutable object into ItemsResponse.items | MALICIOUS_CODE | EI_EXPOSE_REP2 | 16 | Medium |
org.oxerr.youzan.dto.response.ItemsResponse.setItems(GoodsDetail[]) may expose internal representation by storing an externally mutable object into ItemsResponse.items | MALICIOUS_CODE | EI_EXPOSE_REP2 | 24 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.response.SkusResponse.getSkus() may expose internal representation by returning SkusResponse.skus | MALICIOUS_CODE | EI_EXPOSE_REP | 20 | Medium |
new org.oxerr.youzan.dto.response.SkusResponse(GoodsSku[]) may expose internal representation by storing an externally mutable object into SkusResponse.skus | MALICIOUS_CODE | EI_EXPOSE_REP2 | 16 | Medium |
org.oxerr.youzan.dto.response.SkusResponse.setSkus(GoodsSku[]) may expose internal representation by storing an externally mutable object into SkusResponse.skus | MALICIOUS_CODE | EI_EXPOSE_REP2 | 24 | Medium |
Bug | Category | Details | Line | Priority |
---|---|---|---|---|
org.oxerr.youzan.dto.response.TradesResponse.getTrades() may expose internal representation by returning TradesResponse.trades | MALICIOUS_CODE | EI_EXPOSE_REP | 28 | Medium |
new org.oxerr.youzan.dto.response.TradesResponse(TradeDetail[], Integer, Boolean) may expose internal representation by storing an externally mutable object into TradesResponse.trades | MALICIOUS_CODE | EI_EXPOSE_REP2 | 22 | Medium |
org.oxerr.youzan.dto.response.TradesResponse.setTrades(TradeDetail[]) may expose internal representation by storing an externally mutable object into TradesResponse.trades | MALICIOUS_CODE | EI_EXPOSE_REP2 | 32 | Medium |