Friday, December 5, 2008

Debugging JBoss AOP Apps Tutorial - Part 3

This is the final part of our tutorial on debugging. In this part, we will show how to debug the overloaded-advices example step by step. This example comes bundled with JBoss AOP release, so all you need to do is to download the 2.0.0.GA release and start following the next steps.

First, create a project for the overloaded-advices tutorial example using Eclipse (the URL location is jboss-aop-2.0.0.GA/docs/aspect-framework/examples/overloaded-advices) and solve classpath issues by adding the JBoss AOP jars to the classpath (just include the jars of the jboss-aop-2.0.0.GA/lib directory).

Now, add a breakpoint to the Driver class, line 29, where there is a call to POJO constructor, the first joinpoint of the example that will be intercepted:








Configure a Java Application execution to run the Driver class, setting the AOP arguments as has been showed in the first part of this tutorial.

  1. Start debugging this application.
  2. Once Eclipse stops at line 29, press F5 to enter the constructor execution joinpoint. This is what you are going to see:









  3. You see that the previous step resulted in a stack trace that shows a wrapper method belonging to the POJO class: POJO.POJO_new_$aop(), followed by the wrapper that is our focus of interest, the one belonging to the Advisor class: POJO$POJOAdvisor.POJOAdvisor_new_$aop().
    However, the top line of the stack is one of the “noises over the line” mentioned in the previous tutorial part. That line is a call to a ConstructorInfo method that returns some a sort of concurrency lock. So, press F7 to return to the Advisor wrapper method. Once you do this, you should see the stack trace below:









  4. Whenever you are in the Advisor wrapper method, you should press F5. This is what we get once we press F5:











  5. Oh no! Another “noise”. This time, more code handling locks. Now you know what to do. Press F7, return to the wrapper method, and press F5 on this wrapper until you enter a new block of code. Continue this process until you have finally entered the Joinpoint class.
    These are the “noises” you will run into during this process:































    Note that the second “noise” (ConstructorInfo.hasAdvices()) will appear twice in a row.
    After step returning those “noise” elements with F7, Eclipse finally enters the first advice execution:











  6. Once you get to the advice, debug it as you would normally. As this is a just tutorial, we are going to press F6 until we return to the Joinpoint class:











  7. Back to the JoinPoint class. Press F5 until you find the next advice. Before getting there, you are going to run into another couple of “noise” elements:












    On the screen above, you see an info call at the top of the stack. As mentioned previously, this is something you should skip with F7. Right below it in the stack, there are three calls to constructors (<init> methods). Again, we have mentioned previously that calls to constructors should be skipped with F7. Skipping them and then pressing F5 will take you to the next advice:













  8. You should debug this advice as you did in step 6, with F6. There is one line, however, that you must treat differently and press F5: line 39 of JoinPointAspect, containing the statement return invocation.invokeNext();

    This line, as you should know, is going to invoke the next around advice. If there are no around advice, it is going to call the joinpoint itself. So, if you want to debug the POJO constructor execution, you must enter the invocation.invokeNext() call. After pressing F5 in this line, you will see the following stack:












  9. At this point, you have reached the joinpoint being intercepted. Whether it is a method or constructor, you can debug it as if this was a normal Java application. If it is a field set or a field get, you are not going to be able of debugging it though. But you can check the new value of the field after a field set joinpoint once you get back to your normal application at step 13.
    In this case, the joinpoint is a default constructor, so there are no lines to debug at all. Just press F6 to return to the previous item in the stack:













  10. So, we are back to the Joinpoint class. Now, you should press F5 again following the tips given in step 5. Doing so will take us to the last advice:











  11. Repeat step 6 now, pressing F6 to return to the Joinpoint class:











  12. Pressing F5 now does not take us to the next advice,as all advice have already run. It takes us back to the advisor wrapper method.











  13. You are done! Just press F7 twice to exit both wrappers and go back to the driver class. Now you can continue debugging. Try to enter the next joinpoints of the overloaded-advices example to see the other advice running! Remember that you must press F5 on field read and field write joinpoints, in order to enter their wrapper method code.



Next Steps

Once you have walked-through the steps to debug the overloaded-advices example, you are ready to debug any other JBoss AOP application you like. Try doing so using a different JBoss AOP tutorial, or just try debugging your own JBoss AOP application.

