Author: jonesde
Date: Wed Feb 28 23:32:20 2007 New Revision: 513211 URL: http://svn.apache.org/viewvc?view=rev&rev=513211 Log: Applied patch from Andrew Sykes, and tested and improved by Jacques and Chris Howe and Adrian Crum; Jira #OFBIZ-757 Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java ofbiz/trunk/framework/webtools/webapp/webtools/includes/header.ftl ofbiz/trunk/framework/webtools/webapp/webtools/templates/main_template.jsp Modified: ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java?view=diff&rev=513211&r1=513210&r2=513211 ============================================================================== --- ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java (original) +++ ofbiz/trunk/framework/webtools/src/org/ofbiz/webtools/WebToolsServices.java Wed Feb 28 23:32:20 2007 @@ -211,7 +211,7 @@ LocalDispatcher dispatcher = dctx.getDispatcher(); - List messages = new ArrayList(); + List messages = FastList.newInstance(); String path = (String)context.get("path"); String mostlyInserts = (String)context.get("mostlyInserts"); @@ -233,71 +233,71 @@ long pauseLong = filePause != null ? filePause.longValue() : 0; File baseDir = new File(path); + Map parseEntityXmlFileArgs = UtilMisc.toMap("mostlyInserts", mostlyInserts, + "createDummyFks", createDummyFks, + "maintainTimeStamps", maintainTimeStamps, + "txTimeout", txTimeout, + "userLogin", userLogin); + if (baseDir.isDirectory() && baseDir.canRead()) { File[] fileArray = baseDir.listFiles(); - ArrayList files = new ArrayList(fileArray.length); + FastList files = FastList.newInstance(); for (int a=0; a<fileArray.length; a++){ if (fileArray[a].getName().toUpperCase().endsWith("XML")) { files.add(fileArray[a]); } - } - boolean importedOne = false; - int fileListMarkedSize = files.size(); - int passes = 0; - for (int a=0; a<files.size(); a++){ - // Infinite loop defense - if (a == fileListMarkedSize) { - passes++; - fileListMarkedSize = files.size(); - messages.add("Pass " + passes + " complete"); - // This means we've done a pass - if ( false == importedOne ) { - // We've failed to make any imports - messages.add("Dropping out as we failed to make any imports on the last pass"); - a = files.size(); - continue; - } - importedOne = false; - } - File curFile = (File)files.get(a); - try{ - URL url = curFile.toURI().toURL(); - Map inputMap = UtilMisc.toMap("url", url, - "mostlyInserts", mostlyInserts, - "createDummyFks", createDummyFks, - "maintainTimeStamps", maintainTimeStamps, - "txTimeout", txTimeout, - "userLogin", userLogin); - Map outputMap = dispatcher.runSync("parseEntityXmlFile", inputMap); - Long numberRead = (Long)outputMap.get("rowProcessed"); - - messages.add("Got " + numberRead.longValue() + " entities from " + curFile); - - importedOne = true; - if (deleteFiles) { - curFile.delete(); - } - } catch (Exception ex){ - messages.add("Error trying to read from " + curFile + ": " + ex); - if (ex.toString().indexOf("referential integrity violation") > -1 || - ex.toString().indexOf("Integrity constraint violation") > -1){ - //It didn't work because object it depends on are still - //missing from the DB. Retry later. - // - //FIXME: Of course this is a potential infinite loop. - messages.add("Looks like referential integrity violation, will retry"); - files.add(curFile); - } - } - // pause in between files - if (pauseLong > 0) { - Debug.log("Pausing for [" + pauseLong + "] seconds - " + UtilDateTime.nowTimestamp()); + } + + int passes=0; + int initialListSize = files.size(); + int lastUnprocessedFilesCount = 0; + FastList unprocessedFiles = FastList.newInstance(); + while (files.size()>0 && + files.size() != lastUnprocessedFilesCount) { + lastUnprocessedFilesCount = files.size(); + unprocessedFiles = FastList.newInstance(); + Iterator filesItr = files.iterator(); + while (filesItr.hasNext()) { + File f = (File) filesItr.next(); try { - Thread.sleep((pauseLong * 1000)); - } catch(InterruptedException ie) { - Debug.log("Pause finished - " + UtilDateTime.nowTimestamp()); + URL furl = f.toURI().toURL(); + parseEntityXmlFileArgs.put("url", furl); + Map outputMap = dispatcher.runSync("parseEntityXmlFile", parseEntityXmlFileArgs); + Long numberRead = (Long) outputMap.get("rowProcessed"); + messages.add("Got " + numberRead.longValue() + " entities from " + f); + if (deleteFiles) { + messages.add("Deleting " + f); + f.delete(); + } + } catch(Exception e) { + unprocessedFiles.add(f); + messages.add("Failed " + f + " adding to retry list for next pass"); + } + // pause in between files + if (pauseLong > 0) { + Debug.log("Pausing for [" + pauseLong + "] seconds - " + UtilDateTime.nowTimestamp()); + try { + Thread.sleep((pauseLong * 1000)); + } catch(InterruptedException ie) { + Debug.log("Pause finished - " + UtilDateTime.nowTimestamp()); + } } } + files = unprocessedFiles; + passes++; + messages.add("Pass " + passes + " complete"); + Debug.logInfo("Pass " + passes + " complete", module); + } + lastUnprocessedFilesCount=unprocessedFiles.size(); + messages.add("---------------------------------------"); + messages.add("Succeeded: " + (initialListSize-lastUnprocessedFilesCount) + " of " + initialListSize); + messages.add("Failed: " + lastUnprocessedFilesCount + " of " + initialListSize); + messages.add("---------------------------------------"); + messages.add("Failed Files:"); + Iterator unprocessedFilesItr = unprocessedFiles.iterator(); + while (unprocessedFilesItr.hasNext()) { + File file = (File) unprocessedFilesItr.next(); + messages.add("" + file); } } else { messages.add("path not found or can't be read"); Modified: ofbiz/trunk/framework/webtools/webapp/webtools/includes/header.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/includes/header.ftl?view=diff&rev=513211&r1=513210&r2=513211 ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/includes/header.ftl (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/includes/header.ftl Wed Feb 28 23:32:20 2007 @@ -1,4 +1,4 @@ -<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <#-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file @@ -25,14 +25,14 @@ <#if (requestAttributes.person)?exists><#assign person = requestAttributes.person></#if> <#if (requestAttributes.partyGroup)?exists><#assign partyGroup = requestAttributes.partyGroup></#if> -<html> +<html xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>${layoutSettings.companyName}: <#if (page.titleProperty)?has_content>${uiLabelMap[page.titleProperty]}<#else>${(page.title)?if_exists}</#if></title> <script language="javascript" src="<@ofbizContentUrl>/images/calendar1.js</@ofbizContentUrl>" type="text/javascript"></script> <script language="javascript" src="<@ofbizContentUrl>/images/selectall.js</@ofbizContentUrl>" type="text/javascript"></script> <script language="javascript" src="<@ofbizContentUrl>/images/fieldlookup.js</@ofbizContentUrl>" type="text/javascript"></script> - <link rel="stylesheet" href="<@ofbizContentUrl>/images/maincss.css</@ofbizContentUrl>" type="text/css"> + <link rel="stylesheet" href="<@ofbizContentUrl>/images/maincss.css</@ofbizContentUrl>" type="text/css"/> </head> <body> Modified: ofbiz/trunk/framework/webtools/webapp/webtools/templates/main_template.jsp URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/templates/main_template.jsp?view=diff&rev=513211&r1=513210&r2=513211 ============================================================================== --- ofbiz/trunk/framework/webtools/webapp/webtools/templates/main_template.jsp (original) +++ ofbiz/trunk/framework/webtools/webapp/webtools/templates/main_template.jsp Wed Feb 28 23:32:20 2007 @@ -16,7 +16,6 @@ specific language governing permissions and limitations under the License. --%> -<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@ include file="/includes/envsetup.jsp" %> <%@ taglib uri='ofbizTags' prefix='ofbiz' %> <%@ taglib uri='regions' prefix='region' %> |
Free forum by Nabble | Edit this page |