From 15d7da90c0d5868d8aa3732c704a41cc488c2791 Mon Sep 17 00:00:00 2001
From: Nicky Perian <nickyperian@yahoo.com>
Date: Mon, 26 Mar 2012 21:29:01 -0500
Subject: [PATCH] OPEN-138 Intermittent write to character/new archetype.xml
 from Develop->Avatar-> Character Tests->Apperance To XML. Add explicit
 outfile.close() method before returning to caller. Add llinfos for file
 location as a troubleshooting aid.

---
 doc/contributions.txt        |  1 +
 indra/newview/llvoavatar.cpp | 11 ++++++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/doc/contributions.txt b/doc/contributions.txt
index a024815b8e3..ed13204b00c 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -850,6 +850,7 @@ Nicholaz Beresford
 Nick Rhodes
 Nicky Perian
 	OPEN-1
+	OPEN-138
 	STORM-1087
 	STORM-1090
 Nicoladie Gymnast
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index bc7f5a9744a..f46cedfc4be 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -7533,11 +7533,15 @@ void LLVOAvatar::dumpArchetypeXML( void* )
 {
 	LLAPRFile outfile;
 	outfile.open(gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,"new archetype.xml"), LL_APR_WB );
-	apr_file_t* file = outfile.getFileHandle() ;
+	apr_file_t* file = outfile.getFileHandle();
 	if (!file)
 	{
 		return;
 	}
+	else
+	{
+		llinfos << "xmlfile write handle obtained : " << gDirUtilp->getExpandedFilename(LL_PATH_CHARACTER,"new archetype.xml") << llendl;
+	}
 
 	apr_file_printf( file, "<?xml version=\"1.0\" encoding=\"US-ASCII\" standalone=\"yes\"?>\n" );
 	apr_file_printf( file, "<linden_genepool version=\"1.0\">\n" );
@@ -7577,6 +7581,11 @@ void LLVOAvatar::dumpArchetypeXML( void* )
 	}
 	apr_file_printf( file, "\t</archetype>\n" );
 	apr_file_printf( file, "\n</linden_genepool>\n" );
+	//explictly close the file if it is still open which it should be
+	if (file)
+	{
+		outfile.close();
+	}
 }
 
 
-- 
GitLab