OSDir


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wrong MySQL(The RuntimeException could not be mapped to a response, re-throwing to the HTTP container)


The solution is below query

select x.* from (SELECT x.* FROM m_client c, m_office o,
(SELECT a.loanCycle, a.activeLoans, b.lastLoanAmount, d.activeSavings,
d.totalSavings FROM
  (SELECT IFNULL(MAX(l.loan_counter),0) AS loanCycle, COUNT(l.id) AS
activeLoans FROM m_loan l WHERE l.loan_status_id=300 AND l.client_id=8) a,
  (SELECT count(l.id), IFNULL(l.principal_amount,0) AS 'lastLoanAmount'
FROM m_loan l WHERE l.client_id=8
  AND l.disbursedon_date = (SELECT IFNULL(MAX(disbursedon_date),NOW()) FROM
m_loan where client_id=8 and loan_status_id=300) group by
l.principal_amount) b,
 (SELECT COUNT(s.id) AS 'activeSavings',
IFNULL(SUM(s.account_balance_derived),0) AS 'totalSavings'
 FROM m_savings_account s WHERE s.status_enum=300 AND s.client_id=8) d) x
WHERE c.id=8 AND o.id = c.office_id AND o.hierarchy LIKE CONCAT('.', '%'))
x;

But i need the class where it was defined so that it can be update.

Regards

On Sat, Jun 9, 2018 at 4:54 PM, Emmanuel Njoku <einjoku@xxxxxxxxx> wrote:

