Hi Ben & Jody,

I recently are trying to fix the Jenkins geoserver app-shcema online testing 
failure. 
(http://ares.opengeo.org/jenkins/view/geoserver/job/geoserver-master-app-schema-online/)

After I reproduced the problem at my developing machine ,  I found the issue 
may come  
org.geoserver.test.onlineTest.setup.AppSchemaTestOracleSetup.createTables. and 
it looks because the spatialIndex was not cleared after being used , and it 
then keep being added to the query.

after I added one line code to clear the spatialIndex in the loop, the Jenkins 
job works fine now. 

Can someone review the code and confirm that this is a right fix. 

Lingbo Jiang

Software Engineer
DP&S CSIRO 
Cnr Vimiera & Pembroke Roads
MARSFIELD  NSW  2122
Ph:+61-2-9372 4696
www.csiro.au/

//////////////////////////////////////

private void createTables(Map<String, File> propertyFiles, String parser)
            throws IllegalAttributeException, NoSuchElementException, 
IOException {
        
        StringBuffer buf = new StringBuffer();
        StringBuffer spatialIndex = new StringBuffer();
        // drop table procedure I copied from Victor's Oracle_Data_ref_set.sql
        buf
                .append("CREATE OR REPLACE PROCEDURE DROP_TABLE_OR_VIEW(TabName 
in Varchar2) IS ")
                .append("temp number:=0;")
                .append(" tes VARCHAR2 (200) := TabName;")
                .append(" drp_stmt VARCHAR2 (200):=null;")
                .append("BEGIN select count(*) into temp from user_tables where 
TABLE_NAME = tes;")
                .append("if temp = 1 then drp_stmt := 'Drop Table '||tes;")
                .append("EXECUTE IMMEDIATE drp_stmt;")
                 // drop views too
                .append("else select count(*) into temp from user_views where 
VIEW_NAME = tes;") 
                .append("if temp = 1 then drp_stmt := 'Drop VIEW '||tes;")
                .append("EXECUTE IMMEDIATE drp_stmt;end if;end if;")    
                .append("EXCEPTION WHEN OTHERS THEN ")
                .append(
                        "raise_application_error(-20001,'An error was 
encountered - '||SQLCODE||' -ERROR- '||SQLERRM);")
                .append("END DROP_TABLE_OR_VIEW;\n"); 

        for (String fileName : propertyFiles.keySet()) {
                       ..................
                       ............Skip many line code............
                       .................
                       id = feature.getIdentifier();                
                    // insert primary key
                    values[valueIndex] = "'" + id.toString() + "'";
                    buf.append(StringUtils.join(values, ","));
                    buf.append(")\n");
                }
            }
            buf.append(spatialIndex.toString());
            //////////////////////////
            spatialIndex.delete(0, spatialIndex.length()); /////// Since 
spatialIndex did not cleared , it will be added in next loop. 
            //////////////////////////
            if (buf.length() > 0) {
                this.sql = buf.toString();
            }
        }
    }
------------------------------------------------------------------------------
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to