The next time you need to debug an application that uses JBoss AOP, I hope it is going to be easier for you to track bugs down with the tips we have presented in this tutorial. Good luck!

40 comments:

天真 said...

無碼影片,情人視訊,正妹牆,聊天室,ut聊天室,視訊聊天室,情色,微風成人,豆豆聊天室,視訊美女,85cc成人片,85cc成人片觀看,交友戀愛進行室,嘟嘟成人網,成人,色情,美女,色情小說,情色貼圖,情色小說,交友覓戀會館,情色文學,交友104速配網,視訊交友,成人韭南籽,18成人,ut男同志聊天室,成人圖片區,交友104相親網,0951成人頻道下載,男同志聊天室,成人貼圖,成人影片,tt1069同志交友網,成人視訊,aio交友愛情館,情色視訊,情色視訊,色情遊戲,交友戀愛小站,

said...

^^~~輕輕鬆鬆的逛部落格,多謝有您的分享哦~~~........................................

紅包 said...

從未遭遇失敗的人,對自己或是別人,都是一知半解的。 ..................................................

yahoo said...

只用微笑說話的人,才能擔當重任。........................................

easy said...

責人之心責己,恕己之心恕人。 ....................................................

忠琬 said...

pleasure to find such a good artical! please keep update!! ........................................

于雅慧毓 said...

性感辣妹辣妹聊天情色文學情色遊戲情色自拍情色聊天情趣聊天室情趣自拍免費情趣影片素人自拍情趣短片性感辣妹性感美女美女性感遊戲性感遊戲裸體遊戲美女裸體女生裸體正妹裸體做愛偷拍偷拍自拍性愛偷拍偷拍視訊一夜情視訊一夜情聊天室一夜情交流網一夜情色網洪爺色情貼85cc影片5278影片網77p2p影片洪爺免費色情85cc觀看5278貼圖區77p2p觀看洪爺成年人網85cc成人片sogo成人77p2p成人片洪爺貼圖85cc影片區go2av影片77p2p影片區洪爺色論壇85cc免費影片區go2免費影片77p2p免費影片區洪爺影城85cc影城go2影片77p2p影城

NicolaSigel0508 said...

go2av-視訊網 蕃薯藤交友 視訊聊天sexy girls get fucked辣妹 視訊交友天堂90739 高雄視訊34c正妹 免費視訊34c辣妹微風論壇 月宮貼圖色妹妹嘟嘟情人色網 免費視訊gogo 080豆豆出租情人視訊 999成人性站 拓網成人 視訊 純愛迷情成人綜合論壇 性感遊戲 辣妹自拍哈尼視訊 情色視訊 拓網交友情色視訊 520sex-情色視訊 拓網視訊交友 sexy girl色妹妹視訊 sex520貼片援交視訊聊天室 新浪視訊 色妹妹視訊高雄援交 34c視訊網愛聊天室 一對多視訊拓網辣妹視訊 176視訊聊天室 av最前線 視訊交友90739南台灣視訊 性愛貼圖 視訊聊天室90739 show-live視訊情色 網 美女米克綜合論壇視訊 日本avdvd女優美女寫真 完美女人辣妹鋼管脫衣秀 全裸美女圖片 辣妹視訊自拍美女聊天室 777美女dvd辣妹視訊 網路美女辣妹陪聊 台灣美女寫真集圖 成人卡通美女a片 視訊美女免費試玩 日本美女短片 色情漫畫777美女dvdav 亞洲藝人美女寫真 台灣亞洲名模美女 美女自拍走光貼圖 無碼女優美女圖光碟 護士美女自拍貼圖 巨乳美女寫真 自拍情趣美女 性感熱辣美女女優寫真

雲亨 said...

一夜情視訊網際論壇一夜激情聊天室一對多美女視訊一對一視訊一對一視訊聊天一對一視訊辣妹妹影音視訊聊天室一本道 a片 東京熱avdvd影片一本道 a片 東京熱av免費影片一本道 a片 東京熱免費成人影片觀賞一本道 a片 東京熱成人圖片區亞洲禁果名模影城甜心寶貝直播貼片玩美女人視訊網美女短片免費試看視訊交友網50024彩虹avdvdsex888免費看影片亞亞 dvd 光碟百事免費av視訊聊天網免費線上 aa 片試看85CCsex貼片網s383情色大網咖熟女自拍sex免費成人影片情境坊歡愉用品 視訊泳裝秀拓網交友免費成人影片,104免費成人情色文學小說視訊主播脫衣秀gogo2sexplus28論壇米克綜合論壇聊天室交友av成人網g8mm 視訊壞朋友論壇視訊美女msvt中部人聊天室視訊網愛聊天室網路援交168論壇辣妹貼圖新竹援交38ga片下載

