The issue seems to be reproducible in 3.0 only I'll handle it Thanks for the investigation!
On Fri, Apr 19, 2013 at 1:01 AM, Andun Sameera <[email protected]> wrote: > Hi, > > By looking at these results, I have debugged deeper to find something, > > Here what I notice is the SID passed to the method argument is not exists > in the back-end database. I have checked it. > > So why we use this logic to get room types? What is the relationship > between room types and session ? > > Thanks! > > On Thu, Apr 18, 2013 at 6:05 PM, Andun Sameera <[email protected]> wrote: > > > I have did a debug on the following code segment of Conference Service > > Class, > > > > public List<RoomType> getRoomTypes(String SID) { > > Long users_id = sessiondataDao.checkSession(SID); > > Long user_level = userManager.getUserLevelByID(users_id); > > if (authLevelUtil.checkUserLevel(user_level)) { > > User user = userManager.getUserById(users_id); > > return roomManager.getAllRoomTypes(user.getLanguage_id()); > > } > > return null; > > } > > > > When a OM registered user or OM unregistered user clicks on the "click > > here to enter room" link, this code executes two times, > > > > For the fist time, > > > > user_id is -1 and user_level is 1, user=null > > > > For the second time, > > > > user_id is 0 and user_level is -1, > > authLevelUtil.checkUserLevel(user_level) is false > > > > Both time for the particular session no user is found. Is there a error > in > > session persisting logic? > > > > Thanks! > > > > > > On Thu, Apr 18, 2013 at 3:35 PM, Andun Sameera <[email protected]> > wrote: > > > >> OK Maxim, Will have a look. > >> > >> > >> On Thu, Apr 18, 2013 at 3:33 PM, Maxim Solodovnik <[email protected] > >wrote: > >> > >>> Just put breakpoint into this method and take a look what is going on > ... > >>> Currently we just ignoring these errors, but i believe the code should > be > >>> corrected > >>> > >>> > >>> On Thu, Apr 18, 2013 at 5:01 PM, Andun Sameera <[email protected]> > >>> wrote: > >>> > >>> > Hi Maxim, > >>> > > >>> > Is there any particular instruction or methods to investigate about > >>> this ? > >>> > I will look in to this. > >>> > > >>> > Thanks! > >>> > > >>> > On Thu, Apr 18, 2013 at 2:54 PM, Maxim Solodovnik < > >>> [email protected] > >>> > >wrote: > >>> > > >>> > > This need to be investigated ... > >>> > > maybe additional check is necessary like userId/level is not null > ... > >>> > > > >>> > > > >>> > > On Sun, Apr 14, 2013 at 3:22 AM, Andun Sameera <[email protected] > > > >>> > wrote: > >>> > > > >>> > > > Hi All, > >>> > > > > >>> > > > The getRoomTypes method of autoloaderBarOnly, calls the > >>> > > > getRoomTypes(String SID) method of ConferenceService class. There > >>> it > >>> > > > tries to fetch user id form the session suing the backend db like > >>> > > > this, > >>> > > > > >>> > > > Long users_id = sessiondataDao.checkSession(SID); > >>> > > > > >>> > > > That is the point where this fails. As I understood there have to > >>> be a > >>> > > > entry in the back end db related to the invitation and the > >>> > > > user(Internal/External). > >>> > > > > >>> > > > Some instructions or corrections will be needed to proceed. > >>> > > > > >>> > > > Thanks! > >>> > > > > >>> > > > On Thu, Apr 11, 2013 at 4:40 PM, Andun Sameera < > [email protected] > >>> > > >>> > > wrote: > >>> > > > > Hi All, > >>> > > > > > >>> > > > > Just now noticed that when a person click on the link "Click > >>> here to > >>> > > > > enter room", following exceptions are logged in the server > >>> console. > >>> > > > > > >>> > > > > [ERROR] [NioProcessor-2] > org.red5.server.service.ServiceInvoker - > >>> > > > > Error executing call: Service: conferenceservice Method: > >>> getRoomTypes > >>> > > > > Num Params: 1 0: e1ed5f812af1a913fcb55a58d5793864 > >>> > > > > java.lang.reflect.InvocationTargetException: null > >>> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >>> > Method) > >>> > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >>> > > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > >>> > > > > ~[na:1.7.0_17] > >>> > > > > at java.lang.reflect.Method.invoke(Method.java:601) > >>> > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:196) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:115) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:164) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:409) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:132) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(RTMPMinaIoHandler.java:170) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:690) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:407) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:236) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmpe.RTMPEIoFilter.messageReceived(RTMPEIoFilter.java:130) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:410) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:710) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > >>> > > > > [mina-core-2.0.7.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > >>> > > > > [na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > >>> > > > > [na:1.7.0_17] > >>> > > > > at java.lang.Thread.run(Thread.java:722) [na:1.7.0_17] > >>> > > > > Caused by: java.lang.NullPointerException: null > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.openmeetings.remote.ConferenceService.getRoomTypes(ConferenceService.java:416) > >>> > > > > ~[openmeetings-3.0.0-SNAPSHOT.jar:na] > >>> > > > > ... 35 common frames omitted > >>> > > > > > >>> > > > > And also this, > >>> > > > > > >>> > > > > > >>> > > > > ERROR 04-11 16:36:08.544 UserService.java 114998 156 > >>> > > > > org.apache.openmeetings.remote.UserService > >>> [Red5_Scheduler_Worker-1] > >>> > - > >>> > > > > [getUserSelf] > >>> > > > > java.lang.NullPointerException: null > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.apache.openmeetings.remote.UserService.getUserSelf(UserService.java:152) > >>> > > > > ~[openmeetings-3.0.0-SNAPSHOT.jar:na] > >>> > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > >>> > Method) > >>> > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > >>> > > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > >>> > > > > ~[na:1.7.0_17] > >>> > > > > at java.lang.reflect.Method.invoke(Method.java:601) > >>> > > > ~[na:1.7.0_17] > >>> > > > > at > >>> > > > > >>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:196) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> org.red5.server.service.ServiceInvoker.invoke(ServiceInvoker.java:115) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> org.red5.server.net.rtmp.RTMPHandler.invokeCall(RTMPHandler.java:164) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java:409) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(BaseRTMPHandler.java:132) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmpt.RTMPTHandler.messageReceived(RTMPTHandler.java:124) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.net.rtmpt.RTMPTConnection$ProcessJob.execute(RTMPTConnection.java:253) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.red5.server.scheduling.QuartzSchedulingServiceJob.execute(QuartzSchedulingServiceJob.java:56) > >>> > > > > [red5-server.jar:na] > >>> > > > > at > org.quartz.core.JobRunShell.run(JobRunShell.java:213) > >>> > > > [quartz-2.1.6.jar:na] > >>> > > > > at > >>> > > > > >>> > > > >>> > > >>> > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) > >>> > > > > [quartz-2.1.6.jar:na] > >>> > > > > > >>> > > > > > >>> > > > > Is this functionality broken ? Shall I come with a Jira? > >>> > > > > Thanks > >>> > > > > AndunSLG > >>> > > > > > >>> > > > > > >>> > > > > On Thu, Apr 11, 2013 at 1:26 AM, Andun Sameera < > >>> [email protected]> > >>> > > > wrote: > >>> > > > >> Hi All, > >>> > > > >> > >>> > > > >> To check what is going on, I have gone through code where it > >>> starts > >>> > > > >> with > >>> > > > > >>> > > > >>> > > >>> > singlewebapp/WebContent/src/base/hibernate/hibRtmpConnection.getInvitationByHash > >>> > > > >> method and until showing the the dash board. In that I have > >>> noticed > >>> > > > >> that following code segment of the > >>> > > > >> > >>> > > > >>> > singlewebapp/WebContent/src/modules/invitation/invitationQuickLoader.lzx > >>> > > > >> handles the login mechanism of the process. > >>> > > > >> > >>> > > > >> <method name="login"> > >>> > > > >> this.userlang = Number(this.languages.getValue()); > >>> > > > >> > >>> this.labellanguages.setAttribute('visibility','hidden'); > >>> > > > >> > this.languages.setAttribute('visibility','hidden'); > >>> > > > >> this.connect.setAttribute('visibility','hidden'); > >>> > > > >> > >>> this.labelloading.setAttribute('visibility','visible'); > >>> > > > >> > >>> > > > >> parent.userlang = Number(this.userlang); > >>> > > > >> > >>> > > > >> var userObject = new Array(); > >>> > > > >> > >>> > > > >> > >>> > > > > >>> > > > >>> > > >>> > canvas.setAttribute('currentuser',canvas.thishib.currentInvitation.invitedEMail); > >>> > > > >> canvas.setAttribute('user_id',-1); > >>> > > > >> canvas.setAttribute('firstName',""); > >>> > > > >> > >>> > > > > >>> > > > >>> > > >>> > canvas.setAttribute('lastName',canvas.thishib.currentInvitation.invitedEMail); > >>> > > > >> canvas.setAttribute('mail',canvas.mail); > >>> > > > >> canvas.setAttribute('lastLogin',''); > >>> > > > >> canvas.setAttribute('official_code',''); > >>> > > > >> canvas.setAttribute('picture_uri',''); > >>> > > > >> canvas.setAttribute('language',''); > >>> > > > >> > >>> > > > >> userObject["login"] = > >>> > > > canvas.thishib.currentInvitation.invitedEMail; > >>> > > > >> userObject["firstname"] = ""; > >>> > > > >> userObject["lastname"] = > >>> > > > >> canvas.thishib.currentInvitation.invitedEMail; > >>> > > > >> userObject["adresses"] = new Array(); > >>> > > > >> //userObject["adresses"]["emails"] = new Array(); > >>> > > > >> userObject["adresses"]["email"] = > >>> > > > >> canvas.thishib.currentInvitation.invitedEMail; > >>> > > > >> //userObject["adresses"]["emails"][0]["mail"] = > new > >>> > > Array(); > >>> > > > >> > >>> //userObject["adresses"]["emails"][0]["mail"]["email"] = > >>> > > > >> canvas.thishib.currentInvitation.invitedEMail; > >>> > > > >> > >>> > > > >> hib.userobject = userObject; > >>> > > > >> > >>> > > > >> hib.userlang = Number(this.userlang); > >>> > > > >> canvas.thishib.loaderVar = new > >>> > > lz.autoloaderBarOnly(canvas); > >>> > > > >> canvas.thishib.loaderVar.setProgress(); > >>> > > > >> this.close(); > >>> > > > >> > >>> canvas.thishib.loaderVar.getLanguageByIdAndMax.doCall(); > >>> > > > >> </method> > >>> > > > >> > >>> > > > >> Parallel to this I have checked > >>> > > > >> /singlewebapp/WebContent/src/base/auth/checkLoginData.lzx to > >>> find > >>> > the > >>> > > > >> login process of given user name name and password. There I > >>> found > >>> > that > >>> > > > >> after submitting correct user name and password, the method > >>> > > > >> xmlcrm.loginUser return a user object which have all the > >>> details of > >>> > > > >> user. That object is assigned to hib.userobject as follows. > >>> > > > >> > >>> > > > >> hib.userobject = value; > >>> > > > >> > >>> > > > >> So that means in the above code of invitationQuickLoader, > >>> > > > >> hib.userobject = userObject; have to do the same thing. > >>> > > > >> > >>> > > > >> But I found that on the way of showing the dashboard, in the > >>> > > > >> > >>> > > > > >>> > > > >>> > > >>> > /singlewebapp/WebContent/src/modules/invitation/autoloaderBarOnly.getRoomTypes > >>> > > > >> method it fails to get room type. Debug log shows that > >>> getRoomTypes > >>> > : > >>> > > > >> null. That means when we logged with invitation hash it cant > get > >>> > these > >>> > > > >> room details. > >>> > > > >> > >>> > > > >> Thanks! > >>> > > > >> > >>> > > > >> On Thu, Apr 11, 2013 at 12:02 AM, Andun Sameera < > >>> [email protected] > >>> > > > >>> > > > wrote: > >>> > > > >>> Hi All, > >>> > > > >>> > >>> > > > >>> I am investigating following issue at [1]. In that process I > >>> > > > >>> encountered following problem. I have scheduled some meetings > >>> using > >>> > > > >>> following methods, > >>> > > > >>> > >>> > > > >>> - Clicking on the calender date to create a meeting and > >>> sending an > >>> > > > >>> invitation to registered OM users /external people via iCal > >>> > > > >>> - Clicking on the calender date to create a meeting and > >>> sending an > >>> > > > >>> invitation to registered OM users /external people via simple > >>> mail > >>> > > > >>> - Composing a mail with Book Conference room option and > sending > >>> > that > >>> > > > >>> mail to registered OM users /external people. > >>> > > > >>> > >>> > > > >>> In each of these situations people will get a mail with link > >>> "Click > >>> > > > >>> here to enter room". When I click those links it redirects > to a > >>> > > > >>> dashboard and not to the room. This happens to the registered > >>> OM > >>> > > users > >>> > > > >>> as well as unregistered people. Also when I looked at the > >>> profile > >>> > of > >>> > > > >>> that page I found all details are empty for both registered > >>> users > >>> > > case > >>> > > > >>> and external user case. > >>> > > > >>> > >>> > > > >>> But with the registered user's case. When we logged in those > >>> > meeting > >>> > > > >>> rooms are displayed. So why this want work with clicking the > >>> link > >>> > in > >>> > > > >>> email? Did something wrong with my configuration or setup ? > >>> Also I > >>> > am > >>> > > > >>> checking on > >>> > > > > >>> > > >>> > singlewebapp/WebContent/src/modules/invitation/invitationQuickLoader.lzx > >>> > > > >>> to find a reason. > >>> > > > >>> > >>> > > > >>> [1] - https://issues.apache.org/jira/browse/OPENMEETINGS-481 > >>> > > > >>> > >>> > > > >>> Thanks! > >>> > > > >>> -- > >>> > > > >>> Regards > >>> > > > >>> Andun S.L. Gunawardana > >>> > > > >>> Undergraduate > >>> > > > >>> Department of Computer Science And Engineering > >>> > > > >>> University of Moratuwa > >>> > > > >>> Sri Lanka > >>> > > > >>> > >>> > > > >>> Blog - http://www.insightforfuture.blogspot.com/ > >>> > > > >>> LinkedIn - > >>> > > > http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >>> > > > >>> Twitter -http://twitter.com/AndunSLG > >>> > > > >> > >>> > > > >> > >>> > > > >> > >>> > > > >> -- > >>> > > > >> Regards > >>> > > > >> Andun S.L. Gunawardana > >>> > > > >> Undergraduate > >>> > > > >> Department of Computer Science And Engineering > >>> > > > >> University of Moratuwa > >>> > > > >> Sri Lanka > >>> > > > >> > >>> > > > >> Blog - http://www.insightforfuture.blogspot.com/ > >>> > > > >> LinkedIn - > >>> > > http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >>> > > > >> Twitter -http://twitter.com/AndunSLG > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > -- > >>> > > > > Regards > >>> > > > > Andun S.L. Gunawardana > >>> > > > > Undergraduate > >>> > > > > Department of Computer Science And Engineering > >>> > > > > University of Moratuwa > >>> > > > > Sri Lanka > >>> > > > > > >>> > > > > Blog - http://www.insightforfuture.blogspot.com/ > >>> > > > > LinkedIn - > >>> > > http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >>> > > > > Twitter -http://twitter.com/AndunSLG > >>> > > > > >>> > > > > >>> > > > > >>> > > > -- > >>> > > > Regards > >>> > > > Andun S.L. Gunawardana > >>> > > > Undergraduate > >>> > > > Department of Computer Science And Engineering > >>> > > > University of Moratuwa > >>> > > > Sri Lanka > >>> > > > > >>> > > > Blog - http://www.insightforfuture.blogspot.com/ > >>> > > > LinkedIn - > >>> > http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >>> > > > Twitter -http://twitter.com/AndunSLG > >>> > > > > >>> > > > >>> > > > >>> > > > >>> > > -- > >>> > > WBR > >>> > > Maxim aka solomax > >>> > > > >>> > > >>> > > >>> > > >>> > -- > >>> > Regards > >>> > Andun S.L. Gunawardana > >>> > Undergraduate > >>> > Department of Computer Science And Engineering > >>> > University of Moratuwa > >>> > Sri Lanka > >>> > > >>> > Blog - http://www.insightforfuture.blogspot.com/ > >>> > LinkedIn - > >>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >>> > Twitter -http://twitter.com/AndunSLG > >>> > > >>> > >>> > >>> > >>> -- > >>> WBR > >>> Maxim aka solomax > >>> > >> > >> > >> > >> -- > >> Regards > >> Andun S.L. Gunawardana > >> Undergraduate > >> Department of Computer Science And Engineering > >> University of Moratuwa > >> Sri Lanka > >> > >> Blog - http://www.insightforfuture.blogspot.com/ > >> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > >> Twitter -http://twitter.com/AndunSLG > >> > >> > >> > >> > >> > > > > > > > > -- > > Regards > > Andun S.L. Gunawardana > > Undergraduate > > Department of Computer Science And Engineering > > University of Moratuwa > > Sri Lanka > > > > Blog - http://www.insightforfuture.blogspot.com/ > > LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > > Twitter -http://twitter.com/AndunSLG > > > > > > > > > > > > > > -- > Regards > Andun S.L. Gunawardana > Undergraduate > Department of Computer Science And Engineering > University of Moratuwa > Sri Lanka > > Blog - http://www.insightforfuture.blogspot.com/ > LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 > Twitter -http://twitter.com/AndunSLG > -- WBR Maxim aka solomax
