Could I Have a Stack Trace to Examine the Dependency Conflict Issue?
Intensive use of libraries in Java projects brings potential risk of dependency conflicts, which occur when a project directly or indirectly depends on multiple versions of the same library or class. When this happens, JVM loads one version and shadows the others. Runtime exceptions can occur when m...
Saved in:
Published in | Proceedings / International Conference on Software Engineering pp. 572 - 583 |
---|---|
Main Authors | , , , , , , , |
Format | Conference Proceeding |
Language | English |
Published |
IEEE
01.05.2019
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Abstract | Intensive use of libraries in Java projects brings potential risk of dependency conflicts, which occur when a project directly or indirectly depends on multiple versions of the same library or class. When this happens, JVM loads one version and shadows the others. Runtime exceptions can occur when methods in the shadowed versions are referenced. Although project management tools such as Maven are able to give warnings of potential dependency conflicts when a project is built, developers often ask for crashing stack traces before examining these warnings. It motivates us to develop Riddle, an automated approach that generates tests and collects crashing stack traces for projects subject to risk of dependency conflicts. Riddle, built on top of Asm and Evosuite, combines condition mutation, search strategies and condition restoration. We applied Riddle on 19 real-world Java projects with duplicate libraries or classes. We reported 20 identified dependency conflicts including their induced crashing stack traces and the details of generated tests. Among them, 15 conflicts were confirmed by developers as real issues, and 10 were readily fixed. The evaluation results demonstrate the effectiveness and usefulness of Riddle. |
---|---|
AbstractList | Intensive use of libraries in Java projects brings potential risk of dependency conflicts, which occur when a project directly or indirectly depends on multiple versions of the same library or class. When this happens, JVM loads one version and shadows the others. Runtime exceptions can occur when methods in the shadowed versions are referenced. Although project management tools such as Maven are able to give warnings of potential dependency conflicts when a project is built, developers often ask for crashing stack traces before examining these warnings. It motivates us to develop Riddle, an automated approach that generates tests and collects crashing stack traces for projects subject to risk of dependency conflicts. Riddle, built on top of Asm and Evosuite, combines condition mutation, search strategies and condition restoration. We applied Riddle on 19 real-world Java projects with duplicate libraries or classes. We reported 20 identified dependency conflicts including their induced crashing stack traces and the details of generated tests. Among them, 15 conflicts were confirmed by developers as real issues, and 10 were readily fixed. The evaluation results demonstrate the effectiveness and usefulness of Riddle. |
Author | Tan, Shin Hwei Cheung, Shing-Chi Liu, Zhenwei Wang, Ying Wen, Ming Wu, Rongxin Zhu, Zhiliang Yu, Hai |
Author_xml | – sequence: 1 givenname: Ying surname: Wang fullname: Wang, Ying organization: Northeastern University – sequence: 2 givenname: Ming surname: Wen fullname: Wen, Ming organization: The Hong Kong University of Science and Technology – sequence: 3 givenname: Rongxin surname: Wu fullname: Wu, Rongxin organization: The Hong Kong University of Science and Technology – sequence: 4 givenname: Zhenwei surname: Liu fullname: Liu, Zhenwei organization: Northeastern University – sequence: 5 givenname: Shin Hwei surname: Tan fullname: Tan, Shin Hwei organization: Southern University of Science and Technology – sequence: 6 givenname: Zhiliang surname: Zhu fullname: Zhu, Zhiliang organization: Northeastern University – sequence: 7 givenname: Hai surname: Yu fullname: Yu, Hai organization: Northeastern University – sequence: 8 givenname: Shing-Chi surname: Cheung fullname: Cheung, Shing-Chi organization: The Hong Kong University of Science and Technology |
BookMark | eNotjrFOwzAURQ0CibZ0ZmDxDyQ8O3ZsTwilgUaqxNAyV6_2iwikTpWkiP49RTDdMxwd3Sm7il0kxu4EpEKAe6iKdZlKEC4FgNxesLkzVhhpBdjc2Us2EVrbREipb9h0GD5-NeXchC2K7tgGXvElfhFHvh7Rf_JNj5742PHyG_dNPOM78QUdKAaK_sSLLtZt40deDcORHm_ZdY3tQPP_nbG353JTLJPV60tVPK0SlMqMicPa5LkBSRkoNFoHt6tztF6DVLugjVMqO9-SPjgUOgQAyp3OgiZ0tcBsxu7_ug0RbQ99s8f-tLVWSCFt9gNZOEpD |
CODEN | IEEPAD |
ContentType | Conference Proceeding |
DBID | 6IE 6IH CBEJK RIE RIO |
DOI | 10.1109/ICSE.2019.00068 |
DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
DatabaseTitleList | |
Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/ sourceTypes: Publisher |
DeliveryMethod | fulltext_linktorsrc |
Discipline | Computer Science |
EISBN | 9781728108698 1728108691 |
EISSN | 1558-1225 |
EndPage | 583 |
ExternalDocumentID | 8812128 |
Genre | orig-research |
GroupedDBID | -~X .4S .DC 123 23M 29O 5VS 6IE 6IF 6IH 6IK 6IL 6IM 6IN 8US AAJGR AAWTH ABLEC ADZIZ AFFNX ALMA_UNASSIGNED_HOLDINGS APO ARCSS AVWKF BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO EDO FEDTE I-F I07 IEGSK IJVOP IPLJI M43 OCL RIE RIL RIO RNS XOL |
ID | FETCH-LOGICAL-a247t-9af766702e304a755d9bf6a8c5024bd5794436492cd9a15dd00e6953d5ea9f1a3 |
IEDL.DBID | RIE |
IngestDate | Wed Aug 27 02:46:33 EDT 2025 |
IsPeerReviewed | false |
IsScholarly | true |
Language | English |
LinkModel | DirectLink |
MergedId | FETCHMERGED-LOGICAL-a247t-9af766702e304a755d9bf6a8c5024bd5794436492cd9a15dd00e6953d5ea9f1a3 |
PageCount | 12 |
ParticipantIDs | ieee_primary_8812128 |
PublicationCentury | 2000 |
PublicationDate | 2019-May |
PublicationDateYYYYMMDD | 2019-05-01 |
PublicationDate_xml | – month: 05 year: 2019 text: 2019-May |
PublicationDecade | 2010 |
PublicationTitle | Proceedings / International Conference on Software Engineering |
PublicationTitleAbbrev | ICSE |
PublicationYear | 2019 |
Publisher | IEEE |
Publisher_xml | – name: IEEE |
SSID | ssj0006499 |
Score | 2.2436423 |
Snippet | Intensive use of libraries in Java projects brings potential risk of dependency conflicts, which occur when a project directly or indirectly depends on... |
SourceID | ieee |
SourceType | Publisher |
StartPage | 572 |
SubjectTerms | Computer crashes Java Libraries mutation Runtime Static analysis test generation Test pattern generators third party-library |
Title | Could I Have a Stack Trace to Examine the Dependency Conflict Issue? |
URI | https://ieeexplore.ieee.org/document/8812128 |
hasFullText | 1 |
inHoldings | 1 |
isFullTextHit | |
isPrint | |
link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LSwMxEB5aT56qtuKbHDy6bbabx-bkYdvSChVBC72VvPZSbEW2ov56J7vbKuLBWwiEhAnJN5PMfB_AteWpdQh1kVRGY4AiRZRylkeC5dSmFkPokkxnei_GM3Y35_MG3OxqYbz3ZfKZ74Zm-Zfv1nYTnsp6KaIR3qdNaGLgVtVq7W5dga57Td0TU9WbZI_DkLgV2Chp4FH9oZ1SQseoBdPtpFXGyLK7KUzXfv7iY_zvqg6g812kRx528HMIDb86gtZWpYHUh7YNgyyoWJMJGes3TzRB99IuCWIUji_WZPiun9HTJOgIkkGtiGs_SFaXi5BSnu-2A7PR8CkbR7V2QqT7TBaR0rkUQtK-TyjTknOnTC50ajmCsnEcjyFL0GZ965SOuXOUeqF44rjXKo91cgx7q_XKnwCxVnBulXaUeWYYM5JRTb3RsZU5jfNTaAejLF4qeoxFbY-zv7vPYT9sS5UzeAF7xevGXyKuF-aq3NAve6Ohog |
linkProvider | IEEE |
linkToHtml | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LTwIxEJ4gHvSECsa3PXh0ocv2sT154JFFgZgICTfS116IYMxi1F9vu7ugMR68NU2aNtNMv2k7830AN5rG2jioC7hQ0l1QOAtiStKAkRTrWLsrdE6mMxqzZEruZ3RWgdttLYy1Nk8-s03fzP_yzUqv_VNZK3Zo5M7THdh1uE_Dolpre-4yF7yX5D0hFq1B56nnU7c8HyX2TKo_1FNy8OjXYLSZtsgZWTTXmWrqz1-MjP9d1wE0vsv00OMWgA6hYpdHUNvoNKDSbevQ7XgdazRAiXyzSCIXYOoFcijlxmcr1HuXzy7WRC4URN1SE1d_oE5ZMIJygb67Bkz7vUknCUr1hEC2Cc8CIVPOGMdtG2EiOaVGqJTJWFMHy8pQ54gkcjZrayNkSI3B2DJBI0OtFGkoo2OoLldLewJIa0apFtJgYokiRHGCJbZKhpqnOExPoe6NMn8pCDLmpT3O_u6-hr1kMhrOh4Pxwzns-y0qMggvoJq9ru2lQ_lMXeWb-wUcfaTr |
openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+%2F+International+Conference+on+Software+Engineering&rft.atitle=Could+I+Have+a+Stack+Trace+to+Examine+the+Dependency+Conflict+Issue%3F&rft.au=Wang%2C+Ying&rft.au=Wen%2C+Ming&rft.au=Wu%2C+Rongxin&rft.au=Liu%2C+Zhenwei&rft.date=2019-05-01&rft.pub=IEEE&rft.eissn=1558-1225&rft.spage=572&rft.epage=583&rft_id=info:doi/10.1109%2FICSE.2019.00068&rft.externalDocID=8812128 |