IBM Support

PI92847: JPQL WITH TRIM DOESN'T ISN'T HANDLED PROPERLY AND IT RESULTS IN DATABASEEXCEPTION

Fixes are available

18.0.0.2: WebSphere Application Server Liberty 18.0.0.2
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
18.0.0.3: WebSphere Application Server Liberty 18.0.0.3
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
18.0.0.4: WebSphere Application Server Liberty 18.0.0.4
19.0.0.1: WebSphere Application Server Liberty 19.0.0.1
19.0.0.2: WebSphere Application Server Liberty 19.0.0.2
19.0.0.3: WebSphere Application Server Liberty 19.0.0.3
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
19.0.0.4: WebSphere Application Server Liberty 19.0.0.4
19.0.0.5: WebSphere Application Server Liberty 19.0.0.5
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
19.0.0.6: WebSphere Application Server Liberty 19.0.0.6
19.0.0.7: WebSphere Application Server Liberty 19.0.0.7
19.0.0.8: WebSphere Application Server Liberty 19.0.0.8
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
19.0.0.9: WebSphere Application Server Liberty 19.0.0.9
19.0.0.10: WebSphere Application Server Liberty 19.0.0.10
19.0.0.11: WebSphere Application Server Liberty 19.0.0.11
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
19.0.0.12: WebSphere Application Server Liberty 19.0.0.12
20.0.0.1: WebSphere Application Server Liberty 20.0.0.1
20.0.0.2: WebSphere Application Server Liberty 20.0.0.2
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
20.0.0.3: WebSphere Application Server Liberty 20.0.0.3
20.0.0.4: WebSphere Application Server Liberty 20.0.0.4
20.0.0.5: WebSphere Application Server Liberty 20.0.0.5
20.0.0.6: WebSphere Application Server Liberty 20.0.0.6
20.0.0.7: WebSphere Application Server Liberty 20.0.0.7
20.0.0.8: WebSphere Application Server Liberty 20.0.0.8
20.0.0.9: WebSphere Application Server Liberty 20.0.0.9
20.0.0.10: WebSphere Application Server Liberty 20.0.0.10
20.0.0.11: WebSphere Application Server Liberty 20.0.0.11
20.0.0.12: WebSphere Application Server Liberty 20.0.0.12
21.0.0.3: WebSphere Application Server Liberty 21.0.0.3
21.0.0.4: WebSphere Application Server Liberty 21.0.0.4
21.0.0.5: WebSphere Application Server Liberty 21.0.0.5
21.0.0.6: WebSphere Application Server Liberty 21.0.0.6
21.0.0.7: WebSphere Application Server Liberty 21.0.0.7
21.0.0.8: WebSphere Application Server Liberty 21.0.0.8
21.0.0.9: WebSphere Application Server Liberty 21.0.0.9
21.0.0.1: WebSphere Application Server Liberty 21.0.0.1
21.0.0.2: WebSphere Application Server Liberty 21.0.0.2
21.0.0.10: WebSphere Application Server Liberty 21.0.0.10
21.0.0.11: WebSphere Application Server Liberty 21.0.0.11
21.0.0.12: WebSphere Application Server Liberty 21.0.0.12
22.0.0.1: WebSphere Application Server Liberty 22.0.0.1
22.0.0.2: WebSphere Application Server Liberty 22.0.0.2
22.0.0.3: WebSphere Application Server Liberty 22.0.0.3
22.0.0.4: WebSphere Application Server Liberty 22.0.0.4

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Here is an example.
    SimpleEntity has two attributes id and strItem. And the
    strItem
    of id=001 is AAAbcdAefghAA.
    "TRIM with LEADING" worked as expected. The following JPQL
    returns "bcdAefghAA".
    em.createQuery("SELECT TRIM(LEADING 'A' FROM e.strItem) FROM
    SimpleEntity e where e.id = '001'")
    "TRIM with TRAILING" also worked as expected. The following
    JPQL returns "AAAbcdAefgh".
    em.createQuery("SELECT TRIM(TRAILING 'A' FROM e.strItem)
    FROM
    SimpleEntity e where e.id = '001'")
    But the following JPQL results in DatabaseException.
    em.createQuery("SELECT TRIM('A' FROM e.strItem) FROM
    SimpleEntity e where e.id = '001'");
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server Liberty - Java Persistence APA - JPA *
    *                  2.1 & EclipseLink                           *
    ****************************************************************
    * PROBLEM DESCRIPTION: EclipseLink throws an exception when    *
    *                      parsing a Query containing the TRIM()   *
    *                      operation on DB2                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The following sample code demonstrates how an application would
    encounter this exception:
    
    Entity:
        @Entity
        @Table(name = "SIMPLE_TABLE")
        public class SimpleEntity {
            @Id @Column(name = "ID")
            private String id;
            @Column(name = "STR_ITEM")
            private String strItem;
        }
    
    Test:
        Query query1 = em.createQuery("SELECT TRIM('a' FROM
    e.strItem) FROM SimpleEntity e where e.id = '001'");
        query1.getResultList();//Exception
    
    The last line of code, above, will result in this exception:
    
        Internal Exception: com.ibm.db2.jcc.am.vo: DB2 SQL Error:
    SQLCODE=-418, SQLSTATE=42610, SQLERRMC=null, DRIVER=4.8.87
        Error Code: -418
        Call: SELECT TRIM(? FROM STR_ITEM) FROM SIMPLE_TABLE WHERE
    (ID = ?)
            bind => [a, 001]
        Query: ReportQuery(referenceClass=EntityTblTrim sql="SELECT
    TRIM(? FROM STR_ITEM) FROM SIMPLE_TABLE WHERE (ID = ?)")
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PI92847

  • Reported component name

    LIBERTY PROFILE

  • Reported component ID

    5724J0814

  • Reported release

    CD0

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-01-23

  • Closed date

    2018-05-08

  • Last modified date

    2018-05-08

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    LIBERTY PROFILE

  • Fixed component ID

    5724J0814

Applicable component levels

  • RCD0 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"CD0","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
04 May 2022