> please assist on this request. I have identify the issue and solution to
> it but i am seriously looking on the code "incubator-fineract" so that i
> can update it. There is no "group by" on the Mysql query.
>
> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: In
> aggregated query without GROUP BY, expression #2 of SELECT list contains
> nonaggregated column 'mifostenant-default.l.principal_amount'; this is
> incompatible with sql_mode=only_full_group_by
>
>
> /v1/runreports/ClientSummary","parameters":{"genericResultSet":["false"],"
> R_clientId":["10"]}}
> 197280 [http-bio-443-exec-1] ERROR o.s.b.context.web.ErrorPageFilter -
> Forwarding to error page from request [/api/v1/runreports/ClientSummary]
> due to exception [StatementCallback; bad SQL grammar [select x.* from
> (SELECT x.* FROM m_client c, m_office o,
> (
>        SELECT a.loanCycle, a.activeLoans, b.lastLoanAmount,
> d.activeSavings, d.totalSavings FROM
>   (SELECT IFNULL(MAX(l.loan_counter),0) AS loanCycle, COUNT(l.id) AS
> activeLoans FROM m_loan l WHERE l.loan_status_id=300 AND l.client_id=10) a,
>   (SELECT count(l.id), IFNULL(l.principal_amount,0) AS 'lastLoanAmount'
> FROM m_loan l WHERE l.client_id=10 AND l.disbursedon_date = (SELECT
> IFNULL(MAX(disbursedon_date),NOW()) FROM m_loan where client_id=10 and
> loan_status_id=300)) b,
>  (SELECT COUNT(s.id) AS 'activeSavings', IFNULL(SUM(s.account_balance_derived),0)
> AS 'totalSavings' FROM m_savings_account s WHERE s.status_enum=300 AND
> s.client_id=10) d
> ) x
> WHERE c.id=10 AND o.id = c.office_id AND o.hierarchy LIKE CONCAT('.',
> '%')) x]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
> In aggregated query without GROUP BY, expression #2 of SELECT list contains
> nonaggregated column 'mifostenant-default.l.principal_amount'; this is
> incompatible with sql_mode=only_full_group_by]
> org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad
> SQL grammar [select x.* from (SELECT x.* FROM m_client c, m_office o,
> (
>        SELECT a.loanCycle, a.activeLoans, b.lastLoanAmount,
> d.activeSavings, d.totalSavings FROM
>   (SELECT IFNULL(MAX(l.loan_counter),0) AS loanCycle, COUNT(l.id) AS
> activeLoans FROM m_loan l WHERE l.loan_status_id=300 AND l.client_id=10) a,
>   (SELECT count(l.id), IFNULL(l.principal_amount,0) AS 'lastLoanAmount'
> FROM m_loan l WHERE l.client_id=10 AND l.disbursedon_date = (SELECT
> IFNULL(MAX(disbursedon_date),NOW()) FROM m_loan where client_id=10 and
> loan_status_id=300)) b,
>  (SELECT COUNT(s.id) AS 'activeSavings', IFNULL(SUM(s.account_balance_derived),0)
> AS 'totalSavings' FROM m_savings_account s WHERE s.status_enum=300 AND
> s.client_id=10) d
> ) x
> WHERE c.id=10 AND o.id = c.office_id AND o.hierarchy LIKE CONCAT('.',
> '%')) x]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
> In aggregated query without GROUP BY, expression #2 of SELECT list contains
> nonaggregated column 'mifostenant-default.l.principal_amount'; this is
> incompatible with sql_mode=only_full_group_by
>         at org.springframework.jdbc.support.SQLExceptionSubclassTranslator
> .doTranslate(SQLExceptionSubclassTranslator.java:91)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTr
> anslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTr
> anslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:413)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:468)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:523)
> ~[spring-jdbc-4.0.7.RELEASE.jar:4.0.7.RELEASE]
>         at org.apache.fineract.infrastructure.dataqueries.service.
> GenericDataServiceImpl.fillGenericResultSet(GenericDataServiceImpl.java:59)
> ~[classes/:na]
>         at org.apache.fineract.infrastructure.dataqueries.service.
> ReadReportingServiceImpl.retrieveGenericResultset(
> ReadReportingServiceImpl.java:181) ~[classes/:na]
>         at org.apache.fineract.infrastructure.dataqueries.
> api.RunreportsApiResource.runReport(RunreportsApiResource.java:121)
> ~[classes/:na]
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ~[na:1.8.0_171]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
>         at java.lang.reflect.Method.invoke(Method.java:498)
> ~[na:1.8.0_171]
>         at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(
> JavaMethodInvokerFactory.java:60) ~[jersey-server-1.17.jar:1.17]
>         at com.sun.jersey.server.impl.model.method.dispatch.
> AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(
> AbstractResourceMethodDispatchProvider.java:205)
> ~[jersey-server-1.17.jar:1.17]
>
>
>
> On Sat, Jun 9, 2018 at 3:25 PM, Ed Cable <edcable@xxxxxxxxx> wrote:
>
>> Emmanuel,
>>
>> Please start a new message thread if you have a different support query.
>> You can do so my creating a new email with a relevant subject line and
>> sending it to the respective mailing list.
>>
>> We need to keep each discussion thread relevant and on-topic. Thank you
>> for using the mailing lists though!
>>
>> Cheers,
>>
>> Ed
>>
>> On Sat, Jun 9, 2018 at 3:00 AM Emmanuel Njoku <einjoku@xxxxxxxxx> wrote:
>>
>>> who can assist me on this error message. I obtain this message after
>>> creation of new Data table mapped to client*.*
>>>
>>>
>>> Jun 09, 2018 10:45:22 AM com.sun.jersey.spi.container.ContainerResponse
>>> mapMappableContainerException
>>> SEVERE: The RuntimeException could not be mapped to a response,
>>> re-throwing
>>> to the HTTP container
>>> java.lang.NullPointerException
>>> at
>>> org.apache.fineract.infrastructure.security.utils.SQLInjecti
>>> onValidator.validateSQLInput(SQLInjectionValidator.java:36)
>>> at
>>> org.apache.fineract.infrastructure.security.utils.ColumnVali
>>> dator.validateSqlInjection(ColumnValidator.java:95)
>>> at
>>> org.apache.fineract.infrastructure.dataqueries.service.ReadW
>>> riteNonCoreDataServiceImpl.retrieveDataTableGenericResultSet
>>> (ReadWriteNonCoreDataServiceImpl.java:1190)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>> ssorImpl.java:62)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>> thodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> at
>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsin
>>> gReflection(AopUtils.java:317)
>>> at
>>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(
>>> JdkDynamicAopProxy.java:201)
>>> at com.sun.proxy.$Proxy148.retrieveDataTableGenericResultSet(Unknown
>>> Source)
>>> at
>>> org.apache.fineract.infrastructure.dataqueries.api.
>>> DatatablesApiResource.getDatatable(DatatablesApiResource.java:174)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>>> ssorImpl.java:62)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>>> thodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:498)
>>> at
>>> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invo
>>> ke(JavaMethodInvokerFactory.java:60)
>>> at
>>> com.sun.jersey.server.impl.model.method.dispatch.AbstractRes
>>> ourceMethodDispatchProvider$TypeOutInvoker._dispatch(Abstr
>>> actResourceMethodDispatchProvider.java:185)
>>> at
>>> com.sun.jersey.server.impl.model.method.dispatch.ResourceJav
>>> aMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
>>> at
>>> com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(
>>> HttpMethodRule.java:302)
>>> at
>>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accep
>>> t(RightHandPathRule.java:147)
>>> at
>>> com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accep
>>> t(ResourceClassRule.java:108)
>>> at
>>> com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accep
>>> t(RightHandPathRule.java:147)
>>> at
>>> com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule
>>> .accept(RootResourceClassesRule.java:84)
>>> at
>>> com.sun.jersey.server.impl.application.WebApplicationImpl._h
>>> andleRequest(WebApplicationImpl.java:1511)
>>> at
>>> com.sun.jersey.server.impl.application.WebApplicationImpl._h
>>> andleRequest(WebApplicationImpl.java:1442)
>>> at
>>> com.sun.jersey.server.impl.application.WebApplicationImpl.ha
>>> ndleRequest(WebApplicationImpl.java:1391)
>>> at
>>> com.sun.jersey.server.impl.application.WebApplicationImpl.ha
>>> ndleRequest(WebApplicationImpl.java:1381)
>>> at
>>> com.sun.jersey.spi.container.servlet.WebComponent.service(We
>>> bComponent.java:416)
>>> at
>>> com.sun.jersey.spi.container.servlet.ServletContainer.servic
>>> e(ServletContainer.java:538)
>>> at
>>> com.sun.jersey.spi.container.servlet.ServletContainer.servic
>>> e(ServletContainer.java:716)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>>> lter(ApplicationFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>>> licationFilterChain.java:208)
>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte
>>> r.java:52)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>>> lter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>>> licationFilterChain.java:208)
>>> at
>>> org.springframework.security.web.access.intercept.FilterSecu
>>> rityInterceptor.invoke(FilterSecurityInterceptor.java:108)
>>> at
>>> org.springframework.security.web.access.intercept.FilterSecu
>>> rityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>>> lter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>>> licationFilterChain.java:208)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:330)
>>> at
>>> org.springframework.security.web.access.intercept.FilterSecu
>>> rityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>> at
>>> org.springframework.security.web.access.intercept.FilterSecu
>>> rityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.access.ExceptionTranslation
>>> Filter.doFilter(ExceptionTranslationFilter.java:113)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.authentication.AnonymousAut
>>> henticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.servletapi.SecurityContextH
>>> olderAwareRequestFilter.doFilter(SecurityContextHolder
>>> AwareRequestFilter.java:154)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.apache.fineract.infrastructure.security.filter.TwoFactor
>>> AuthenticationFilter.doFilter(TwoFactorAuthenticationFilter.java:122)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.context.request.async.WebAs
>>> yncManagerIntegrationFilter.doFilterInternal(WebAsyncManag
>>> erIntegrationFilter.java:50)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter
>>> (OncePerRequestFilter.java:107)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.authentication.www.BasicAut
>>> henticationFilter.doFilter(BasicAuthenticationFilter.java:201)
>>> at
>>> org.apache.fineract.infrastructure.security.filter.TenantAwa
>>> reBasicAuthenticationFilter.doFilter(TenantAwareBasicAuthe
>>> nticationFilter.java:153)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.context.SecurityContextPers
>>> istenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.access.channel.ChannelProce
>>> ssingFilter.doFilter(ChannelProcessingFilter.java:144)
>>> at
>>> org.springframework.security.web.FilterChainProxy$VirtualFil
>>> terChain.doFilter(FilterChainProxy.java:342)
>>> at
>>> org.springframework.security.web.FilterChainProxy.doFilterIn
>>> ternal(FilterChainProxy.java:192)
>>> at
>>> org.springframework.security.web.FilterChainProxy.doFilter(F
>>> ilterChainProxy.java:160)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>>> lter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>>> licationFilterChain.java:208)
>>> at
>>> org.springframework.boot.context.web.ErrorPageFilter.doFilte
>>> r(ErrorPageFilter.java:108)
>>> at
>>> org.springframework.boot.context.web.ErrorPageFilter.access$
>>> 000(ErrorPageFilter.java:58)
>>> at
>>> org.springframework.boot.context.web.ErrorPageFilter$1.doFil
>>> terInternal(ErrorPageFilter.java:87)
>>> at
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter
>>> (OncePerRequestFilter.java:107)
>>> at
>>> org.springframework.boot.context.web.ErrorPageFilter.doFilte
>>> r(ErrorPageFilter.java:100)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>>> lter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>>> licationFilterChain.java:208)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(Standar
>>> dWrapperValve.java:219)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(Standar
>>> dContextValve.java:110)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(A
>>> uthenticatorBase.java:506)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHo
>>> stValve.java:169)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo
>>> rtValve.java:103)
>>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa
>>> lve.java:962)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(Standard
>>> EngineValve.java:116)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
>>> apter.java:445)
>>> at
>>> org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>>> tractHttp11Processor.java:1115)
>>> at
>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
>>> .process(AbstractProtocol.java:637)
>>> at
>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>>> JIoEndpoint.java:318)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>> Executor.java:1149)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>> lExecutor.java:624)
>>> at
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.
>>> run(TaskThread.java:61)
>>> at java.lang.Thread.run(Thread.java:748)
>>>
>>> On Sat, Jun 9, 2018 at 7:20 AM, Raunak Sett <sett.raunak@xxxxxxxxx>
>>> wrote:
>>>
>>> > We should use Angular Material. We should have consistent experience
>>> > across all platforms and given that we are already following material
>>> > design guidelines on a lot of our android clients as well as web. So it
>>> > would be easier if we just have a common UI/UX guidelines for the
>>> > consistency.
>>> >
>>> > On Fri, Jun 8, 2018 at 10:13 PM Abhay Chawla <abhay.chawla97@xxxxxxxxx
>>> >
>>> > wrote:
>>> >
>>> >> Hello everyone,
>>> >>
>>> >> After some discussion, Anwesh and I have a come up with the following
>>> >> points regarding the decision to use Angular Material or bootswatch
>>> and
>>> >> ng-bootstrap for the new MifosX Web App (Angular 6):
>>> >>
>>> >> 1) ng-bootstrap is a wrapper over bootstrap.js which contains a set of
>>> >> Angular Directives that can be implemented without any dependencies on
>>> >> jQuery or popper.js  https://ng-bootstrap.github.io/#/home
>>> >> 2) Bootswatch provides a collection of themes(21 + 1 default) for
>>> >> Bootstrap  https://github.com/thomaspark/bootswatch/
>>> >> 3) Bootswatch provides with an API which can be integrated with the
>>> >> platform for theme configuration easily and provide the organizations
>>> with
>>> >> a choice from these 21 themes  https://bootswatch.com/api/4.json
>>> >> 4) We are currently using the bootswatch material theme to compete and
>>> >> provide with a similar kind of look as by angular-material
>>> >> 5) New themes if required can be configured easily using bootstrap,
>>> as a
>>> >> simple example I have created a demonstration here:
>>> https://abhaychawla.
>>> >> github.io/angular-theme/
>>> >> 6) We can also provide instructions so that the organizations will be
>>> >> able to clone the project, create their own custom theme, build the
>>> app and
>>> >> use that theme.
>>> >> 7) Overall, ng-bootstrap and bootswatch built on top of bootstrap are
>>> >> easy to implement and could be modified and used to suit our needs
>>> >>
>>> >> 8) On the other hand, angular-material provides with 4 inbuilt
>>> material
>>> >> themes to chose from  https://material.angular.io/
>>> >> 9) More custom themes can be configured according to organizations
>>> needs
>>> >> using angular-material as well but it will be a bit more complex
>>> >> 10) Overall, angular-material will be more time consuming and a little
>>> >> difficult to implement
>>> >>
>>> >> We would like to share this with the community and get their opinion
>>> >> regarding our choice of design framework so that we can finalize the
>>> same
>>> >> as soon as possible in the initial stage of the project.
>>> >>
>>> >> Looking forward to your responses.
>>> >>
>>> >> Thanks
>>> >> Abhay.
>>> >>
>>> >> --
>>> >> You received this message because you are subscribed to the Google
>>> Groups
>>> >> "Mifos Google Summer of Code 2018" group.
>>> >> To unsubscribe from this group and stop receiving emails from it,
>>> send an
>>> >> email to gsoc-2018+unsubscribe@xxxxxxxxx.
>>> >>
>>> >
>>> >
>>> > --
>>> > Raunak Sett
>>> >
>>> > ------------------------------------------------------------
>>> > ------------------
>>> > Check out the vibrant tech community on one of the world's most
>>> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> > Mifos-developer mailing list
>>> > mifos-developer@xxxxxxxxxxxxxxxxxxxxx
>>> > Unsubscribe or change settings at:
>>> > https://lists.sourceforge.net/lists/listinfo/mifos-developer
>>> >
>>>
>>
>>
>> --
>> *Ed Cable*
>> President/CEO, Mifos Initiative
>> edcable@xxxxxxxxx | Skype: edcable | Mobile: +1.484.477.8649
>>
>> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
>> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>>
>>
>