Announcement Announcement Module
Collapse
No announcement yet.
How to resolve org.hibernate.ObjectNotFoundException: Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to resolve org.hibernate.ObjectNotFoundException:

    I have written the two mapping file:

    one is TSapsystemAndSite

    the mapping File will be :

    Code:
    <hibernate-mapping>
        <class name="com.oneaccess.hibernate.model.TSapsystemAndSite" table="t_sapsystem_and_site" catalog="oneaccess" lazy="false">
            <comment></comment>
            <composite-id name="id" class="com.oneaccess.hibernate.model.TSapsystemAndSiteId">
                <key-property name="site_id" type="int">
                   <column name="site_id"></column>
                </key-property>
                <key-property name="sap_system_id" type="int">
                   <column name="sap_system_id"></column>
                </key-property>
            </composite-id>
            
            <many-to-one name="TSapsystem" class="com.oneaccess.hibernate.model.TSapsystem" update="false" insert="false" fetch="select" lazy="false">
                <column name="sap_system_id" not-null="true">
                    <comment></comment>
                </column>
            </many-to-one>
            <many-to-one name="TSite" class="com.oneaccess.hibernate.model.TSite" update="false" insert="false" fetch="select" lazy="false">
                <column name="site_id" not-null="true">
                    <comment></comment>
                </column>
            </many-to-one>
           <set name="TSaproleBySapsystemAndSitesForSiteId" inverse="true" >
                <key>
                <column name="sap_system_id" not-null="true"></column>
                <column name="site_id" not-null="true"></column>
                </key>  
                   
                <one-to-many class="com.oneaccess.hibernate.model.TSaproleBySapsystemAndSite" />
            </set>
            
        </class>
    </hibernate-mapping>
    thw persistence class will be

    Code:
    public class TSapsystemAndSite implements java.io.Serializable {
    
    	private static final long serialVersionUID = 1L;
    	private TSapsystemAndSiteId id;
    
    	private TSapsystem TSapsystem;
    	
    	private TSite TSite;
    
    	private Set<TSaproleBySapsystemAndSite> TSaproleBySapsystemAndSitesForSiteId = new HashSet<TSaproleBySapsystemAndSite>(
    			0);
    
    	private Set<TSaproleBySapsystemAndSite> TSaproleBySapsystemAndSitesForSapSystemId = new HashSet<TSaproleBySapsystemAndSite>(
    			0);
    	public TSite getTSite() {
    		return TSite;
    	}
    
    	public void setTSite(TSite site) {
    		TSite = site;	
    	}
    
    	public TSapsystemAndSiteId getId() {
    		return this.id;
    	}
    
    	public void setId(TSapsystemAndSiteId id) {
    		this.id = id;
    	}
    
    	public TSapsystem getTSapsystem() {
    		return this.TSapsystem;
    	}
    
    	public void setTSapsystem(TSapsystem TSapsystem) {
    		this.TSapsystem = TSapsystem;
    	}
    
    	public Set<TSaproleBySapsystemAndSite> getTSaproleBySapsystemAndSitesForSiteId() {
    		return this.TSaproleBySapsystemAndSitesForSiteId;
    	}
    
    	public void setTSaproleBySapsystemAndSitesForSiteId(
    			Set<TSaproleBySapsystemAndSite> TSaproleBySapsystemAndSitesForSiteId) {
    		this.TSaproleBySapsystemAndSitesForSiteId = TSaproleBySapsystemAndSitesForSiteId;
    	}
    
    	public Set<TSaproleBySapsystemAndSite> getTSaproleBySapsystemAndSitesForSapSystemId() {
    		return this.TSaproleBySapsystemAndSitesForSapSystemId;
    	}
    
    	public void setTSaproleBySapsystemAndSitesForSapSystemId(
    			Set<TSaproleBySapsystemAndSite> TSaproleBySapsystemAndSitesForSapSystemId) {
    		this.TSaproleBySapsystemAndSitesForSapSystemId = TSaproleBySapsystemAndSitesForSapSystemId;
    	}
    
    }
    the another class will be TSapROlebySapsystemAndSite

    the mapping file will be:

    Code:
    <hibernate-mapping>
        <class name="com.oneaccess.hibernate.model.TSaproleBySapsystemAndSite" table="t_saprole_by_sapsystem_and_site" catalog="oneaccess">
            <comment></comment>
            <id name="sapRoleId" type="int">
                <column name="sap_role_id" />
                <generator class="assigned" />
            </id>
            <many-to-one name="TSapsystemAndSite" class="com.oneaccess.hibernate.model.TSapsystemAndSite" insert="false" update="false" fetch="select">
                <column name="sap_system_id" not-null="true">
                    <comment></comment>
                </column>
                 <column name="site_id" not-null="true">
                    <comment></comment>
                </column>
            </many-to-one>
            <property name="siteId" column="site_id" type="integer" not-null="true"></property>
            <property name="sapSystemId" column="sap_system_id" type="integer" not-null="true"></property>
           <property name="sapRoleName" type="string">
                <column name="sap_role_name" length="30" not-null="true">
                    <comment></comment>
                </column>
            </property>
            <property name="sapRoleDescription" type="string">
                <column name="sap_role_description" length="30">
                    <comment></comment>
                </column>
            </property>
            <property name="dateCreated" type="timestamp">
                <column name="date_created" length="19" not-null="true">
                    <comment></comment>
                </column>
            </property>
            <property name="dateModified" type="timestamp">
                <column name="date_modified" length="19" not-null="true">
                    <comment></comment>
                </column>
            </property>
            <set name="TUserSystems" inverse="true">
                <key>
                    <column name="sap_role_id" not-null="true">
                        <comment></comment>
                    </column>
                </key>
                <one-to-many class="com.oneaccess.hibernate.model.TUserSystem" />
            </set>
        </class>
    </hibernate-mapping>

    the persistence class will be:

    Code:
    public class TSaproleBySapsystemAndSite implements java.io.Serializable {
    
    	private static final long serialVersionUID = 1L;
    
    	private int sapRoleId;
        
    	private int siteId;
        
    	private int sapSystemId;
    	
    	private TSapsystemAndSiteId TSapsystemAndSiteId;
    	
    	private TSapsystemAndSite TSapsystemAndSite;
    
    	private TSapsystemAndSite TSapsystemAndSiteBySiteId;
    
    	private String sapRoleName;
    
    	private String sapRoleDescription;
    
    	private Date dateCreated;
    
    	private Date dateModified;
    
    	private Set<TUserSystem> TUserSystems = new HashSet<TUserSystem>(0);
    
    	// Constructors
    
    	public TSapsystemAndSiteId getTSapsystemAndSiteId() {
    		return TSapsystemAndSiteId;
    	}
    
    
    	public void setTSapsystemAndSiteId(TSapsystemAndSiteId sapsystemAndSiteId) {
    		TSapsystemAndSiteId = sapsystemAndSiteId;
    	}
    
    
    	public int getSapSystemId() {
    		return sapSystemId;
    	}
    
    
    	public void setSapSystemId(int sapSystemId) {
    		this.sapSystemId = sapSystemId;
    	}
    
    
    	public int getSiteId() {
    		return siteId;
    	}
    
    
    	public void setSiteId(int siteId) {
    		this.siteId = siteId;
    	}
    
    
    	/** default constructor */
    	public TSaproleBySapsystemAndSite() {
    	}
    
    	
    	// Property accessors
    	public int getSapRoleId() {
    		return this.sapRoleId;
    	}
    
    	public void setSapRoleId(int sapRoleId) {
    		this.sapRoleId = sapRoleId;
    	}
    
    	public TSapsystemAndSite getTSapsystemAndSite() {
    		return this.TSapsystemAndSite;
    	}
    
    	public void setTSapsystemAndSite(
    			TSapsystemAndSite TSapsystemAndSite) {
    		this.TSapsystemAndSite = TSapsystemAndSite;
    	}
    
    	public TSapsystemAndSite getTSapsystemAndSiteBySiteId() {
    		return this.TSapsystemAndSiteBySiteId;
    	}
    
    	public void setTSapsystemAndSiteBySiteId(
    			TSapsystemAndSite TSapsystemAndSiteBySiteId) {
    		this.TSapsystemAndSiteBySiteId = TSapsystemAndSiteBySiteId;
    	}
    
    	public String getSapRoleName() {
    		return this.sapRoleName;
    	}
    
    	public void setSapRoleName(String sapRoleName) {
    		this.sapRoleName = sapRoleName;
    	}
    
    	public String getSapRoleDescription() {
    		return this.sapRoleDescription;
    	}
    
    	public void setSapRoleDescription(String sapRoleDescription) {
    		this.sapRoleDescription = sapRoleDescription;
    	}
    
    	public Date getDateCreated() {
    		return this.dateCreated;
    	}
    
    	public void setDateCreated(Date dateCreated) {
    		this.dateCreated = dateCreated;
    	}
    
    	public Date getDateModified() {
    		return this.dateModified;
    	}
    
    	public void setDateModified(Date dateModified) {
    		this.dateModified = dateModified;
    	}
    
    	public Set<TUserSystem> getTUserSystems() {
    		return this.TUserSystems;
    	}
    
    	public void setTUserSystems(Set<TUserSystem> TUserSystems) {
    		this.TUserSystems = TUserSystems;
    	}
         public void setSapRoleInfo(SapRoleBean sapRoleBean){
        	 this.siteId=sapRoleBean.getSiteId();
        	 this.sapSystemId=sapRoleBean.getSapSystemId();
        	 this.sapRoleName=sapRoleBean.getSapRoleName();
        	 this.sapRoleDescription=sapRoleBean.getSapRoleDescription();
        	 TSapsystemAndSite ss=new TSapsystemAndSite();
        	 TSapsystemAndSiteId id=new TSapsystemAndSiteId();
        	 id.setSap_system_id(sapRoleBean.getSapSystemId());
        	 id.setSite_id(sapRoleBean.getSiteId());
        	 ss.setId(id);
        	 this.TSapsystemAndSite=ss;
        	 
         }
    }
    I have inserted values into database .

    but I got the following error while try to retrieve the values

    org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.oneaccess.hibernate.model.TSapsystemAndSite#co m.oneaccess.hibernate.model.TSapsystemAndSiteId@5b 34]

    I dont know how to retrieve the values from TSapsystemAndSite through the TSaprolebySapsystemAndSite class.
    please help me for that .

    thanks in Advance.

    Dinesh

  • #2
    When you perform the insert, check the table with a SQL analyser is the data actually in there?

    Comment


    • #3
      How to resolve org.hibernate.ObjectNotFoundException

      thank you very much for replying me.

      I dont know how to check with sql Analyzer .

      do u identify any mistakes in code(from mapping and persistence) .

      Comment


      • #4
        Can you provide the table definitions with referencial constraints? I think there is some problem with the mapping, looks like Hibernate goes to fetch the TsapsystemAndSite by using only one of the composite keys.

        Comment


        • #5
          How to resolve org.hibernate.ObjectNotFoundException

          the tables are :


          Code:
          create table t_sapsystem
          ( sap_system_id int unsigned not null auto_increment,
            sap_system_name varchar(30) not null,
            url varchar(30) not null,
            client_number varchar(30),
            userid varchar(30) not null,
            password varchar(30) not null,
            isCUA char(1),
            date_created timestamp not null,
            date_modified timestamp not null,
            constraint PK_sap_system_id primary key (sap_system_id)
            
          ) engine=InnoDB;
          
          create table t_site
          ( site_id int unsigned not null auto_increment,
            site_name varchar(30) not null,
            city varchar(30) not null,
            state varchar(30) not null,
            zip varchar(30) not null,
            plant_code varchar(30),
            date_created timestamp not null,
            date_modified timestamp not null,
            constraint PK_site_id primary key (site_id)
          ) engine=InnoDB;
          
          
          create table t_sapsystem_and_site
          ( site_id int unsigned  not null,
            sap_system_id int unsigned  not null,
            constraint PK_Pair_of_site_and_system primary key(site_id,sap_system_id),
            constraint FK_site_id_to_site foreign key(site_id) references t_site(site_id),
            constraint Fk_system_id_to_system foreign key(sap_system_id) references t_sapsystem(sap_system_id)
          )engine=InnoDB; 
          
          
          create table t_saprole_by_sapsystem_and_site
          ( sap_role_id int unsigned not null auto_increment,
            site_id int unsigned not null,
            sap_system_id int unsigned not null,
            sap_role_name varchar(30) not null,
            sap_role_description varchar(30) null,
            date_created timestamp not null,
            date_modified timestamp not null,
            constraint PK_sap_role_id primary key(sap_role_id),
            constraint Fk_sap_system_id_to_system_and_site foreign key(sap_system_id) references t_sapsystem_and_site(sap_system_id),
            constraint Fk_site_id_to_system_and_site foreign key(site_id) references t_sapsystem_and_site(site_id)
          )engine=InnoDB;

          Please help me for that

          thanks in Advance
          Last edited by Dinesh_Kumar; Aug 23rd, 2007, 03:05 AM. Reason: Some important

          Comment


          • #6
            [QUOTE=Dinesh_Kumar;138244]the tables are :


            Code:
            create table t_sapsystem_and_site
            ( site_id int unsigned  not null,
              sap_system_id int unsigned  not null,
              constraint PK_Pair_of_site_and_system primary key(site_id,sap_system_id),
              constraint FK_site_id_to_site foreign key(site_id) references t_site(site_id),
              constraint Fk_system_id_to_system foreign key(sap_system_id) references t_sapsystem(sap_system_id)
            )engine=InnoDB; 
            
            
            create table t_saprole_by_sapsystem_and_site
            ( sap_role_id int unsigned not null auto_increment,
              site_id int unsigned not null,
              sap_system_id int unsigned not null,
              sap_role_name varchar(30) not null,
              sap_role_description varchar(30) null,
              date_created timestamp not null,
              date_modified timestamp not null,
              constraint PK_sap_role_id primary key(sap_role_id),
              constraint Fk_sap_system_id_to_system_and_site foreign key(sap_system_id) references t_sapsystem_and_site(sap_system_id),
              constraint Fk_site_id_to_system_and_site foreign key(site_id) references t_sapsystem_and_site(site_id)
            )engine=InnoDB;
            ]
            I am wondering if these two tables have a correct referencial constraints. Look at the highlighted code; the line below will give an error saying that sap-system_id is not unique or a primary key

            Code:
            constraint Fk_sap_system_id_to_system_and_site foreign key(sap_system_id) references t_sapsystem_and_site(sap_system_id)
            So if you combine the two foreign keys into one that refers to the primary key, that should work as shown below:-

            Code:
            constraint Fk_site_id_to_system_and_site foreign key(site_id,sap_system_id) references t_sapsystem_and_site(site_id,sap_system_id)
            At this point I am not sure hwo you want to design your database.
            Last edited by nikhil78; Aug 23rd, 2007, 05:45 AM.

            Comment


            • #7
              I created the mapping files using your table definitions and added the foreign key as mentioned in my previous post. Here are the mapping files:-

              TSite.hbm
              Code:
              <?xml version="1.0"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              
              <hibernate-mapping>
                  <class name="TSite" table="T_SITE" >
                      <id name="siteId" type="big_decimal">
                          <column name="SITE_ID" precision="22" scale="0" />
                          <generator class="assigned" />
                      </id>
                      <property name="siteName" type="string">
                          <column name="SITE_NAME" length="30" not-null="true" />
                      </property>
                      <property name="city" type="string">
                          <column name="CITY" length="30" not-null="true" />
                      </property>
                      <property name="state" type="string">
                          <column name="STATE" length="30" not-null="true" />
                      </property>
                      <property name="zip" type="string">
                          <column name="ZIP" length="30" not-null="true" />
                      </property>
                      <property name="plantCode" type="string">
                          <column name="PLANT_CODE" length="30" />
                      </property>
                      <property name="dateCreated" type="date">
                          <column name="DATE_CREATED" length="7" not-null="true" />
                      </property>
                      <property name="dateModified" type="date">
                          <column name="DATE_MODIFIED" length="7" not-null="true" />
                      </property>
                      <set name="TSapsystemAndSites" inverse="true">
                          <key>
                              <column name="SITE_ID" precision="22" scale="0" not-null="true" />
                          </key>
                          <one-to-many class="TSapsystemAndSite" />
                      </set>
                  </class>
              </hibernate-mapping>
              TSapsystemAndSite.hbm.xml
              Code:
              <?xml version="1.0"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              
              <hibernate-mapping>
                  <class name="TSapsystemAndSite" table="T_SAPSYSTEM_AND_SITE">
                      <composite-id name="id" class="TSapsystemAndSiteId">
                          <key-property name="siteId" type="big_decimal">
                              <column name="SITE_ID" precision="22" scale="0" />
                          </key-property>
                          <key-property name="sapSystemId" type="big_decimal">
                              <column name="SAP_SYSTEM_ID" precision="22" scale="0" />
                          </key-property>
                      </composite-id>
                      <many-to-one name="TSapsystem" class="TSapsystem" update="false" insert="false" fetch="select">
                          <column name="SAP_SYSTEM_ID" precision="22" scale="0" not-null="true" />
                      </many-to-one>
                      <many-to-one name="TSite" class="TSite" update="false" insert="false" fetch="select">
                          <column name="SITE_ID" precision="22" scale="0" not-null="true" />
                      </many-to-one>
                      <set name="TSaproleBySapsysAndSites" inverse="true">
                          <key>
                              <column name="SITE_ID" precision="22" scale="0" not-null="true" />
                              <column name="SAP_SYSTEM_ID" precision="22" scale="0" not-null="true" />
                          </key>
                          <one-to-many class="TSaproleBySapsysAndSite" />
                      </set>
                  </class>
              </hibernate-mapping>
              TSapsystem.hbm.xml
              Code:
              <?xml version="1.0"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              
              <hibernate-mapping>
                  <class name="TSapsystem" table="T_SAPSYSTEM">
                      <id name="sapSystemId" type="big_decimal">
                          <column name="SAP_SYSTEM_ID" precision="22" scale="0" />
                          <generator class="assigned" />
                      </id>
                      <property name="sapSystemName" type="string">
                          <column name="SAP_SYSTEM_NAME" length="30" not-null="true" />
                      </property>
                      <property name="url" type="string">
                          <column name="URL" length="30" not-null="true" />
                      </property>
                      <property name="clientNumber" type="string">
                          <column name="CLIENT_NUMBER" length="30" />
                      </property>
                      <property name="userid" type="string">
                          <column name="USERID" length="30" not-null="true" />
                      </property>
                      <property name="password" type="string">
                          <column name="PASSWORD" length="30" not-null="true" />
                      </property>
                      <property name="iscua" type="java.lang.Character">
                          <column name="ISCUA" length="1" />
                      </property>
                      <property name="dateCreated" type="date">
                          <column name="DATE_CREATED" length="7" not-null="true" />
                      </property>
                      <property name="dateModified" type="date">
                          <column name="DATE_MODIFIED" length="7" not-null="true" />
                      </property>
                      <set name="TSapsystemAndSites" inverse="true">
                          <key>
                              <column name="SAP_SYSTEM_ID" precision="22" scale="0" not-null="true" />
                          </key>
                          <one-to-many class="TSapsystemAndSite" />
                      </set>
                  </class>
              </hibernate-mapping>
              TSaproleBySapsysAndSite.hbm.xml
              Code:
              <?xml version="1.0"?>
              <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
              
              <hibernate-mapping>
                  <class name="TSaproleBySapsysAndSite" table="T_SAPROLE_BY_SAPSYS_AND_SITE">
                      <id name="sapRoleId" type="big_decimal">
                          <column name="SAP_ROLE_ID" precision="22" scale="0" />
                          <generator class="assigned" />
                      </id>
                      <many-to-one name="TSapsystemAndSite" class="TSapsystemAndSite" fetch="select">
                          <column name="SITE_ID" precision="22" scale="0" not-null="true" />
                          <column name="SAP_SYSTEM_ID" precision="22" scale="0" not-null="true" />
                      </many-to-one>
                      <property name="sapRoleName" type="string">
                          <column name="SAP_ROLE_NAME" length="30" not-null="true" />
                      </property>
                      <property name="sapRoleDescription" type="string">
                          <column name="SAP_ROLE_DESCRIPTION" length="30" />
                      </property>
                      <property name="dateCreated" type="date">
                          <column name="DATE_CREATED" length="7" not-null="true" />
                      </property>
                      <property name="dateModified" type="date">
                          <column name="DATE_MODIFIED" length="7" not-null="true" />
                      </property>
                  </class>
              </hibernate-mapping>
              PS:- I have renamed some columns and changed timestamp to date, please suit yourself on this one. Also, for all your ids replace the generator with your strategy.

              Here I give you the domain objects:-

              TSite.java
              Code:
              import java.math.BigDecimal;
              import java.util.Date;
              import java.util.HashSet;
              import java.util.Set;
              
              public class TSite implements java.io.Serializable {
              
              	private BigDecimal siteId;
              	private String siteName;
              	private String city;
              	private String state;
              	private String zip;
              	private String plantCode;
              	private Date dateCreated;
              	private Date dateModified;
              	private Set TSapsystemAndSites = new HashSet(0);
              
              }
              TSapsystemAndSite
              Code:
              import java.util.HashSet;
              import java.util.Set;
              
              public class TSapsystemAndSite implements java.io.Serializable {
              
              	private TSapsystemAndSiteId id;
              	private TSapsystem TSapsystem;
              	private TSite TSite;
              	private Set TSaproleBySapsysAndSites = new HashSet(0);
              
              }
              TSapsystemAndSiteId
              Code:
              import java.math.BigDecimal;
              
              public class TSapsystemAndSiteId implements java.io.Serializable {
              
              	private BigDecimal siteId;
              	private BigDecimal sapSystemId;
              
              	public boolean equals(Object other) {
              		if ((this == other))
              			return true;
              		if ((other == null))
              			return false;
              		if (!(other instanceof TSapsystemAndSiteId))
              			return false;
              		TSapsystemAndSiteId castOther = (TSapsystemAndSiteId) other;
              
              		return ((this.getSiteId() == castOther.getSiteId()) || (this
              				.getSiteId() != null
              				&& castOther.getSiteId() != null && this.getSiteId().equals(
              				castOther.getSiteId())))
              				&& ((this.getSapSystemId() == castOther.getSapSystemId()) || (this
              						.getSapSystemId() != null
              						&& castOther.getSapSystemId() != null && this
              						.getSapSystemId().equals(castOther.getSapSystemId())));
              	}
              
              	public int hashCode() {
              		int result = 17;
              
              		result = 37 * result
              				+ (getSiteId() == null ? 0 : this.getSiteId().hashCode());
              		result = 37
              				* result
              				+ (getSapSystemId() == null ? 0 : this.getSapSystemId()
              						.hashCode());
              		return result;
              	}
              
              }
              TSapsystem
              Code:
              import java.math.BigDecimal;
              import java.util.Date;
              import java.util.HashSet;
              import java.util.Set;
              
              public class TSapsystem implements java.io.Serializable {
              
              	private BigDecimal sapSystemId;
              	private String sapSystemName;
              	private String url;
              	private String clientNumber;
              	private String userid;
              	private String password;
              	private Character iscua;
              	private Date dateCreated;
              	private Date dateModified;
              	private Set TSapsystemAndSites = new HashSet(0);
              
              }
              TSaproleBySapsysAndSite
              Code:
              import java.math.BigDecimal;
              import java.util.Date;
              
              public class TSaproleBySapsysAndSite implements java.io.Serializable {
              
              	private BigDecimal sapRoleId;
              	private TSapsystemAndSite TSapsystemAndSite;
              	private String sapRoleName;
              	private String sapRoleDescription;
              	private Date dateCreated;
              	private Date dateModified;
              }
              PS: You need to add getter/setters and if required constructors to the above classes to work hand in hand with the mapping files.

              Hope all this information gets you away from hitting the brick walls.

              Comment

              Working...
              X