Bitwise or causes Antlr.Runtime.Tree.RewriteEmptyStreamException : rule b
Activity
Show:

Carsten Hess June 11, 2009 at 8:38 AM
I agree it seems related to NH-1831, but the exception is different. The exception of https://nhibernate.jira.com/browse/NH-1831#icft=NH-1831 is
System.InvalidCastException : Unable to cast object of type 'Antlr.Runtime.Tree.CommonTree' to type 'NHibernate.Hql.Ast.ANTLR.Tree.IASTNode'.

Carsten Hess June 11, 2009 at 6:55 AM
Luckily it can be work-arounded by adding paranthesis to the bitwise or expression:
HibernateWorkspace ws = (HibernateWorkspace)Workspace;
IQuery query = ws.Session.CreateQuery("FROM DocumentType dt WHERE (dt.SystemAction & :dt_Action) = :dt_Action");
query.SetParameter("dt_Action", action);
return query.List<IDocumentType>();
Duplicate
Details
Details
Assignee
Unassigned
UnassignedReporter

Components
Affects versions
Priority
Who's Looking?
Open Who's Looking?
Created June 11, 2009 at 4:13 AM
Updated June 11, 2009 at 8:38 AM
Resolved June 11, 2009 at 8:22 AM
Who's Looking?
Using trunk revision 4453 from 2009-06-11
Antlr.Runtime.Tree.RewriteEmptyStreamException: rule b
at Antlr.Runtime.Tree.RewriteRuleElementStream`1._Next()
at Antlr.Runtime.Tree.RewriteRuleSubtreeStream.FetchObject(ProcessHandler ph)
at Antlr.Runtime.Tree.RewriteRuleSubtreeStream.NextTree()
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.whereClause() in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs: line 4449
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.query() in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs: line 1566
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.selectStatement() in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs: line 532
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.statement() in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs: line 431
at NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.Translate() in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs: line 600
at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Analyze(HqlParseEngine parser, String collectionRole) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs: line 423
at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.DoCompile(IDictionary`2 replacements, Boolean shallow, String collectionRole) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs: line 320
at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Compile(IDictionary`2 replacements, Boolean shallow) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs: line 69
at NHibernate.Engine.Query.HQLQueryPlan..ctor(String hql, String collectionRole, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Engine\Query\HQLQueryPlan.cs: line 57
at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(String queryString, Boolean shallow, IDictionary`2 enabledFilters) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Engine\Query\QueryPlanCache.cs: line 61
at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(String query, Boolean shallow) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Impl\AbstractSessionImpl.cs: line 274
at NHibernate.Impl.AbstractSessionImpl.CreateQuery(String queryString) in C:\Work\EBHFinans\NHibernate2.0-src\src\NHibernate\Impl\AbstractSessionImpl.cs: line 253
at EBH.GuG.DomainModel.Impl.Documents.DocumentsRepository.FindDocumentTypesBySystemAction(SystemAction action) in DocumentsRepository.cs: line 108
at EBH.GuG.DomainModel.Impl.Journal.Test.JournalTest.ShouldFindLatestExpensesDemand() in JournalTest.cs: line 105
HQL:
HibernateWorkspace ws = (HibernateWorkspace)Workspace;
IQuery query = ws.Session.CreateQuery("FROM DocumentType dt WHERE dt.SystemAction & :dt_Action = :dt_Action");
query.SetParameter("dt_Action", action);
return query.List<IDocumentType>();
dt_Action is a flagged enum:
[Flags]
[Serializable]
public enum SystemAction : long
{
P10 = 0x01 << 0,
Denunciation = 0x01 << 1,
....