Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 366556

Summary: Query.getFlushMode() throws NullPointerException instead of the flush mode in effect for the entity manager when a flush mode has not been set for the query object .
Product: z_Archived Reporter: Stephen DiMilla <stephen.dimilla>
Component: EclipselinkAssignee: Nobody - feel free to take it <nobody>
Status: CLOSED FIXED QA Contact:
Severity: blocker    
Priority: P3 CC: lance.andersen, stephen.dimilla, tom.ware
Version: unspecified   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Attachments:
Description Flags
proposed fix none

Description Stephen DiMilla CLA 2011-12-13 10:36:43 EST
Build Identifier: eclipselink-2.3.0.v20110604-r9504

Using the entity:
@Entity
@Table(name = "EMPLOYEE")
public class Employee implements java.io.Serializable, Comparable<Employee> {

    private int id;
    private String firstName;

    public Employee() {
    }

    public Employee(int id, String firstName) {
        this.id = id;
        this.firstName = firstName;
    }



    // ===========================================================
    // getters and setters for the state fields

    @Id
    @Column(name = "ID")
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @Column(name = "FIRSTNAME")
    public String getFirstName() {
        return firstName;
    }

----------------
Client Code:

            Query q = em.createQuery("SELECT c FROM Customer c WHERE c.name = 'Michael Bouschen'");
            System.out.println("EntityManager.getFlushMode() returned:"+em.getFlushMode());
            System.out.println("Calling Query.getFlushMode()");
            FlushModeType fmt = q.getFlushMode();

---------------
Output:


EM.getFlushMode() returns:AUTO
Calling getFlushMode()
Caught unexpected exception: java.lang.NullPointerException
java.lang.NullPointerException
	at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getFlushMode(EJBQueryImpl.java:1324)

Reproducible: Always
Comment 1 Tom Ware CLA 2012-04-05 11:01:16 EDT
Updating target milestone.
Comment 2 Tom Ware CLA 2013-02-06 09:42:17 EST
Created attachment 226631 [details]
proposed fix
Comment 3 Tom Ware CLA 2013-02-06 09:44:45 EST
Fix checked in... adds a null check.

Reviewed by Guy Pelletier

Added test to JPA 2.1 Query Test Suite

Tested with JPA LRG
Comment 4 Eclipse Webmaster CLA 2022-06-09 10:28:09 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink