xframium / xframium-java

xFramium - Rapid unified test case development
http://www.xframium.org
GNU General Public License v3.0
12 stars 18 forks source link

SQLSyntaxErrorException #36

Closed xframiumAS closed 7 years ago

xframiumAS commented 8 years ago

Getting below exception from SQLElementProvider

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'PP.SITE_ID' in 'on clause' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) at org.xframium.utility.SQLUtil.getResults(SQLUtil.java:87) at org.xframium.page.element.provider.SQLElementProvider.readElements(SQLElementProvider.java:128) at org.xframium.page.element.provider.SQLElementProvider.(SQLElementProvider.java:89) at org.xframium.page.element.provider.SQLElementProvider.(SQLElementProvider.java:102)

The readElements method is called twice(once for default query and then for manual query) public SQLElementProvider( String username, String password, String url, String driver, String query ) { this( username, password, url, driver ); this.query = (( query != null ) ? query : DEF_QUERY);

    readElements();
}

public SQLElementProvider( String username, String password, String url, String driver ) { this.username = username; this.password = password; this.url = url; this.driver = driver; this.query = DEF_QUERY;

    readElements();
}
xframiumAS commented 8 years ago

The constructor is changed as below

public SQLElementProvider( String username, String password, String url, String driver ) { this( username, password, url, driver, DEF_QUERY ); }

public SQLElementProvider( String username, String password, String url, String driver, String query )
{
    this.username = username;
    this.password = password;
    this.url = url;
    this.driver = driver;
    this.query = (( query != null ) ? query : DEF_QUERY);

    readElements();
}
allengeary commented 7 years ago

Resolved in 1.0.6 - additional call to read was removed