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

Reply via email to