I think there are actually two separate issues here.  Single() &
SingleOrDefault() work correctly if there are zero or one results; they are
incorrect if there is more than one result (due to a buggy use of
SetMaxResults(1), which I'll fix).  But that's not the bug that's being seen
here.

What Andrew is seeing is an *exception* for .Single, .SingleOrDefault &
.First (& I assume .FirstOrDefault as well).  I don't have an Oracle
installation, so can't easily test this but for sure those operators don't
cause exceptions when running against SQL Server. Anyone out there got an
Oracle install that they can debug against?

We could arguable remove the pagination for .Single - the theory being that
if the user is using .Single, they only expect one result so why complicate
the SQL.  If there is more than one result, then it's an exception case
anyway and optimising for errors at the expense of the success path is
probably not a great thing.

However, we certainly can't remove pagination for .First, where he's also
seeing the same exception...

On Mon, Jul 5, 2010 at 8:50 PM, Fabio Maulo <fabioma...@gmail.com> wrote:

> Sir Steve Strong knows it, don't worry.
>
> On Mon, Jul 5, 2010 at 3:39 PM, Diego Mijelshon <di...@mijelshon.com.ar>wrote:
>
>> It's not necessarily a bug in the code.
>> An exception is just that: a state that deviates from the rule.
>> While the code shouldn't be designed around exceptions, it can happen
>> that, given a spec of "there can be one and only one X where Y=Z" you try to
>> retrieve it using Single and, somehow (say, because of a faulty import
>> process), there are more (or none) in the DB.
>> If that happens, I think it's important to fail with the least possible
>> impact to the rest of the application.
>>
>> If you disagree, tell Steve :-)
>> This happens in
>> NHibernate/Linq/Visitors/ResultOperatorProcessors/ProcessFirstOrSingleBase.cs
>>
>>    Diego
>>
>>
>>
>> On Mon, Jul 5, 2010 at 14:29, Fabio Maulo <fabioma...@gmail.com> wrote:
>>
>>> If you write a query that may return 10 records and there you put
>>> "Single" you are foo or you have a bug.
>>> That is what "Single" mean and for that reason it throw exception when
>>> more than one instance are selected.
>>>
>>> In NH we don't have to change its meaning putting an unnecessary
>>> pagination (SetMaxResults) in the result SQL.
>>>
>>> On Mon, Jul 5, 2010 at 2:19 PM, Diego Mijelshon 
>>> <di...@mijelshon.com.ar>wrote:
>>>
>>>> I can't think of a better way to do it.
>>>>
>>>> For Single, this is the behavior:
>>>> - Request at most 2 records from the server (to avoid doing extra work)
>>>> - If no records returned, exception
>>>> - If one record returned, map it and we're done
>>>> - If more than one record returned, exception
>>>>
>>>> For SingleOrDefault is the same, only the first case returns null.
>>>>
>>>> How would you improve it?
>>>>
>>>>    Diego
>>>>
>>>>
>>>>
>>>> On Mon, Jul 5, 2010 at 12:32, Fabio Maulo <fabioma...@gmail.com> wrote:
>>>>
>>>>> There is no need to complicate the query for "Single"
>>>>>
>>>>> --
>>>>> Fabio Maulo
>>>>>
>>>>>
>>>>> El 05/07/2010, a las 12:16, Diego Mijelshon <di...@mijelshon.com.ar>
>>>>> escribió:
>>>>>
>>>>> IIRC, Single/SingleOrDefault use SetMaxResults(2), and then checks that
>>>>> a single record is returned...
>>>>>
>>>>>    Diego
>>>>>
>>>>>
>>>>> On Mon, Jul 5, 2010 at 10:19, Fabio Maulo < <fabioma...@gmail.com>
>>>>> fabioma...@gmail.com> wrote:
>>>>>
>>>>>> For "First" and "FirstOrDefault" we can apply SetMaxResults(1) ... and
>>>>>> fix the bug (please check last JIRAs and add a new one if you can't find 
>>>>>> an
>>>>>> existing)
>>>>>>
>>>>>> For "Single" and "SingleOrDefault" we *shouldn't*apply SetMaxResults(1) 
>>>>>> because doing so we will change the
>>>>>> "Single" behavior (it should throw exception when there are more than one
>>>>>> results)
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 5, 2010 at 10:11 AM, andrew6072 
>>>>>> <<andrew.brun...@ukfuels.co.uk>
>>>>>> andrew.brun...@ukfuels.co.uk> wrote:
>>>>>>
>>>>>>> Hi Fabio,
>>>>>>>
>>>>>>> What do you mean by changing the meaning of Single ?
>>>>>>>
>>>>>>> Oh and It also happens with First(), and SingleOrDefault() as well
>>>>>>>
>>>>>>> It seems to be something to do with this call
>>>>>>>
>>>>>>> bool useLimit = UseLimit(selection, dialect);
>>>>>>> when I use Query<> it returns true, and if I use QueryOver<> it
>>>>>>> return
>>>>>>> false ???
>>>>>>>
>>>>>>> I don't really understand how it all works but I've noticed the
>>>>>>> following.
>>>>>>> when its called using Query<> selection.firstrow = -1, and
>>>>>>> selection.MaxRows = 1
>>>>>>>
>>>>>>> but when its called from QueryOver<> selection.FirstRow = 0, and
>>>>>>> selection.Maxrows = -1
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Andrew
>>>>>>>
>>>>>>>
>>>>>>> On Jul 5, 12:38 pm, Fabio Maulo <fabioma...@gmail.com> wrote:
>>>>>>> > Confirmed, we have a bug.
>>>>>>> > We are changing the meaning of Single.
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > On Mon, Jul 5, 2010 at 8:35 AM, Fabio Maulo <fabioma...@gmail.com>
>>>>>>> wrote:
>>>>>>> > > If our provider creates a paginated query for the method "Single"
>>>>>>> we have a
>>>>>>> > > bug.
>>>>>>> >
>>>>>>> > > On Mon, Jul 5, 2010 at 8:06 AM, andrew6072 <
>>>>>>> andrew.brun...@ukfuels.co.uk>wrote:
>>>>>>> >
>>>>>>> > >> Hi Fabio,
>>>>>>> >
>>>>>>> > >> I think the exception got chopped off, this is the full
>>>>>>> exception.
>>>>>>> >
>>>>>>> > >> [SQL: select * from ( select olauser0_.USER_ID as USER1_57_,
>>>>>>> > >> olauser0_.USERNAME as USERNAME57_, olauser0_.EMAIL_ADDRESS as
>>>>>>> > >> EMAIL3_57_, olauser0_.COMMENTS as COMMENTS57_,
>>>>>>> olauser0_.PASSWORD as
>>>>>>> > >> PASSWORD57_, olauser0_.PASSWORD_QUESTION as PASSWORD6_57_,
>>>>>>> > >> olauser0_.PASSWORD_ANSWER as PASSWORD7_57_,
>>>>>>> olauser0_.IS_APPROVED as
>>>>>>> > >> IS8_57_, olauser0_.IS_LOCKEDOUT as IS9_57_,
>>>>>>> olauser0_.LAST_LOGON_DATE
>>>>>>> > >> as LAST10_57_, olauser0_.CREATION_DATE as CREATION11_57_,
>>>>>>> > >> olauser0_.LAST_ACTIVITY_DATE as LAST12_57_,
>>>>>>> > >> olauser0_.LAST_PASSWORD_CHANGED_DATE as LAST13_57_,
>>>>>>> > >> olauser0_.LAST_LOCKOUT_DATE as LAST14_57_ from OLA_USERS
>>>>>>> olauser0_
>>>>>>> > >> where (olauser0_.USERNAME is null) and (:p0 is null) or
>>>>>>> > >> olauser0_.USERNAME=:p0 ) where rownum <=:p2] --->
>>>>>>> > >> Oracle.DataAccess.Client.OracleException ORA-01008: not all
>>>>>>> variables
>>>>>>> > >> bound    at
>>>>>>> > >> Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
>>>>>>> > >> errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx*
>>>>>>> > >> pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
>>>>>>> > >>   at Oracle.DataAccess.Client.OracleException.HandleError(Int32
>>>>>>> > >> errCode, OracleConnection conn, String procedure, IntPtr
>>>>>>> opsErrCtx,
>>>>>>> > >> OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
>>>>>>> > >>   at
>>>>>>> Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean
>>>>>>> > >> requery, Boolean fillRequest, CommandBehavior behavior)
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> Oracle.DataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior
>>>>>>> > >> behavior)
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
>>>>>>> > >>   at NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand
>>>>>>> cmd)
>>>>>>> > >> in
>>>>>>> d:\dev\oss\nhibernate\src\NHibernate\AdoNet\AbstractBatcher.cs:line
>>>>>>> > >> 242
>>>>>>> > >>   at NHibernate.Loader.Loader.GetResultSet(IDbCommand st,
>>>>>>> Boolean
>>>>>>> > >> autoDiscoverTypes, Boolean callable, RowSelection selection,
>>>>>>> > >> ISessionImplementor session) in
>>>>>>> d:\dev\oss\nhibernate\src\NHibernate
>>>>>>> > >> \Loader\Loader.cs:line 1325
>>>>>>> > >>   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor
>>>>>>> session,
>>>>>>> > >> QueryParameters queryParameters, Boolean returnProxies) in
>>>>>>> d:\dev\oss
>>>>>>> > >> \nhibernate\src\NHibernate\Loader\Loader.cs:line 401
>>>>>>> > >>   at
>>>>>>> >
>>>>>>> > >>
>>>>>>> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImp­lementor
>>>>>>> > >> session, QueryParameters queryParameters, Boolean returnProxies)
>>>>>>> in d:
>>>>>>> > >> \dev\oss\nhibernate\src\NHibernate\Loader\Loader.cs:line 236
>>>>>>> > >>   at NHibernate.Loader.Loader.DoList(ISessionImplementor
>>>>>>> session,
>>>>>>> > >> QueryParameters queryParameters) in d:\dev\oss\nhibernate\src
>>>>>>> > >> \NHibernate\Loader\Loader.cs:line 1653
>>>>>>> > >>    --- End of inner exception stack trace ---
>>>>>>> > >>    at NHibernate.Loader.Loader.DoList(ISessionImplementor
>>>>>>> session,
>>>>>>> > >> QueryParameters queryParameters) in d:\dev\oss\nhibernate\src
>>>>>>> > >> \NHibernate\Loader\Loader.cs:line 1662
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
>>>>>>> > >> session, QueryParameters queryParameters) in
>>>>>>> d:\dev\oss\nhibernate\src
>>>>>>> > >> \NHibernate\Loader\Loader.cs:line 1577
>>>>>>> > >>   at NHibernate.Loader.Loader.List(ISessionImplementor session,
>>>>>>> > >> QueryParameters queryParameters, ISet`1 querySpaces, IType[]
>>>>>>> > >> resultTypes) in d:\dev\oss\nhibernate\src\NHibernate\Loader
>>>>>>> > >> \Loader.cs:line 1567
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor
>>>>>>> > >> session, QueryParameters queryParameters) in
>>>>>>> d:\dev\oss\nhibernate\src
>>>>>>> > >> \NHibernate\Hql\Ast\ANTLR\Loader\QueryLoader.cs:line 297
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor
>>>>>>> > >> session, QueryParameters queryParameters) in
>>>>>>> d:\dev\oss\nhibernate\src
>>>>>>> > >> \NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs:line 107
>>>>>>> > >>   at
>>>>>>> NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters
>>>>>>> > >> queryParameters, ISessionImplementor session, IList results) in
>>>>>>> d:\dev
>>>>>>> > >> \oss\nhibernate\src\NHibernate\Engine\Query\HQLQueryPlan.cs:line
>>>>>>> 105
>>>>>>> > >>   at NHibernate.Impl.SessionImpl.List(IQueryExpression
>>>>>>> > >> queryExpression, QueryParameters queryParameters, IList results)
>>>>>>> in d:
>>>>>>> > >> \dev\oss\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 676
>>>>>>> > >>   at NHibernate.Impl.SessionImpl.List(IQueryExpression
>>>>>>> > >> queryExpression, QueryParameters parameters) in
>>>>>>> d:\dev\oss\nhibernate
>>>>>>> > >> \src\NHibernate\Impl\SessionImpl.cs:line 655
>>>>>>> > >>   at NHibernate.Impl.ExpressionQueryImpl.List() in d:\dev\oss
>>>>>>> > >> \nhibernate\src\NHibernate\Impl\ExpressionQueryImpl.cs:line 63
>>>>>>> > >>   at NHibernate.Linq.NhQueryProvider.Execute(Expression
>>>>>>> expression)
>>>>>>> > >> in
>>>>>>> d:\dev\oss\nhibernate\src\NHibernate\Linq\NhQueryProvider.cs:line
>>>>>>> > >> 31
>>>>>>> > >>   at NHibernate.Linq.NhQueryProvider.Execute[TResult](Expression
>>>>>>> > >> expression) in d:\dev\oss\nhibernate\src\NHibernate\Linq
>>>>>>> > >> \NhQueryProvider.cs:line 55
>>>>>>> > >>   at System.Linq.Queryable.Single[TSource](IQueryable`1 source)
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> OlaCommon.Data.Repository.NHibernate.UserRepository.GetByUsername(String
>>>>>>> > >> username) in
>>>>>>> d:\dev\tfs\OlaCommon\OlaCommon.Data\Repository\NHibernate
>>>>>>> > >> \UserRepository.cs:line 27
>>>>>>> > >>   at
>>>>>>> > >>
>>>>>>> OlaMonitor.Infrastructure.NHibernateMembershipProvider.ValidateUser(String
>>>>>>> > >> username, String password) in d:\dev\tfs\OlaMonitor\OlaMonitor
>>>>>>> > >> \Infrastructure\NHibernateMembershipProvider.cs:line 248
>>>>>>> >
>>>>>>> > >> Validateuser calls the following method
>>>>>>> > >>        public OlaUser GetByUsername(string username)
>>>>>>> > >>        {
>>>>>>> > >>            var session = GetSession();
>>>>>>> > >>             var query = (from a in session.Query<OlaUser>()
>>>>>>> > >>                              where a.Username == username
>>>>>>> > >>                             select a);
>>>>>>> > >>            var user = query.Single();
>>>>>>> > >>             return user;
>>>>>>> > >>        }
>>>>>>> >
>>>>>>> > >> Do you need anything else ?
>>>>>>> >
>>>>>>> > >> Andrew
>>>>>>> >
>>>>>>> > >> On Jul 5, 11:43 am, Fabio Maulo <fabioma...@gmail.com> wrote:
>>>>>>> > >> > Please send us something else... In some point you are forcing
>>>>>>> the
>>>>>>> > >> > pagination of the query.
>>>>>>> >
>>>>>>> > >> > --
>>>>>>> > >> > Fabio Maulo
>>>>>>> >
>>>>>>> > >> > El 05/07/2010, a las 07:16, andrew6072 <
>>>>>>> andrew.brun...@ukfuels.co.uk>
>>>>>>> > >> escribió:
>>>>>>> >
>>>>>>> > >> > > Hi,
>>>>>>> >
>>>>>>> > >> > > Not sure if I've done something wrong but I can't get this
>>>>>>> to work, if
>>>>>>> > >> > > I look at the query I can see one object, as soon as it hits
>>>>>>> the
>>>>>>> > >> > > query.single() it bombs with the stack below, am I missing
>>>>>>> something ?
>>>>>>> > >> > > Not sure if it makes any difference but I'm using fluent to
>>>>>>> create my
>>>>>>> > >> > > mappings.
>>>>>>> >
>>>>>>> > >> > >            var query = (from a in session.Query<OlaUser>()
>>>>>>> > >> > >                       where a.Username == username
>>>>>>> > >> > >                       select a);
>>>>>>> >
>>>>>>> > >> > >            var user = query.Single();
>>>>>>> >
>>>>>>> > >> > > Andrew
>>>>>>> >
>>>>>>> > >> > > [ select * from ( select olauser0_.USER_ID as USER1_57_,
>>>>>>> > >> > > olauser0_.USERNAME as USERNAME57_, olauser0_.EMAIL_ADDRESS
>>>>>>> as
>>>>>>> > >> > > EMAIL3_57_, olauser0_.COMMENTS as COMMENTS57_,
>>>>>>> olauser0_.PASSWORD as
>>>>>>> > >> > > PASSWORD57_, olauser0_.PASSWORD_QUESTION as PASSWORD6_57_,
>>>>>>> > >> > > olauser0_.PASSWORD_ANSWER as PASSWORD7_57_,
>>>>>>> olauser0_.IS_APPROVED as
>>>>>>> > >> > > IS8_57_, olauser0_.IS_LOCKEDOUT as IS9_57_,
>>>>>>> olauser0_.LAST_LOGON_DATE
>>>>>>> > >> > > as LAST10_57_, olauser0_.CREATION_DATE as CREATION11_57_,
>>>>>>> > >> > > olauser0_.LAST_ACTIVITY_DATE as LAST12_57_,
>>>>>>> > >> > > olauser0_.LAST_PASSWORD_CHANGED_DATE as LAST13_57_,
>>>>>>> > >> > > olauser0_.LAST_LOCKOUT_DATE as LAST14_57_ from USERS
>>>>>>> olauser0_ where
>>>>>>> > >> > > (olauser0_.USERNAME is null) and (:p0 is null) or
>>>>>>> > >> > > olauser0_.USERNAME=:p0 ) where rownum <=:p2 ]
>>>>>>> > >> > >  Name:p1 - Value:andrewb
>>>>>>> >
>>>>>>> > >> > > Oracle.DataAccess.Client.OracleException ORA-01008: not all
>>>>>>> variables
>>>>>>> > >> > > bound    at
>>>>>>> > >> > >
>>>>>>> Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
>>>>>>> > >> > > errCode, OracleConnection conn, IntPtr opsErrCtx,
>>>>>>> OpoSqlValCtx*
>>>>>>> > >> > > pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
>>>>>>> > >> > >   at
>>>>>>> Oracle.DataAccess.Client.OracleException.HandleError(Int32
>>>>>>> > >> > > errCode, OracleConnection conn, String procedure, IntPtr
>>>>>>> opsErrCtx,
>>>>>>> > >> > > OpoSqlValCtx* pOpoSqlValCtx, Object src, Boolean bCheck)
>>>>>>> > >> > >   at
>>>>>>> Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean
>>>>>>> > >> > > requery, Boolean fillRequest, CommandBehavior behavior)
>>>>>>> > >> > >   at
>>>>>>> >
>>>>>>> > >>
>>>>>>> Oracle.DataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior
>>>>>>> > >> > > behavior)
>>>>>>> > >> > >   at
>>>>>>> > >> > >
>>>>>>> System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
>>>>>>> > >> > >   at
>>>>>>> NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd)
>>>>>>> > >> > > in
>>>>>>> d:\dev\oss\nhibernate\src\NHibernate\AdoNet\AbstractBatcher.cs:line
>>>>>>> > >> > > 242
>>>>>>> > >> > >   at NHibernate.Loader.Loader.GetResultSet(IDbCommand st,
>>>>>>> Boolean
>>>>>>> > >> > > autoDiscoverTypes, Boolean callable, RowSelection selection,
>>>>>>> > >> > > ISessionImplementor session) in
>>>>>>> d:\dev\oss\nhibernate\src\NHibernate
>>>>>>> > >> > > \Loader\Loader.cs:line 1325
>>>>>>> > >> > >   at NHibernate.Loader.Loader.DoQuery(ISessionImplementor
>>>>>>> session,
>>>>>>> > >> > > QueryParameters queryParameters, Boolean returnProxies) in
>>>>>>> d:\dev\oss
>>>>>>> > >> > > \nhibernate\src\NHibernate\Loader\Loader.cs:line 401
>>>>>>> > >> > >   at
>>>>>>> >
>>>>>>> > >>
>>>>>>> NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImp­­lementor
>>>>>>> > >> > > session, QueryParameters queryParameters, Boolean
>>>>>>> returnProxies) in d:
>>>>>>> > >> > > \dev\oss\nhibernate\src\NHibernate\Loader\Loader.cs:line 236
>>>>>>> > >> > >   at NHibernate.Loader.Loader.DoList(ISessionImplementor
>>>>>>> session,
>>>>>>> > >> > > QueryParameters queryParameters) in
>>>>>>> d:\dev\oss\nhibernate\src
>>>>>>> > >> > > \NHibernate\Loader\Loader.cs:line 1653
>>>>>>> > >> > > 2010-07-05 10:54:20,134 [9] WARN
>>>>>>>  NHibernate.Util.ADOExceptionReporter
>>>>>>> > >> > > - Oracle.DataAccess.Client.OracleException ORA-01008: not
>>>>>>> all
>>>>>>> > >> > > variables bound    at
>>>>>>> > >> > >
>>>>>>> Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32
>>>>>>> > >> > > errCode, OracleConnection conn, IntPtr opsErrCtx,
>>>>>>> OpoSqlValCtx*
>>>>>>> > >> > > pOpoSqlValCtx, Object src, String procedure, Boolean bCheck)
>>>>>>> >
>>>>>>> > ...
>>>>>>> >
>>>>>>> > read more »- Hide quoted text -
>>>>>>> >
>>>>>>> > - Show quoted text -
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "nhusers" group.
>>>>>>> To post to this group, send email to <nhusers@googlegroups.com>
>>>>>>> nhus...@googlegroups.com.
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> <nhusers%2bunsubscr...@googlegroups.com>
>>>>>>> nhusers+unsubscr...@googlegroups.com.
>>>>>>> For more options, visit this group at
>>>>>>> <http://groups.google.com/group/nhusers?hl=en>
>>>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Fabio Maulo
>>>>>>
>>>>>>  --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "nhusers" group.
>>>>>> To post to this group, send email to <nhusers@googlegroups.com>
>>>>>> nhus...@googlegroups.com.
>>>>>> To unsubscribe from this group, send email to
>>>>>> <nhusers%2bunsubscr...@googlegroups.com>
>>>>>> nhusers+unsubscr...@googlegroups.com.
>>>>>> For more options, visit this group at
>>>>>> <http://groups.google.com/group/nhusers?hl=en>
>>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>>
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nhusers" group.
>>>>> To post to this group, send email to nhus...@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> nhusers+unsubscr...@googlegroups.com.
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nhusers" group.
>>>>> To post to this group, send email to nhus...@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nhusers" group.
>>>> To post to this group, send email to nhus...@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com>
>>>> .
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nhusers?hl=en.
>>>>
>>>
>>>
>>>
>>> --
>>> Fabio Maulo
>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "nhusers" group.
>>> To post to this group, send email to nhus...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com>
>>> .
>>> For more options, visit this group at
>>> http://groups.google.com/group/nhusers?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To post to this group, send email to nhus...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/nhusers?hl=en.
>>
>
>
>
> --
> Fabio Maulo
>
>  --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to nhus...@googlegroups.com.
> To unsubscribe from this group, send email to
> nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to nhus...@googlegroups.com.
To unsubscribe from this group, send email to 
nhusers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to