少于毓芝 said...

I love readding, and thanks for your artical. ........................................

AshantiHallenb54165 said...

路過--你好嗎..很棒的BLOG.........................................

韋于倫成 said...

不只BLOG內容很棒留言也很精采 XDDDD.........................

705RupertJ_Brobst0 said...

線上免費成人觀賞 視訊 摸摸耳聊天 免費av 視訊交友網 女優 性感寶貝 成人影片交流 偷拍性交 ut色情聊天室 女人愛愛 情趣 同志18禁 少女裸睡 aa洪爺影城 a片面 情色守門員 麗的色情小戲 一夜情 383影音live秀 影音視訊 玩美女人試看 美女女優寫真 辣妹自拍貼圖網 人妻線上看 免費影片 77p2p 85街 a圖網a圖貼圖 美女寫真 85cc+ 免費成人 85st 視訊聊天 貼圖區 援交 情人視訊 免費脫衣秀 dvd av女優 洪爺影城下載區 大奶影片 sex888貼圖區 170部a下載 日本巨乳a片 百性線上直播網 後宮電影院長 限制級視訊 0204視訊美女 免費性愛片 正妹日報

ShilaL_Kappler said...

一個人最大的敵人常是自己。 ............................................................

俊翔劉 said...

真正的朋友不會把友誼掛在嘴巴上 ............................................................

暴枝盈 said...

凡是遇到困擾的問題,不要把它當作可怕的,討厭的,無奈的遭遇,而要把它當作歷練、訓練和幫助。........................................

明文吳 said...

很棒的分享~留言支持!.................................................................

穆靜如 said...

blog不錯唷~我會常常來看的~加油~!!

黃允妏 said...

生存乃是不斷地在內心與靈魂交戰;寫作是坐著審判自己。......................................................................

蕙春蕙春 said...

幸福不是一切,人還有責任。....................................................................

淑娟淑娟 said...

所有的資產,在不被諒解時,都成了負債............................................................

吳婷婷 said...

人有兩眼一舌,是為了觀察倍於說話的緣故。............................................................

怡潔怡潔 said...

嗨!很喜歡來這欣賞你的作品,幫你推推推當上人氣王唷..................................................................

雅俊芬凱陳許 said...

我來湊熱鬧的~~^^ 要平安快樂哦..................................................................

rreynolds385 said...

hello~來拜訪你囉~部落格很棒^^!..................................................................

張怡 said...

好文!值得一推~~加油哦!............................................................

莊雅和莊雅和莊雅和 said...

faith will move mountains. ..................................................

淑娟淑娟淑娟 said...

喜歡自己的另一層意義是「接納自己」。..................................................

香昱信張君林 said...

所有的資產,在不被諒解時,都成了負債.................................................................

李威昌v彥霖 said...

從來名利地,皆起是非心。.....................................................

家唐銘 said...

厚 !!!等了好久的更新~~一定要支持的啦(ΘωΘ)......................................................

莉真詹詹莉真詹詹 said...

來囉~先問聲安............................................................

張忠張鴻水玉 said...

謝謝原PO的熱情分享 大家也要一起分享喔 感恩(≧ω≦)............................................................

韋陳富 said...

Extremes meet. 長處即短處。物極必反。否極泰來!一切會更好!............................................................

偉曹琬 said...

心平氣和~祝你也快樂~~..................................................

冠陳儒 said...

成功多屬於那些很快做出決定,卻又不輕易變更的人。而失敗也經常屬於那些很難做出決定,卻又經常變更的人.................................................... ............

偉冠儒冠儒倫 said...

時間就是塑造生命的材料。

瑰潼 said...

幸福不是一切,人還有責任。..................................................... ............

黃英吳思潔吳思潔邦 said...

幸福不是一切,人還有責任。..................................................... ............

宜DimpleHollow欣 said...

人必須心懷希望,才會活的快樂,日子才過得充實,有意義,有朝氣,有信心。......................................... ........................