[ 
https://issues.apache.org/jira/browse/RANGER-4104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17691768#comment-17691768
 ] 

Madhan Neethiraj commented on RANGER-4104:
------------------------------------------

[~andrewluo] - I guess the fix is about following error logged in catalina.out 
file. This error seems to occur only when multiple login attempts are made 
simultaneously. Do you have repro details?
{noformat}
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: You have an error in your 
SQL syntax; check the manual that corresponds to your MariaDB server version 
for the right syntax to use near '))' at line 1
Error Code: 1064
Call: SELECT COUNT(?) FROM x_auth_sess t0 WHERE (((t0.LOGIN_ID = ?) AND 
(t0.AUTH_STATUS <> ?)) AND (t0.CREATE_TIME > COALESCE((SELECT 
MAX(t1.CREATE_TIME) FROM x_auth_sess t1 WHERE (((t1.LOGIN_ID = ?) AND 
(t1.AUTH_STATUS = ?)) AND (t1.CREATE_TIME > ?))),?,))
        bind => [7 parameters bound]
Query: ReportQuery(name="XXAuthSession.getRecentAuthFailureCountByLoginId" 
referenceClass=XXAuthSession sql="SELECT COUNT(?) FROM x_auth_sess t0 WHERE 
(((t0.LOGIN_ID = ?) AND (t0.AUTH_STATUS <> ?)) AND (t0.CREATE_TIME > 
COALESCE((SELECT MAX(t1.CREATE_TIME) FROM x_auth_sess t1 WHERE (((t1.LOGIN_ID = 
?) AND (t1.AUTH_STATUS = ?)) AND (t1.CREATE_TIME > ?))),?,))")
 {noformat}
 

About using TemporalType.DATE at the time of parameter binding, note that 
XXAuthSession.authTime is annotated with @Temporal(TemporalType.TIMESTAMP), as 
shown below. Would this not address the JPA spec?
{code:java}
        @Temporal(TemporalType.TIMESTAMP)
        @Column(name="AUTH_TIME"  , nullable=false )
        protected Date authTime = DateUtil.getUTCDate();
{code}
 

 

> XXAuthSessionDao.getRecentAuthFailureCountByLoginId produces incorrect SQL 
> code
> -------------------------------------------------------------------------------
>
>                 Key: RANGER-4104
>                 URL: https://issues.apache.org/jira/browse/RANGER-4104
>             Project: Ranger
>          Issue Type: Bug
>          Components: admin
>    Affects Versions: 3.0.0, 2.4.0
>            Reporter: Andrew Luo
>            Priority: Major
>         Attachments: 
> 0001-Fix-type-of-authWindowStartTime-parameter-in-XXAuthS.patch
>
>
> XXAuthSessionDao.getRecentAuthFailureCountByLoginId produces incorrect SQL 
> code due to an error in how the authWindowStartTime Date parameter is bound.
> It is currently bound with setParameter("authWindowStartTime", 
> authWindowStartTime) however, [JPA 2.2 Specification Section 
> 11.1.53|https://download.oracle.com/otn-pub/jcp/persistence-2_2-mrel-spec/JavaPersistence.pdf]
>  says that it should be bound by specifying an additional parameter 
> TemporalType.DATE.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to