201029
authorhgs
Fri, 23 Jul 2010 10:03:59 +0300
changeset 40 910a23996aa0
parent 38 5210ffae7137
child 43 c5e73110f733
201029
clfwrapper/ClientSrc/CCLFDbItemContainer.cpp
clfwrapper/ClientSrc/CCLFDbItemProvider.cpp
clfwrapper/ClientSrc/CCLFEngineImpl.cpp
clfwrapper/ClientSrc/CCLFItemImpl.cpp
clfwrapper/ClientSrc/CCLFItemListModelImpl.cpp
clfwrapper/ClientSrc/CCLFQueryAdapter.cpp
clfwrapper/ClientSrc/CCLFServerProxy.cpp
contextengine/plugins/calendarplugin/src/CalendarContextPlugin.cpp
contextengine/src/contextengine.cpp
harvester/blacklistclient/src/blacklistclient.cpp
harvester/blacklistclient/traces/blacklistclientTraces.h
harvester/blacklistclient/traces/fixed_id.definitions
harvester/blacklistserver/src/blacklistserver.cpp
harvester/blacklistserver/traces/blacklistserverTraces.h
harvester/blacklistserver/traces/fixed_id.definitions
harvester/client/src/harvesterclient.cpp
harvester/client/src/harvestereventobserverao.cpp
harvester/client/src/harvesterrequestactive.cpp
harvester/client/traces/fixed_id.definitions
harvester/client/traces/harvesterclientTraces.h
harvester/client/traces/harvesterclientaoTraces.h
harvester/common/inc/harvestdata.inl
harvester/common/inc/harvestercenreputil.h
harvester/common/inc/harvestereventmanager.h
harvester/common/inc/harvesterplugininfo.h
harvester/common/src/blacklistitem.cpp
harvester/common/src/harvestercenreputil.cpp
harvester/common/src/harvesterdata.cpp
harvester/common/src/harvestereventmanager.cpp
harvester/common/src/harvesterexifutil.cpp
harvester/common/src/harvestermediaidutil.cpp
harvester/common/src/harvesterpluginfactory.cpp
harvester/common/src/placeholderdata.cpp
harvester/common/src/propertywatcher.cpp
harvester/common/traces/fixed_id.definitions
harvester/common/traces/harvestereventmanagerTraces.h
harvester/common/traces/harvesterexifutilTraces.h
harvester/composerplugins/imagecomposer/src/composerimageplugin.cpp
harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp
harvester/composerplugins/imagecomposer/src/locationrelationobserver.cpp
harvester/harvesterplugins/AudioPlugin/src/harvesteraudioplugin.cpp
harvester/harvesterplugins/AudioPlugin/src/harvesteraudiopluginutils.cpp
harvester/harvesterplugins/ImagePlugin/src/harvesterimageplugin.cpp
harvester/harvesterplugins/MessagePlugin/src/harvestermessageplugin.cpp
harvester/harvesterplugins/OMADRMPlugin/group/harvesteromadrmplugin.mmp
harvester/harvesterplugins/OMADRMPlugin/inc/harvesteromadrmplugin.h
harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp
harvester/harvesterplugins/RTPPlugin/src/harvesterrtpmetadatareader.cpp
harvester/harvesterplugins/VideoPlugin/inc/harvestervideoplugin.h
harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp
harvester/harvesterplugins/WMVPlugin/src/harvesterwmvplugin.cpp
harvester/monitorplugins/fileplugin/src/FolderRenamer.cpp
harvester/monitorplugins/fileplugin/src/fileeventhandlerao.cpp
harvester/monitorplugins/fileplugin/src/filemonitorao.cpp
harvester/monitorplugins/fileplugin/src/filemonitorplugin.cpp
harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp
harvester/monitorplugins/inc/mdsfspqueue.inl
harvester/monitorplugins/mdsfileserverplugin/src/mdsfileserverplugin.cpp
harvester/monitorplugins/messageplugin/src/messagemonitorplugin.cpp
harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h
harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp
harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp
harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp
harvester/server/src/harvesterao.cpp
harvester/server/src/harvesterqueue.cpp
harvester/server/src/harvesterserver.cpp
harvester/server/src/mdeobjecthandler.cpp
harvester/server/src/ondemandao.cpp
harvester/server/src/reharvesterao.cpp
harvester/server/traces/fixed_id.definitions
harvester/server/traces/harvesteraoTraces.h
harvester/server/traces/harvesterserverTraces.h
harvester/server/traces/harvesterserversessionTraces.h
iadstoprestart/src/iadrestart.cpp
iadstoprestart/src/iadstop.cpp
locationmanager/ReverseGeocode/group/reversegeocode.mmp
locationmanager/ReverseGeocode/src/internalreversegeocode.cpp
locationmanager/client/src/rlocationobjectmanipulator.cpp
locationmanager/client/src/rlocationtrail.cpp
locationmanager/geoconverter/group/geoconverter.mmp
locationmanager/geoconverter/src/cgeoconverter.cpp
locationmanager/geotagger/group/geotagger.mmp
locationmanager/geotagger/inc/cinternalgeotagger.h
locationmanager/geotagger/src/cinternalgeotagger.cpp
locationmanager/group/bld.inf
locationmanager/locationtrail/group/locationtrail.mmp
locationmanager/locationtrail/inc/clocationrecord.h
locationmanager/locationtrail/src/cgpxconverterao.cpp
locationmanager/locationtrail/src/clocationrecord.cpp
locationmanager/locationtrail/src/ctracklog.cpp
locationmanager/locationtrail/src/locationremappingao.cpp
locationmanager/server/group/locationmanagerserver.mmp
locationmanager/server/inc/clocationmanagerserver.h
locationmanager/server/src/clocationgeotagtimerao.cpp
locationmanager/server/src/clocationmanagerserver.cpp
locationmanager/tagcreator/group/tagcreator.mmp
mds_plat/location_manager_api/group/bld.inf
mds_plat/location_manager_api/inc/geotagger.h
metadataengine/client/src/mdeasynchronousfindao.cpp
metadataengine/client/src/mdeevent.cpp
metadataengine/client/src/mdeeventcondition.cpp
metadataengine/client/src/mdeharvestersession.cpp
metadataengine/client/src/mdenotifierao.cpp
metadataengine/client/src/mdeobject.cpp
metadataengine/client/src/mdeobjectcondition.cpp
metadataengine/client/src/mdeproperty.cpp
metadataengine/client/src/mdequery.cpp
metadataengine/client/src/mdequerycriteriaserialization.cpp
metadataengine/client/src/mdequeryimpl.cpp
metadataengine/client/src/mderelationcondition.cpp
metadataengine/client/src/mdesessionimpl.cpp
metadataengine/client/src/mdetextpropertycondition.cpp
metadataengine/common/src/mdcserializationbuffer.cpp
metadataengine/server/inc/mdslogger.h
metadataengine/server/inc/mdsserversession.h
metadataengine/server/src/mdsclausebuffer.cpp
metadataengine/server/src/mdsfindengine.cpp
metadataengine/server/src/mdsfindsqlclause.cpp
metadataengine/server/src/mdsgetimeiao.cpp
metadataengine/server/src/mdsimportexport.cpp
metadataengine/server/src/mdsitemdef.cpp
metadataengine/server/src/mdsmaintenanceengine.cpp
metadataengine/server/src/mdsmanipulationengine.cpp
metadataengine/server/src/mdsnotifier.cpp
metadataengine/server/src/mdsschema.cpp
metadataengine/server/src/mdsserver.cpp
metadataengine/server/src/mdsserversession.cpp
metadataengine/server/src/mdssqldbmaintenance.cpp
metadataengine/server/src/mdssqlfindoperation.cpp
metadataengine/server/src/mdssqliteconnection.cpp
metadataengine/server/src/mdssqlobjectmanipulate.cpp
rom/mds_cellidenabled.iby
sis/mds/mds_stub.sis
sis/mds/package.pkg
sis/mds/package_cellid_reverse_geocode_enabled.pkg
sis/mds/package_cellidenabled.pkg
sis/mds/package_reverse_geocode_enabled_only.pkg
sis/mds/package_separate.pkg
sis/mds/stub.pkg
watchdog/src/watchdog.cpp
--- a/clfwrapper/ClientSrc/CCLFDbItemContainer.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFDbItemContainer.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -65,6 +65,7 @@
 CCLFContainerItem::~CCLFContainerItem()
     {
     delete iMdEObject;
+    iMdEObject = NULL;
     }
 
 // -----------------------------------------------------------------------------
--- a/clfwrapper/ClientSrc/CCLFDbItemProvider.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFDbItemProvider.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -84,6 +84,7 @@
     {
     Cancel();
     delete iObjectQuery;
+    iObjectQuery = NULL;
     iItemArray.ResetAndDestroy();
     }
 
--- a/clfwrapper/ClientSrc/CCLFEngineImpl.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFEngineImpl.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -105,14 +105,21 @@
 CCLFEngineImpl::~CCLFEngineImpl()
     {
     delete iItemProvider;
+    iItemProvider = NULL;
     delete iUpdateStartEventHandler;
+    iUpdateStartEventHandler = NULL;
     delete iUpdateEndEventHandler;
+    iUpdateEndEventHandler = NULL;
     delete iDbItemContainer;
+    iDbItemContainer = NULL;
     delete iCLFServerProxy;
+    iCLFServerProxy = NULL;
     iChangedItemObserverArray.Close();
     iProcessObserverArray.Close();
     delete iQueryAdapter;
+    iQueryAdapter = NULL;
     delete iMdESession;
+    iMdESession = NULL;
     }
 
 // -----------------------------------------------------------------------------
--- a/clfwrapper/ClientSrc/CCLFItemImpl.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFItemImpl.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -521,6 +521,7 @@
     for ( HBufC* const* p = hashIter.NextValue(); p; p = hashIter.NextValue() )
         {
         delete *p;
+        p = NULL;
         }
     iTextMap.Close();
     }
--- a/clfwrapper/ClientSrc/CCLFItemListModelImpl.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFItemListModelImpl.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -157,7 +157,9 @@
     {
     iChangedItemProvider.RemoveChangedItemProviderObserver( this );
     delete iMimeTypeArray;
+    iMimeTypeArray = NULL;
     delete iMediaTypeArray;
+    iMediaTypeArray = NULL;
     iItemArray.ResetAndDestroy();
     delete iItemProvider;
     iResultArray.Close();
--- a/clfwrapper/ClientSrc/CCLFQueryAdapter.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFQueryAdapter.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -255,8 +255,8 @@
         }
 
     aStatus = KRequestPending;
-    iStatusArray.Append( &aStatus );
-    iQueryArray.Append( aQuery );
+    iStatusArray.AppendL( &aStatus );
+    iQueryArray.AppendL( aQuery );
 
     // Check that we can actually execute the query. We can if we have at least one query condition.
     if ( rootCondition.Count() > 0 )
--- a/clfwrapper/ClientSrc/CCLFServerProxy.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/clfwrapper/ClientSrc/CCLFServerProxy.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -758,7 +758,9 @@
     TRAP_IGNORE( iMdESession.RemoveObjectPresentObserverL( *this ));
     iUpdateItemsHandlerArray.ResetAndDestroy();
     delete iUriArray;
+    iUriArray = NULL;
     delete iExtensionArray;
+    iExtensionArray = NULL;
     iFs.Close();
 
     iHC.RemoveHarvesterEventObserver( *this );
--- a/contextengine/plugins/calendarplugin/src/CalendarContextPlugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/contextengine/plugins/calendarplugin/src/CalendarContextPlugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -89,12 +89,15 @@
 	{
 	WRITELOG( "CCalendarContextPlugin::~CCalendarContextPlugin -- ENTER" );
 	delete iCalInstanceView;
+	iCalInstanceView = NULL;
 	delete iCalSession;
+	iCalSession = NULL;
 	
 	if( iInitTimer )
 	    {
 	    iInitTimer->Cancel();
 	    delete iInitTimer;
+	    iInitTimer = NULL;
 	    }
 		
 	WRITELOG( "CCalendarContextPlugin::~CCalendarContextPlugin -- RETURN" );
--- a/contextengine/src/contextengine.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/contextengine/src/contextengine.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -109,6 +109,7 @@
             {
             // destroy the singleton and free TLS
             delete data;
+            data = NULL;
             UserSvr::DllFreeTls( KContextEngineTLSKey );
             }
         }
@@ -132,6 +133,7 @@
         {
         // destroy the singleton and free TLS
         delete data;
+        data = NULL;
         UserSvr::DllFreeTls( KContextEngineTLSKey );
         }
     }
@@ -144,6 +146,7 @@
     {
     WRITELOG( "CContextEngine::~CContextEngine" ); // DEBUG INFO
     delete iContextEngineAO;
+    iContextEngineAO = NULL;
 
     MdsUtils::CleanupPtrArray<CContextSnapshotItem>( &iSnapshotQueue );
     REComSession::FinalClose(); // we are done
@@ -279,6 +282,7 @@
     if ( iSnapshotQueue.Append( aItem ) != KErrNone )
         {
         delete aItem;
+        aItem = NULL;
         return;
         }
 
--- a/harvester/blacklistclient/src/blacklistclient.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistclient/src/blacklistclient.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -278,6 +278,7 @@
     if ( err != KErrNone )
         {
         delete item;
+        item = NULL;
         }
 
 
@@ -300,6 +301,7 @@
         {
         CBlacklistItem* item = iBlacklistMemoryTable[index];
         delete item;
+        item = NULL;
         iBlacklistMemoryTable.Remove( index );
         }
 
--- a/harvester/blacklistclient/traces/blacklistclientTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistclient/traces/blacklistclientTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __BLACKLISTCLIENTTRACES_H__
@@ -6,35 +6,35 @@
 
 #define KOstTraceComponentID 0x2001b2ed
 
-#define RBLACKLISTCLIENT_RBLACKLISTCLIENT 0x860001
-#define DUP1_RBLACKLISTCLIENT_RBLACKLISTCLIENT 0x860002
-#define RBLACKLISTCLIENT_CONNECT 0x860003
-#define DUP1_RBLACKLISTCLIENT_CONNECT 0x860004
-#define RBLACKLISTCLIENT_VERSION 0x860005
-#define RBLACKLISTCLIENT_STARTSERVER 0x860006
-#define DUP1_RBLACKLISTCLIENT_STARTSERVER 0x860007
-#define RBLACKLISTCLIENT_REMOVEFROMDBL 0x860008
-#define DUP1_RBLACKLISTCLIENT_REMOVEFROMDBL 0x860009
-#define RBLACKLISTCLIENT_DOLOADBLACKLISTL 0x86000a
-#define DUP1_RBLACKLISTCLIENT_DOLOADBLACKLISTL 0x86000b
-#define RBLACKLISTCLIENT_LOADBLACKLISTL 0x86000c
-#define DUP1_RBLACKLISTCLIENT_LOADBLACKLISTL 0x86000d
-#define RBLACKLISTCLIENT_ADDTOMEMORYTABLEL 0x86000e
-#define DUP1_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL 0x86000f
-#define RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL 0x860010
-#define DUP1_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL 0x860011
-#define RBLACKLISTCLIENT_ISBLACKLISTEDL 0x860012
-#define DUP1_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x860013
-#define DUP2_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x860014
-#define DUP3_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x860015
-#define RBLACKLISTCLIENT_GETLISTINDEX 0x860016
-#define DUP1_RBLACKLISTCLIENT_GETLISTINDEX 0x860017
-#define RBLACKLISTCLIENT_ADDL 0x860018
-#define DUP1_RBLACKLISTCLIENT_ADDL 0x860019
-#define RBLACKLISTCLIENT_REMOVEL 0x86001a
-#define DUP1_RBLACKLISTCLIENT_REMOVEL 0x86001b
-#define RBLACKLISTCLIENT_CLOSEDBL 0x86001c
-#define DUP1_RBLACKLISTCLIENT_CLOSEDBL 0x86001d
+#define RBLACKLISTCLIENT_RBLACKLISTCLIENT 0x30001
+#define DUP1_RBLACKLISTCLIENT_RBLACKLISTCLIENT 0x30002
+#define RBLACKLISTCLIENT_CONNECT 0x30003
+#define DUP1_RBLACKLISTCLIENT_CONNECT 0x30004
+#define RBLACKLISTCLIENT_VERSION 0x30005
+#define RBLACKLISTCLIENT_STARTSERVER 0x30006
+#define DUP1_RBLACKLISTCLIENT_STARTSERVER 0x30007
+#define RBLACKLISTCLIENT_REMOVEFROMDBL 0x30008
+#define DUP1_RBLACKLISTCLIENT_REMOVEFROMDBL 0x30009
+#define RBLACKLISTCLIENT_DOLOADBLACKLISTL 0x3000a
+#define DUP1_RBLACKLISTCLIENT_DOLOADBLACKLISTL 0x3000b
+#define RBLACKLISTCLIENT_LOADBLACKLISTL 0x3000c
+#define DUP1_RBLACKLISTCLIENT_LOADBLACKLISTL 0x3000d
+#define RBLACKLISTCLIENT_ADDTOMEMORYTABLEL 0x3000e
+#define DUP1_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL 0x3000f
+#define RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL 0x30010
+#define DUP1_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL 0x30011
+#define RBLACKLISTCLIENT_ISBLACKLISTEDL 0x30012
+#define DUP1_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x30013
+#define DUP2_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x30014
+#define DUP3_RBLACKLISTCLIENT_ISBLACKLISTEDL 0x30015
+#define RBLACKLISTCLIENT_GETLISTINDEX 0x30016
+#define DUP1_RBLACKLISTCLIENT_GETLISTINDEX 0x30017
+#define RBLACKLISTCLIENT_ADDL 0x30018
+#define DUP1_RBLACKLISTCLIENT_ADDL 0x30019
+#define RBLACKLISTCLIENT_REMOVEL 0x3001a
+#define DUP1_RBLACKLISTCLIENT_REMOVEL 0x3001b
+#define RBLACKLISTCLIENT_CLOSEDBL 0x3001c
+#define DUP1_RBLACKLISTCLIENT_CLOSEDBL 0x3001d
 
 
 #endif
--- a/harvester/blacklistclient/traces/fixed_id.definitions	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistclient/traces/fixed_id.definitions	Fri Jul 23 10:03:59 2010 +0300
@@ -1,31 +1,31 @@
 #Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_ADDL=0x19
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL=0xf
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_CLOSEDBL=0x1d
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_CONNECT=0x4
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_DOLOADBLACKLISTL=0xb
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_GETLISTINDEX=0x17
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x13
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_LOADBLACKLISTL=0xd
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_RBLACKLISTCLIENT=0x2
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_REMOVEFROMDBL=0x9
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL=0x11
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_REMOVEL=0x1b
-[TRACE]TRACE_NORMAL[0x86]_DUP1_RBLACKLISTCLIENT_STARTSERVER=0x7
-[TRACE]TRACE_NORMAL[0x86]_DUP2_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x14
-[TRACE]TRACE_NORMAL[0x86]_DUP3_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x15
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_ADDL=0x18
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL=0xe
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_CLOSEDBL=0x1c
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_CONNECT=0x3
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_DOLOADBLACKLISTL=0xa
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_GETLISTINDEX=0x16
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x12
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_LOADBLACKLISTL=0xc
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_RBLACKLISTCLIENT=0x1
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_REMOVEFROMDBL=0x8
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL=0x10
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_REMOVEL=0x1a
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_STARTSERVER=0x6
-[TRACE]TRACE_NORMAL[0x86]_RBLACKLISTCLIENT_VERSION=0x5
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_ADDL=0x19
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL=0xf
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_CLOSEDBL=0x1d
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_CONNECT=0x4
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_DOLOADBLACKLISTL=0xb
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_GETLISTINDEX=0x17
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x13
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_LOADBLACKLISTL=0xd
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_RBLACKLISTCLIENT=0x2
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_REMOVEFROMDBL=0x9
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL=0x11
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_REMOVEL=0x1b
+[TRACE]TRACE_NORMAL[0x3]_DUP1_RBLACKLISTCLIENT_STARTSERVER=0x7
+[TRACE]TRACE_NORMAL[0x3]_DUP2_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x14
+[TRACE]TRACE_NORMAL[0x3]_DUP3_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x15
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_ADDL=0x18
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_ADDTOMEMORYTABLEL=0xe
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_CLOSEDBL=0x1c
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_CONNECT=0x3
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_DOLOADBLACKLISTL=0xa
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_GETLISTINDEX=0x16
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_ISBLACKLISTEDL=0x12
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_LOADBLACKLISTL=0xc
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_RBLACKLISTCLIENT=0x1
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_REMOVEFROMDBL=0x8
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_REMOVEFROMMEMORYTABLEL=0x10
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_REMOVEL=0x1a
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_STARTSERVER=0x6
+[TRACE]TRACE_NORMAL[0x3]_RBLACKLISTCLIENT_VERSION=0x5
--- a/harvester/blacklistserver/src/blacklistserver.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistserver/src/blacklistserver.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -217,6 +217,7 @@
    	iBlacklistServerChunk.Close();
  
     delete iSqLiteConnection;
+    iSqLiteConnection = NULL;
 
     WRITELOG( "CBlacklistServer::~CBlacklistServer - end" );
     OstTrace0( TRACE_NORMAL, DUP1_CBLACKLISTSERVER_CBLACKLISTSERVER, "CBlacklistServer::~CBlacklistServer -end " );
@@ -291,6 +292,7 @@
         {
         TRAP(result, CBlacklistServer::ExeMainL());
         delete cleanup;
+        cleanup = NULL;
         }
     __UHEAP_MARKEND;
     WRITELOG( "CBlacklistServer::E32Main - end" );
@@ -495,6 +497,7 @@
     if ( err != KErrNone )
         {
         delete item;
+        item = NULL;
         }
 
     WRITELOG( "CBlacklistServer::AddToMemoryTableL - end" );
@@ -518,6 +521,7 @@
         {
         CBlacklistItem * item = iBlacklistMemoryTable[index];
         delete item;
+        item = NULL;
         iBlacklistMemoryTable.Remove( index );
         }
 
@@ -723,7 +727,7 @@
         variables->AppendL( TColumn( lcBuf ) );     
         variables->AppendL( TColumn( aMediaId ) );    
  
-        iBufferedRemoveItems.Append( variables ); // transfer ownership
+        iBufferedRemoveItems.AppendL( variables ); // transfer ownership
         iDBUpdateNeeded = ETrue;
         CleanupStack::Pop( lcBuf );
         CleanupStack::Pop( 2, variables );
@@ -768,7 +772,7 @@
         rowData->AppendL( TColumn( lcBuf ) );     
         rowData->AppendL( TColumn( aMediaId ) );    
 
-        iBufferedAddedItems.Append( rowData ); // transfer ownership
+        iBufferedAddedItems.AppendL( rowData ); // transfer ownership
         iDBUpdateNeeded = ETrue;
         CleanupStack::Pop( lcBuf );
         CleanupStack::Pop( 2, rowData );
--- a/harvester/blacklistserver/traces/blacklistserverTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistserver/traces/blacklistserverTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __BLACKLISTSERVERTRACES_H__
@@ -6,60 +6,60 @@
 
 #define KOstTraceComponentID 0x2001b2eb
 
-#define CBLACKLISTSERVER_CUSTOMSECURITYCHECKL 0x860001
-#define DUP1_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL 0x860002
-#define CBLACKLISTSERVER_CUSTOMFAILUREACTIONL 0x860003
-#define CBLACKLISTSERVER_NEWL 0x860004
-#define DUP1_CBLACKLISTSERVER_NEWL 0x860005
-#define CBLACKLISTSERVER_NEWLC 0x860006
-#define DUP1_CBLACKLISTSERVER_NEWLC 0x860007
-#define CBLACKLISTSERVER_CONSTRUCTL 0x860008
-#define DUP1_CBLACKLISTSERVER_CONSTRUCTL 0x860009
-#define CBLACKLISTSERVER_CBLACKLISTSERVER 0x86000a
-#define DUP1_CBLACKLISTSERVER_CBLACKLISTSERVER 0x86000b
-#define CBLACKLISTSERVER_CLOSEDB 0x86000c
-#define DUP1_CBLACKLISTSERVER_CLOSEDB 0x86000d
-#define CBLACKLISTSERVER_EXEMAINL 0x86000e
-#define DUP1_CBLACKLISTSERVER_EXEMAINL 0x86000f
-#define _E32MAIN 0x860010
-#define DUP1__E32MAIN 0x860011
-#define CBLACKLISTSERVER_OPENDATABASEL 0x860012
-#define DUP1_CBLACKLISTSERVER_OPENDATABASEL 0x860013
-#define CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL 0x860014
-#define DUP1_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL 0x860015
-#define CBLACKLISTSERVER_MEMORYHANDLE 0x860016
-#define CBLACKLISTSERVER_LOADDATABASETOMEMORYL 0x860017
-#define DUP1_CBLACKLISTSERVER_LOADDATABASETOMEMORYL 0x860018
-#define CBLACKLISTSERVER_CREATEBLACKLISTTABLEL 0x860019
-#define DUP1_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL 0x86001a
-#define CBLACKLISTSERVER_ADDTOMEMORYTABLEL 0x86001b
-#define DUP1_CBLACKLISTSERVER_ADDTOMEMORYTABLEL 0x86001c
-#define CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE 0x86001d
-#define DUP1_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE 0x86001e
-#define CBLACKLISTSERVER_GETMEMORYTABLEINDEX 0x86001f
-#define DUP1_CBLACKLISTSERVER_GETMEMORYTABLEINDEX 0x860020
-#define CBLACKLISTSERVER_TABLEEXISTSL 0x860021
-#define DUP1_CBLACKLISTSERVER_TABLEEXISTSL 0x860022
-#define CBLACKLISTSERVER_NEWSESSIONL 0x860023
-#define DUP1_CBLACKLISTSERVER_NEWSESSIONL 0x860024
-#define CBLACKLISTSERVER_RUNERROR 0x860025
-#define DUP1_CBLACKLISTSERVER_RUNERROR 0x860026
-#define CBLACKLISTSERVER_ADDSESSION 0x860027
-#define CBLACKLISTSERVER_REMOVESESSION 0x860028
-#define DUP1_CBLACKLISTSERVER_REMOVESESSION 0x860029
-#define DUP2_CBLACKLISTSERVER_REMOVESESSION 0x86002a
-#define CBLACKLISTSERVER_ADDL 0x86002b
-#define DUP1_CBLACKLISTSERVER_ADDL 0x86002c
-#define CBLACKLISTSERVER_REMOVEL 0x86002d
-#define DUP1_CBLACKLISTSERVER_REMOVEL 0x86002e
-#define CBLACKLISTSERVER_REMOVEFROMDBL 0x86002f
-#define DUP1_CBLACKLISTSERVER_REMOVEFROMDBL 0x860030
-#define CBLACKLISTSERVER_ADDTODBL 0x860031
-#define DUP1_CBLACKLISTSERVER_ADDTODBL 0x860032
-#define CBLACKLISTSERVER_WRITEALLDATATODBL 0x860033
-#define DUP1_CBLACKLISTSERVER_WRITEALLDATATODBL 0x860034
-#define CBLACKLISTSERVER_COMMITBUFFEREDITEMSL 0x860035
-#define DUP1_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL 0x860036
+#define CBLACKLISTSERVER_CUSTOMSECURITYCHECKL 0x30001
+#define DUP1_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL 0x30002
+#define CBLACKLISTSERVER_CUSTOMFAILUREACTIONL 0x30003
+#define CBLACKLISTSERVER_NEWL 0x30004
+#define DUP1_CBLACKLISTSERVER_NEWL 0x30005
+#define CBLACKLISTSERVER_NEWLC 0x30006
+#define DUP1_CBLACKLISTSERVER_NEWLC 0x30007
+#define CBLACKLISTSERVER_CONSTRUCTL 0x30008
+#define DUP1_CBLACKLISTSERVER_CONSTRUCTL 0x30009
+#define CBLACKLISTSERVER_CBLACKLISTSERVER 0x3000a
+#define DUP1_CBLACKLISTSERVER_CBLACKLISTSERVER 0x3000b
+#define CBLACKLISTSERVER_CLOSEDB 0x3000c
+#define DUP1_CBLACKLISTSERVER_CLOSEDB 0x3000d
+#define CBLACKLISTSERVER_EXEMAINL 0x3000e
+#define DUP1_CBLACKLISTSERVER_EXEMAINL 0x3000f
+#define _E32MAIN 0x30010
+#define DUP1__E32MAIN 0x30011
+#define CBLACKLISTSERVER_OPENDATABASEL 0x30012
+#define DUP1_CBLACKLISTSERVER_OPENDATABASEL 0x30013
+#define CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL 0x30014
+#define DUP1_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL 0x30015
+#define CBLACKLISTSERVER_MEMORYHANDLE 0x30016
+#define CBLACKLISTSERVER_LOADDATABASETOMEMORYL 0x30017
+#define DUP1_CBLACKLISTSERVER_LOADDATABASETOMEMORYL 0x30018
+#define CBLACKLISTSERVER_CREATEBLACKLISTTABLEL 0x30019
+#define DUP1_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL 0x3001a
+#define CBLACKLISTSERVER_ADDTOMEMORYTABLEL 0x3001b
+#define DUP1_CBLACKLISTSERVER_ADDTOMEMORYTABLEL 0x3001c
+#define CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE 0x3001d
+#define DUP1_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE 0x3001e
+#define CBLACKLISTSERVER_GETMEMORYTABLEINDEX 0x3001f
+#define DUP1_CBLACKLISTSERVER_GETMEMORYTABLEINDEX 0x30020
+#define CBLACKLISTSERVER_TABLEEXISTSL 0x30021
+#define DUP1_CBLACKLISTSERVER_TABLEEXISTSL 0x30022
+#define CBLACKLISTSERVER_NEWSESSIONL 0x30023
+#define DUP1_CBLACKLISTSERVER_NEWSESSIONL 0x30024
+#define CBLACKLISTSERVER_RUNERROR 0x30025
+#define DUP1_CBLACKLISTSERVER_RUNERROR 0x30026
+#define CBLACKLISTSERVER_ADDSESSION 0x30027
+#define CBLACKLISTSERVER_REMOVESESSION 0x30028
+#define DUP1_CBLACKLISTSERVER_REMOVESESSION 0x30029
+#define DUP2_CBLACKLISTSERVER_REMOVESESSION 0x3002a
+#define CBLACKLISTSERVER_ADDL 0x3002b
+#define DUP1_CBLACKLISTSERVER_ADDL 0x3002c
+#define CBLACKLISTSERVER_REMOVEL 0x3002d
+#define DUP1_CBLACKLISTSERVER_REMOVEL 0x3002e
+#define CBLACKLISTSERVER_REMOVEFROMDBL 0x3002f
+#define DUP1_CBLACKLISTSERVER_REMOVEFROMDBL 0x30030
+#define CBLACKLISTSERVER_ADDTODBL 0x30031
+#define DUP1_CBLACKLISTSERVER_ADDTODBL 0x30032
+#define CBLACKLISTSERVER_WRITEALLDATATODBL 0x30033
+#define DUP1_CBLACKLISTSERVER_WRITEALLDATATODBL 0x30034
+#define CBLACKLISTSERVER_COMMITBUFFEREDITEMSL 0x30035
+#define DUP1_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL 0x30036
 
 
 #endif
--- a/harvester/blacklistserver/traces/fixed_id.definitions	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/blacklistserver/traces/fixed_id.definitions	Fri Jul 23 10:03:59 2010 +0300
@@ -1,56 +1,56 @@
 #Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_ADDL=0x2b
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_ADDSESSION=0x27
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_ADDTODBL=0x31
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_ADDTOMEMORYTABLEL=0x1b
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CBLACKLISTSERVER=0xa
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CLOSEDB=0xc
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL=0x35
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CONSTRUCTL=0x8
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL=0x19
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CUSTOMFAILUREACTIONL=0x3
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_EXEMAINL=0xe
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_GETMEMORYTABLEINDEX=0x1f
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_LOADDATABASETOMEMORYL=0x17
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_MEMORYHANDLE=0x16
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_NEWL=0x4
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_NEWLC=0x6
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_NEWSESSIONL=0x23
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_OPENDATABASEL=0x12
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_REMOVEFROMDBL=0x2f
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE=0x1d
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_REMOVEL=0x2d
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_REMOVESESSION=0x28
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_RUNERROR=0x25
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL=0x14
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_TABLEEXISTSL=0x21
-[TRACE]TRACE_NORMAL[0x86]_CBLACKLISTSERVER_WRITEALLDATATODBL=0x33
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_ADDL=0x2c
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_ADDTODBL=0x32
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_ADDTOMEMORYTABLEL=0x1c
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_CBLACKLISTSERVER=0xb
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_CLOSEDB=0xd
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL=0x36
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_CONSTRUCTL=0x9
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL=0x1a
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL=0x2
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_EXEMAINL=0xf
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_GETMEMORYTABLEINDEX=0x20
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_LOADDATABASETOMEMORYL=0x18
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_NEWL=0x5
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_NEWLC=0x7
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_NEWSESSIONL=0x24
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_OPENDATABASEL=0x13
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_REMOVEFROMDBL=0x30
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE=0x1e
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_REMOVEL=0x2e
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_REMOVESESSION=0x29
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_RUNERROR=0x26
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL=0x15
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_TABLEEXISTSL=0x22
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CBLACKLISTSERVER_WRITEALLDATATODBL=0x34
-[TRACE]TRACE_NORMAL[0x86]_DUP1__E32MAIN=0x11
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CBLACKLISTSERVER_REMOVESESSION=0x2a
-[TRACE]TRACE_NORMAL[0x86]__E32MAIN=0x10
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_ADDL=0x2b
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_ADDSESSION=0x27
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_ADDTODBL=0x31
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_ADDTOMEMORYTABLEL=0x1b
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CBLACKLISTSERVER=0xa
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CLOSEDB=0xc
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL=0x35
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CONSTRUCTL=0x8
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL=0x19
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CUSTOMFAILUREACTIONL=0x3
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL=0x1
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_EXEMAINL=0xe
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_GETMEMORYTABLEINDEX=0x1f
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_LOADDATABASETOMEMORYL=0x17
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_MEMORYHANDLE=0x16
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_NEWL=0x4
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_NEWLC=0x6
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_NEWSESSIONL=0x23
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_OPENDATABASEL=0x12
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_REMOVEFROMDBL=0x2f
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE=0x1d
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_REMOVEL=0x2d
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_REMOVESESSION=0x28
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_RUNERROR=0x25
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL=0x14
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_TABLEEXISTSL=0x21
+[TRACE]TRACE_NORMAL[0x3]_CBLACKLISTSERVER_WRITEALLDATATODBL=0x33
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_ADDL=0x2c
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_ADDTODBL=0x32
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_ADDTOMEMORYTABLEL=0x1c
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_CBLACKLISTSERVER=0xb
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_CLOSEDB=0xd
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_COMMITBUFFEREDITEMSL=0x36
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_CONSTRUCTL=0x9
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_CREATEBLACKLISTTABLEL=0x1a
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_CUSTOMSECURITYCHECKL=0x2
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_EXEMAINL=0xf
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_GETMEMORYTABLEINDEX=0x20
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_LOADDATABASETOMEMORYL=0x18
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_NEWL=0x5
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_NEWLC=0x7
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_NEWSESSIONL=0x24
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_OPENDATABASEL=0x13
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_REMOVEFROMDBL=0x30
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_REMOVEFROMMEMORYTABLE=0x1e
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_REMOVEL=0x2e
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_REMOVESESSION=0x29
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_RUNERROR=0x26
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_SERIALIZETOSHAREDMEMORYL=0x15
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_TABLEEXISTSL=0x22
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CBLACKLISTSERVER_WRITEALLDATATODBL=0x34
+[TRACE]TRACE_NORMAL[0x3]_DUP1__E32MAIN=0x11
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CBLACKLISTSERVER_REMOVESESSION=0x2a
+[TRACE]TRACE_NORMAL[0x3]__E32MAIN=0x10
--- a/harvester/client/src/harvesterclient.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/src/harvesterclient.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -335,11 +335,13 @@
             WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrServerBusy );
             iObserver->HarvestingComplete( const_cast<TDesC&>(aURI), KErrServerBusy );  
             delete harvestFileActive;
+            harvestFileActive = NULL;
             }
         else if( err )
             {
             WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrServerBusy );
             delete harvestFileActive;
+            harvestFileActive = NULL;
             }
         else
             {
@@ -352,11 +354,13 @@
         WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrDisconnected );
         iObserver->HarvestingComplete( const_cast<TDesC&>(aURI), KErrDisconnected );  
         delete harvestFileActive;
+        harvestFileActive = NULL;
         }
     else
         {
         WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrDisconnected );
         delete harvestFileActive;
+        harvestFileActive = NULL;
         }
     WRITELOG( "RHarvesterClient::HarvestFile() - end" );
     }
@@ -408,11 +412,13 @@
             WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrServerBusy );
             iObserver->HarvestingComplete( const_cast<TDesC&>(aURI), KErrServerBusy );  
             delete harvestFileActive;
+            harvestFileActive = NULL;
             }
         else if( err )
             {
             WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrServerBusy );
             delete harvestFileActive;
+            harvestFileActive = NULL;
             }
         else
             {
@@ -424,11 +430,13 @@
         WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrDisconnected );
         iObserver->HarvestingComplete( const_cast<TDesC&>(aURI), KErrDisconnected );  
         delete harvestFileActive;
+        harvestFileActive = NULL;
         }
     else
         {
         WRITELOG1( "RHarvesterClient::HarvestFile() - cannot not send harvest request to server, error: %d", KErrDisconnected );
         delete harvestFileActive;
+        harvestFileActive = NULL;
         }
     }
 
--- a/harvester/client/src/harvestereventobserverao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/src/harvestereventobserverao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -126,6 +126,7 @@
 			iHarvesterClient.Send( EUnregisterHarvesterEvent, ipcArgs );
 			iObservers.Remove( i );
 			delete observer;
+			observer = NULL;
 			}
 		}
 
--- a/harvester/client/src/harvesterrequestactive.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/src/harvesterrequestactive.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -40,6 +40,7 @@
         }
     
     delete iAlbumIds;
+    iAlbumIds = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/client/traces/fixed_id.definitions	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/traces/fixed_id.definitions	Fri Jul 23 10:03:59 2010 +0300
@@ -1,22 +1,22 @@
 #Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO=0xe
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_CONSTRUCTL=0x10
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_DOCANCEL=0x13
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_NEWL=0xd
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_REMOVEOBSERVER=0x12
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_RUNL=0x14
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERCLIENTAO_SETOBSERVER=0x11
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO=0xf
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_CLOSE=0x5
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_CONNECT=0x2
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_HARVESTFILE=0x8
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_HARVESTFILEWITHUID=0x9
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_PAUSE=0x3
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_REGISTERHARVESTCOMPLETE=0xa
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_REMOVEOBSERVER=0x7
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_RESUME=0x4
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_RHARVESTERCLIENT=0x1
-[TRACE]TRACE_NORMAL[0x86]_RHARVESTERCLIENT_SETOBSERVER=0x6
-[TRACE]TRACE_NORMAL[0x86]__CREATESERVERPROCESS=0xc
-[TRACE]TRACE_NORMAL[0x86]__STARTSERVER=0xb
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO=0xe
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_CONSTRUCTL=0x10
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_DOCANCEL=0x13
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_NEWL=0xd
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_REMOVEOBSERVER=0x12
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_RUNL=0x14
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERCLIENTAO_SETOBSERVER=0x11
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO=0xf
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_CLOSE=0x5
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_CONNECT=0x2
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_HARVESTFILE=0x8
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_HARVESTFILEWITHUID=0x9
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_PAUSE=0x3
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_REGISTERHARVESTCOMPLETE=0xa
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_REMOVEOBSERVER=0x7
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_RESUME=0x4
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_RHARVESTERCLIENT=0x1
+[TRACE]TRACE_NORMAL[0x3]_RHARVESTERCLIENT_SETOBSERVER=0x6
+[TRACE]TRACE_NORMAL[0x3]__CREATESERVERPROCESS=0xc
+[TRACE]TRACE_NORMAL[0x3]__STARTSERVER=0xb
--- a/harvester/client/traces/harvesterclientTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/traces/harvesterclientTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTERCLIENTTRACES_H__
@@ -6,18 +6,18 @@
 
 #define KOstTraceComponentID 0x200009f4
 
-#define RHARVESTERCLIENT_RHARVESTERCLIENT 0x860001
-#define RHARVESTERCLIENT_CONNECT 0x860002
-#define RHARVESTERCLIENT_PAUSE 0x860003
-#define RHARVESTERCLIENT_RESUME 0x860004
-#define RHARVESTERCLIENT_CLOSE 0x860005
-#define RHARVESTERCLIENT_SETOBSERVER 0x860006
-#define RHARVESTERCLIENT_REMOVEOBSERVER 0x860007
-#define RHARVESTERCLIENT_HARVESTFILE 0x860008
-#define RHARVESTERCLIENT_HARVESTFILEWITHUID 0x860009
-#define RHARVESTERCLIENT_REGISTERHARVESTCOMPLETE 0x86000a
-#define _STARTSERVER 0x86000b
-#define _CREATESERVERPROCESS 0x86000c
+#define RHARVESTERCLIENT_RHARVESTERCLIENT 0x30001
+#define RHARVESTERCLIENT_CONNECT 0x30002
+#define RHARVESTERCLIENT_PAUSE 0x30003
+#define RHARVESTERCLIENT_RESUME 0x30004
+#define RHARVESTERCLIENT_CLOSE 0x30005
+#define RHARVESTERCLIENT_SETOBSERVER 0x30006
+#define RHARVESTERCLIENT_REMOVEOBSERVER 0x30007
+#define RHARVESTERCLIENT_HARVESTFILE 0x30008
+#define RHARVESTERCLIENT_HARVESTFILEWITHUID 0x30009
+#define RHARVESTERCLIENT_REGISTERHARVESTCOMPLETE 0x3000a
+#define _STARTSERVER 0x3000b
+#define _CREATESERVERPROCESS 0x3000c
 
 
 #endif
--- a/harvester/client/traces/harvesterclientaoTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/client/traces/harvesterclientaoTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTERCLIENTAOTRACES_H__
@@ -6,14 +6,14 @@
 
 #define KOstTraceComponentID 0x200009f4
 
-#define CHARVESTERCLIENTAO_NEWL 0x86000d
-#define CHARVESTERCLIENTAO_CHARVESTERCLIENTAO 0x86000e
-#define DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO 0x86000f
-#define CHARVESTERCLIENTAO_CONSTRUCTL 0x860010
-#define CHARVESTERCLIENTAO_SETOBSERVER 0x860011
-#define CHARVESTERCLIENTAO_REMOVEOBSERVER 0x860012
-#define CHARVESTERCLIENTAO_DOCANCEL 0x860013
-#define CHARVESTERCLIENTAO_RUNL 0x860014
+#define CHARVESTERCLIENTAO_NEWL 0x3000d
+#define CHARVESTERCLIENTAO_CHARVESTERCLIENTAO 0x3000e
+#define DUP1_CHARVESTERCLIENTAO_CHARVESTERCLIENTAO 0x3000f
+#define CHARVESTERCLIENTAO_CONSTRUCTL 0x30010
+#define CHARVESTERCLIENTAO_SETOBSERVER 0x30011
+#define CHARVESTERCLIENTAO_REMOVEOBSERVER 0x30012
+#define CHARVESTERCLIENTAO_DOCANCEL 0x30013
+#define CHARVESTERCLIENTAO_RUNL 0x30014
 
 
 #endif
--- a/harvester/common/inc/harvestdata.inl	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/inc/harvestdata.inl	Fri Jul 23 10:03:59 2010 +0300
@@ -80,9 +80,55 @@
 //
 void CObjectDataArray::Append( CMdEObject* aMdeObject, CLocationData* aLocationData, CMdEQuery* aQuery )
     {
-    iMdeObjectArray.Append( aMdeObject );
-    iLocationArray.Append( aLocationData );
-    iQueryArray.Append( aQuery );
+    TInt mdeObjectIndex(KErrNone);
+    TInt locationDataIndex(KErrNone);
+    
+    mdeObjectIndex = iMdeObjectArray.Append( aMdeObject );
+    
+    if( mdeObjectIndex != KErrNone )
+        {
+        delete aMdeObject;
+        aMdeObject = NULL;
+        
+        delete aLocationData;
+        aLocationData = NULL;
+        
+        delete aQuery;
+        aQuery = NULL;
+        }
+    else
+        {
+        locationDataIndex = iLocationArray.Append( aLocationData );
+        
+        if( locationDataIndex != KErrNone )
+            {
+            iMdeObjectArray.Remove( mdeObjectIndex );
+            delete aMdeObject;
+            aMdeObject = NULL;
+            
+            delete aLocationData;
+            aLocationData = NULL;
+            
+            delete aQuery;
+            aQuery = NULL;
+            }
+        else
+            {
+            if( iQueryArray.Append( aQuery ) != KErrNone )
+                {
+                iMdeObjectArray.Remove( mdeObjectIndex );
+                delete aMdeObject;
+                aMdeObject = NULL;
+                
+                iLocationArray.Remove( locationDataIndex );
+                delete aLocationData;
+                aLocationData = NULL;
+                
+                delete aQuery;
+                aQuery = NULL;
+                }
+            }
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -96,8 +142,14 @@
         return;
         }
     delete iMdeObjectArray[aIndex];
+    iMdeObjectArray[aIndex] = NULL;
+    
     delete iLocationArray[aIndex];
+    iLocationArray[aIndex] = NULL;
+    
     delete iQueryArray[aIndex];
+    iQueryArray[aIndex] = NULL;
+    
     iMdeObjectArray.Remove( aIndex );
     iLocationArray.Remove( aIndex );
     iQueryArray.Remove( aIndex );
--- a/harvester/common/inc/harvestercenreputil.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/inc/harvestercenreputil.h	Fri Jul 23 10:03:59 2010 +0300
@@ -28,7 +28,7 @@
 {
 	TUint32 iPreinstalled;
 	HBufC* iPath;
-	~TScanItem() { delete iPath; }
+	~TScanItem() { delete iPath; iPath = NULL;}
 };
 // CLASS DECLARATION
 
--- a/harvester/common/inc/harvestereventmanager.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/inc/harvestereventmanager.h	Fri Jul 23 10:03:59 2010 +0300
@@ -154,6 +154,7 @@
         virtual ~CHarvesterEventManagerStaticData()
             {
             delete iHEM;
+            iHEM = NULL;
             }
 
     protected:
--- a/harvester/common/inc/harvesterplugininfo.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/inc/harvesterplugininfo.h	Fri Jul 23 10:03:59 2010 +0300
@@ -27,6 +27,7 @@
 	virtual ~CHarvesterPluginInfo()
 	{
 		delete iPlugin;
+		iPlugin = NULL;
 		iExtensions.ResetAndDestroy();
 		iExtensions.Close();
 		iObjectTypes.ResetAndDestroy();
--- a/harvester/common/src/blacklistitem.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/blacklistitem.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -51,6 +51,7 @@
 CBlacklistItem::~CBlacklistItem()
     {
     delete iUri;
+    iUri = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/common/src/harvestercenreputil.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvestercenreputil.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -198,7 +198,7 @@
 	        continue;
 	        }
 		HBufC* pathBuf = path.AllocL();
-		aPaths.Append( pathBuf );
+		aPaths.AppendL( pathBuf );
 		}
 
 	CleanupStack::PopAndDestroy( &scanPathKeys );
@@ -214,14 +214,17 @@
 	repo->FindL( aPartialKey, KSearchMask, scanPathKeys );
 
 	TBuf<KMaxFileName> path;
+	
 	for( TInt i = scanPathKeys.Count() - 1; i >=0; i-- )
 		{
 	    const TInt error( repo->Get( scanPathKeys[i], path ) );
+	    
 	    if( error != KErrNone )
 	        {
 	        continue;
 	        }
 		TUint32 preinstalled = MdeConstants::MediaObject::ENotPreinstalled;
+		
 		if( path[ path.Length() - 1 ] != TChar('\\') )
 			{
 			User::LeaveIfError( repo->GetMeta( scanPathKeys[i], preinstalled ) );
@@ -231,7 +234,7 @@
 		item->iPath = path.AllocL();
 		item->iPreinstalled = preinstalled;
 		CleanupStack::Pop( item );
-		aItems.Append( item ); // ownership is transferred
+		aItems.AppendL( item ); // ownership is transferred
 		}
 
 	CleanupStack::PopAndDestroy( &scanPathKeys );
--- a/harvester/common/src/harvesterdata.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvesterdata.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -39,9 +39,13 @@
 CHarvesterData::~CHarvesterData()
 	{
 	delete iUri;
+	iUri = NULL;
 	delete iClientData;
+	iClientData = NULL;
 	delete iMdeObject;
+	iMdeObject = NULL;
 	delete iLocationData;
+	iLocationData = NULL;
 	}
 
 //==========================================================================
--- a/harvester/common/src/harvestereventmanager.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvestereventmanager.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -93,6 +93,7 @@
             {
             // destroy the singleton and free TLS
             delete data;
+            data = NULL;
             UserSvr::DllFreeTls( KHarvesterEventManagerTLSKey );
             }
         }
@@ -439,6 +440,7 @@
 				
 				iRegisteredObservers.Remove( i );
 				delete observer;
+				observer = NULL;
 				}
 			// Find if any other observer is using the same queue
 			else
@@ -468,6 +470,7 @@
                     iEventQueues.Remove( mid );
                     queue->Close();
                     delete queue;
+                    queue = NULL;
                     break;
 	                }
 	            else if( compare > 0 )
--- a/harvester/common/src/harvesterexifutil.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvesterexifutil.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -156,6 +156,7 @@
 		}
 	
 	delete reader;
+	reader = NULL;
 	
 	WRITELOG( "CHarvesterExifUtil::IsValidExifData end" );	
 	OstTrace0( TRACE_NORMAL, DUP2_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA, "CHarvesterExifUtil::IsValidExifData end" );
--- a/harvester/common/src/harvestermediaidutil.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvestermediaidutil.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -136,8 +136,10 @@
 		if (data->iRefCount <= 0)
 			{
 			delete data->iMediaIdUtil;
+			data->iMediaIdUtil = NULL;
 
 			delete data;
+			data = NULL;
 			UserSvr::DllFreeTls(KHarvesterMediaIdTLSKey);
 			}
 		}
--- a/harvester/common/src/harvesterpluginfactory.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/harvesterpluginfactory.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -209,7 +209,8 @@
 			
 		if( aHD->ObjectType() == EFastHarvest || aHD->Origin() == MdeConstants::Object::ECamera )
 		   	{
-		   	hpi->iQueue.Insert( aHD, 0 );
+		   	hpi->iQueue.InsertL( aHD, 0 );
+		   	
 		   	if( !hpi->iPlugin->IsActive() )
 		   	    {
 	            hpi->iPlugin->SetPriority( KHarvesterPriorityHarvestingPlugin + 1 );
--- a/harvester/common/src/placeholderdata.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/placeholderdata.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -50,6 +50,7 @@
 CPlaceholderData::~CPlaceholderData()
 	{
 		delete iUri;
+		iUri = NULL;
 	}
 
 //==========================================================================
@@ -86,6 +87,7 @@
 EXPORT_C void CPlaceholderData::SetUri( const TDesC& aUri )
 	{
 	delete iUri;
+	iUri = NULL;
 	iUri = aUri.Alloc();
 	}
 
--- a/harvester/common/src/propertywatcher.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/src/propertywatcher.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -66,6 +66,7 @@
     if ( me )
         {
         delete me; 
+        me = NULL;
         Dll::SetTls( NULL ); // Free TLS.
         }
     
--- a/harvester/common/traces/fixed_id.definitions	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/traces/fixed_id.definitions	Fri Jul 23 10:03:59 2010 +0300
@@ -1,33 +1,33 @@
 #Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xb
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREVENTMANAGER_GETINSTANCEL=0x1
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x3
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREVENTMANAGER_RELEASEINSTANCE=0x2
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x19
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x11
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTEREXIFUTIL_READEXIFDATAL=0x14
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xc
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x4
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1a
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x12
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTEREXIFUTIL_READEXIFDATAL=0x15
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xd
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x5
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1b
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x13
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTEREXIFUTIL_READEXIFDATAL=0x16
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xe
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x6
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1c
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTEREXIFUTIL_READEXIFDATAL=0x17
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xf
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x7
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1d
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTEREXIFUTIL_READEXIFDATAL=0x18
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0x10
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x8
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1e
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x9
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1f
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0xa
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xb
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREVENTMANAGER_GETINSTANCEL=0x1
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREVENTMANAGER_RELEASEINSTANCE=0x2
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x19
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x11
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTEREXIFUTIL_READEXIFDATAL=0x14
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xc
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x4
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1a
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x12
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTEREXIFUTIL_READEXIFDATAL=0x15
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xd
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x5
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1b
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA=0x13
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTEREXIFUTIL_READEXIFDATAL=0x16
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xe
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x6
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1c
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTEREXIFUTIL_READEXIFDATAL=0x17
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0xf
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x7
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1d
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTEREXIFUTIL_READEXIFDATAL=0x18
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL=0x10
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x8
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1e
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0x9
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL=0x1f
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT=0xa
--- a/harvester/common/traces/harvestereventmanagerTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/traces/harvestereventmanagerTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTEREVENTMANAGERTRACES_H__
@@ -6,22 +6,22 @@
 
 #define KOstTraceComponentID 0x200009fe
 
-#define CHARVESTEREVENTMANAGER_GETINSTANCEL 0x860001
-#define CHARVESTEREVENTMANAGER_RELEASEINSTANCE 0x860002
-#define CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860003
-#define DUP1_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860004
-#define DUP2_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860005
-#define DUP3_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860006
-#define DUP4_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860007
-#define DUP5_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860008
-#define DUP6_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x860009
-#define DUP7_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x86000a
-#define CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x86000b
-#define DUP1_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x86000c
-#define DUP2_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x86000d
-#define DUP3_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x86000e
-#define DUP4_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x86000f
-#define DUP5_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x860010
+#define CHARVESTEREVENTMANAGER_GETINSTANCEL 0x30001
+#define CHARVESTEREVENTMANAGER_RELEASEINSTANCE 0x30002
+#define CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30003
+#define DUP1_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30004
+#define DUP2_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30005
+#define DUP3_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30006
+#define DUP4_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30007
+#define DUP5_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30008
+#define DUP6_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x30009
+#define DUP7_CHARVESTEREVENTMANAGER_INCREASEITEMCOUNT 0x3000a
+#define CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x3000b
+#define DUP1_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x3000c
+#define DUP2_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x3000d
+#define DUP3_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x3000e
+#define DUP4_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x3000f
+#define DUP5_CHARVESTEREVENTMANAGER_DECREASEITEMCOUNTL 0x30010
 
 
 #endif
--- a/harvester/common/traces/harvesterexifutilTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/common/traces/harvesterexifutilTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTEREXIFUTILTRACES_H__
@@ -6,21 +6,21 @@
 
 #define KOstTraceComponentID 0x200009fe
 
-#define CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x860011
-#define DUP1_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x860012
-#define DUP2_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x860013
-#define CHARVESTEREXIFUTIL_READEXIFDATAL 0x860014
-#define DUP1_CHARVESTEREXIFUTIL_READEXIFDATAL 0x860015
-#define DUP2_CHARVESTEREXIFUTIL_READEXIFDATAL 0x860016
-#define DUP3_CHARVESTEREXIFUTIL_READEXIFDATAL 0x860017
-#define DUP4_CHARVESTEREXIFUTIL_READEXIFDATAL 0x860018
-#define CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x860019
-#define DUP1_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001a
-#define DUP2_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001b
-#define DUP3_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001c
-#define DUP4_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001d
-#define DUP5_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001e
-#define DUP6_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x86001f
+#define CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x30011
+#define DUP1_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x30012
+#define DUP2_CHARVESTEREXIFUTIL_ISVALIDEXIFDATA 0x30013
+#define CHARVESTEREXIFUTIL_READEXIFDATAL 0x30014
+#define DUP1_CHARVESTEREXIFUTIL_READEXIFDATAL 0x30015
+#define DUP2_CHARVESTEREXIFUTIL_READEXIFDATAL 0x30016
+#define DUP3_CHARVESTEREXIFUTIL_READEXIFDATAL 0x30017
+#define DUP4_CHARVESTEREXIFUTIL_READEXIFDATAL 0x30018
+#define CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x30019
+#define DUP1_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001a
+#define DUP2_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001b
+#define DUP3_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001c
+#define DUP4_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001d
+#define DUP5_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001e
+#define DUP6_CHARVESTEREXIFUTIL_CONVERTEXIFDATETIMETOSYMBIANTIMEL 0x3001f
 
 
 #endif
--- a/harvester/composerplugins/imagecomposer/src/composerimageplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/composerplugins/imagecomposer/src/composerimageplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -48,10 +48,13 @@
     WRITELOG( "CComposerImagePlugin::~CComposerImagePlugin()" );
 
     delete iImageComposerAO;
+    iImageComposerAO = NULL;
     delete iLocationRelationObserver;
+    iLocationRelationObserver = NULL;
     delete iImagePresentObserver;
-    
+    iImagePresentObserver = NULL;
     delete iMdEHarvesterSession;
+    iMdEHarvesterSession = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/composerplugins/imagecomposer/src/imagecomposerao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -71,16 +71,20 @@
     if ( iMdeObject )
         {
         delete iMdeObject;
+        iMdeObject = NULL;
         }
     if ( iExifUtil )
     	{
     	delete iExifUtil;
+    	iExifUtil = NULL;
     	}
 
     delete iRelationQuery;
+    iRelationQuery = NULL;
     iFs.Close();
     
     delete iMdEHarvesterSession;
+    iMdEHarvesterSession = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/composerplugins/imagecomposer/src/locationrelationobserver.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/composerplugins/imagecomposer/src/locationrelationobserver.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -47,6 +47,7 @@
 	    {
 	    iQuery->Cancel();
 	    delete iQuery;
+	    iQuery = NULL;
 	    }
 	}
 
@@ -208,6 +209,7 @@
 	            }
 	    	
 	    	delete relation;
+	    	relation = NULL;
 	    	}
 	    	)
     	}
--- a/harvester/harvesterplugins/AudioPlugin/src/harvesteraudioplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/AudioPlugin/src/harvesteraudioplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -25,6 +25,7 @@
 #include <caf/caf.h>
 #include <pathinfo.h>
 
+#include "harvestercommon.h"
 #include "harvesteraudioplugin.h"
 #include "harvesteraudiopluginutils.h"
 #include "mdsutils.h"
@@ -118,11 +119,16 @@
 	WRITELOG( "CHarvesterAudioPlugin::~CHarvesterAudioPlugin()" );
 	
 	delete iAudioParser;
+	iAudioParser = NULL;
 	delete iPropDefs;
+	iPropDefs = NULL;
 	delete iTNM;
+	iTNM = NULL;
 	
 	delete iPhoneSoundsPath;
+	iPhoneSoundsPath = NULL;
 	delete iMmcSoundsPath;
+	iMmcSoundsPath = NULL;
 	}
 
 // ---------------------------------------------------------------------------
@@ -145,6 +151,7 @@
         TRAP_IGNORE( iTNM = CThumbnailManager::NewL( *this ) );
         }
     
+    SetPriority( KHarvesterPriorityHarvestingPlugin - 2 );
 	
     TFileName sounds = PathInfo::SoundsPath();
     
@@ -534,6 +541,7 @@
         CleanupStack::Pop(); // jpegBuf
         iTNM->CreateThumbnails( *tnmSource );
         delete tnmSource;
+        tnmSource = NULL;
         TBool thumbnailPresent( ETrue );
         CMdeObjectWrapper::HandleObjectPropertyL( mdeObject, 
                           *iPropDefs->iThumbnailPropertyDef, &thumbnailPresent, aIsAdd );
--- a/harvester/harvesterplugins/AudioPlugin/src/harvesteraudiopluginutils.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/AudioPlugin/src/harvesteraudiopluginutils.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -74,6 +74,7 @@
 CAudioMDParser::~CAudioMDParser()
     {
     delete iMetaDataUtility;
+    iMetaDataUtility = NULL;
     
     iMimeTypeMappings.Close();
     iWantedMetadataFields.Close();
--- a/harvester/harvesterplugins/ImagePlugin/src/harvesterimageplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/ImagePlugin/src/harvesterimageplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -185,17 +185,22 @@
 		{
 		iDecoder->Reset();
 	    delete iDecoder;
+	    iDecoder = NULL;
 		}   
     
     if (iExifUtil)
 		{
 		delete iExifUtil;
+		iExifUtil = NULL;
 		}
    	
     delete iPropDefs;
+    iPropDefs = NULL;
     
     delete iPhoneImagesPath;
+    iPhoneImagesPath = NULL;
     delete iMmcImagesPath;
+    iMmcImagesPath = NULL;
     
     iMimeTypeMappings.Close();
     iFbs.Disconnect();
--- a/harvester/harvesterplugins/MessagePlugin/src/harvestermessageplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/MessagePlugin/src/harvestermessageplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -73,9 +73,13 @@
 	{
 	WRITELOG("CHarvesterMessagePlugin::~CHarvesterMessagePlugin()");
 	delete iMmsMtm;
+	iMmsMtm = NULL;
 	delete iSmsMtm;
+	iSmsMtm = NULL;
 	delete iMtmReg;
-	delete iMsvSession;  
+	iMtmReg = NULL;
+	delete iMsvSession;
+	iMsvSession = NULL;
 	}
 
 /**
--- a/harvester/harvesterplugins/OMADRMPlugin/group/harvesteromadrmplugin.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/OMADRMPlugin/group/harvesteromadrmplugin.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -47,6 +47,7 @@
 
 LIBRARY       euser.lib
 LIBRARY       efsrv.lib
+LIBRARY       imageconversion.lib
 LIBRARY       caf.lib
 LIBRARY	      cafutils.lib
 LIBRARY       harvesterplugininterface.lib
--- a/harvester/harvesterplugins/OMADRMPlugin/inc/harvesteromadrmplugin.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/OMADRMPlugin/inc/harvesteromadrmplugin.h	Fri Jul 23 10:03:59 2010 +0300
@@ -18,13 +18,17 @@
 #ifndef __CHARVESTEROMADRMPLUGIN_H__
 #define __CHARVESTEROMADRMPLUGIN_H__
 
+#include <mdeobject.h>
 #include <e32base.h>
 #include <apmstd.h>
-#include "harvesterplugin.h"
+#include <imageconversion.h>
+#include <harvesterplugin.h>
+#include <harvesterdata.h>
+
 
 // FORWARD DECLARATION
-class CMdEObjectDef;
-class CMdEObject;
+class CFileData;
+class CHarvestData;
 
 /**
 * A data transfer class for harvested drm metadata.
@@ -84,7 +88,12 @@
 		CMdEPropertyDef* iAuthorPropertyDef;
 		CMdEPropertyDef* iGenrePropertyDef;
 		CMdEPropertyDef* iDefaultFolderPropertyDef;
+		CMdEPropertyDef* iWidthPropertyDef;
+		CMdEPropertyDef* iHeightPropertyDef;
 	
+		// Image property definitions
+		CMdEPropertyDef* iFrameCountPropertyDef;
+		CMdEPropertyDef* iBitsPerSamplePropertyDef;
 	private:
 		CHarvesterOmaDrmPluginPropertyDefs();
 	
@@ -126,35 +135,60 @@
 	
 	private:
 		/**
+        * Gathers data from file to meta data object.
+        *
+        * @param aMetadataObject  A reference to meta data object to gather the data.
+        * @param aDRMharvestData
+        * @param aFileData
+        * @param aHarvestData
+        */
+        TInt GatherDataL( CMdEObject& aMetadataObject, CDRMHarvestData& aDRMharvestData, 
+			CFileData& aFileData, CHarvestData& aHarvestData );
+	
+		
+		
+			/**
+			
 		* C++ constructor - not exported;
 		* implicitly called from NewL()
 		*
 		* @return an instance of CHarvesterOMADRMPlugin.
 		*/
-		CHarvesterOMADRMPlugin();
+
+		/**
+         * Handle addition of new mde video objects.
+         *
+         * @param aMetadataObject  A reference to meta data object to gather the data.
+         * @param aDRMharvestData
+         * @param aFileData
+         * @param aHarvestData
+         */
+        void HandleObjectPropertiesL( CHarvestData& aHarvestData, CDRMHarvestData& aDRMharvestData, CFileData& aFileData, 
+			CHarvesterData& aHarvesterData, TBool aIsAdd );
 		
-		/**
-		* 2nd phase construction, called by NewLC()
+				// Default constructor
+		CHarvesterOMADRMPlugin();
+	/**
+	* 2nd phase construction, called by NewLC()
 		*/
 		void ConstructL();
 		
-		/**
-        * Gathers data from file to meta data object.
-        *
-        * @param aMetadataObject  A reference to meta data object to gather the data.
-        * @param aHarvestData  An object to store harvested video file data.
-        */
-        void GatherDataL( CMdEObject& aMetadataObject, CDRMHarvestData& aHarvestData );
+  protected:
+        /** 
+         * Handle to File server session.
+         */
+        RFs iFs;
+        
+	private:
+	     /**
+         *  image decoder
+         */        
+        
+
 		
-        /**
-         * Handle addition of new mde video objects.
-         *
-         * @param aMetadataObject  A reference to meta data object to gather the data.
-         * @param aHarvestData  An object containing harvested video file data.
-         */
-        void HandleObjectPropertiesL( CHarvesterData& aHD, CDRMHarvestData& aVHD, TBool aIsAdd );
+      
 
-	private:
+
 		CHarvesterOmaDrmPluginPropertyDefs* iPropDefs;
 		
 		TInt iMaxTextLength;
@@ -167,6 +201,7 @@
         
         HBufC* iPhoneSoundsPath;
         HBufC* iMmcSoundsPath;
+
 	};
 
 #endif // __CHarvesterOMADRMPlugin_H__
--- a/harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/OMADRMPlugin/src/harvesteromadrmplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -20,6 +20,7 @@
 #include <pathinfo.h>
 
 #include "mdsutils.h"
+#include "harvesterexifutil.h"
 #include "harvesteromadrmplugin.h"
 #include "harvesterlog.h"
 #include "harvestercommon.h"
@@ -33,6 +34,9 @@
 #include <mdetextproperty.h>
 #include <mdenamespacedef.h>
 #include <mdeconstants.h>
+#include <imageconversion.h>
+
+using namespace MdeConstants;
 
 _LIT(KImage, "Image");
 _LIT(KVideo, "Video");
@@ -65,6 +69,15 @@
 	iDrmPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KDRMProperty );
 	iDescriptionPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KDescriptionProperty );
 	iAuthorPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KAuthorProperty );
+
+	// Media property definitions
+	iWidthPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KWidthProperty );
+	iHeightPropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KHeightProperty );
+
+	// Image property definitions
+	CMdEObjectDef& imageDef = nsDef.GetObjectDefL( MdeConstants::Image::KImageObject );
+	iBitsPerSamplePropertyDef = &imageDef.GetPropertyDefL( MdeConstants::Image::KBitsPerSampleProperty );
+	iFrameCountPropertyDef = &imageDef.GetPropertyDefL( MdeConstants::Image::KFrameCountProperty );
 	iGenrePropertyDef = &mediaDef.GetPropertyDefL( MdeConstants::MediaObject::KGenreProperty );
 	}
 
@@ -108,16 +121,28 @@
 	{
 	WRITELOG("CHarvesterOMADRMPlugin::~CHarvesterOMADRMPlugin()");
 	
+	iFs.Close();
+
+	delete iPropDefs;
+    iPropDefs = NULL;
+
     delete iPhoneImagesPath;
+    iPhoneImagesPath = NULL;
     delete iMmcImagesPath;
+    iMmcImagesPath = NULL;
     
     delete iPhoneVideosPath;
+    iPhoneVideosPath = NULL;
     delete iMmcVideosPath;
+    iMmcVideosPath = NULL;
     
     delete iPhoneSoundsPath;
+    iPhoneSoundsPath = NULL;
     delete iMmcSoundsPath;
+    iMmcSoundsPath = NULL;
 	
 	delete iPropDefs;
+	iPropDefs = NULL;
 	}
 
 /**
@@ -126,6 +151,9 @@
 void CHarvesterOMADRMPlugin::ConstructL()
 	{
 	WRITELOG( "CHarvesterOMADRMPlugin::ConstructL()" );
+    SetPriority( KHarvesterPriorityHarvestingPlugin - 1 );	
+    
+    User::LeaveIfError( iFs.Connect() );
 	
 	TFileName phoneRoot = PathInfo::PhoneMemoryRootPath();
 	TFileName mmcRoot = PathInfo::MemoryCardRootPath();
@@ -161,25 +189,32 @@
     iMmcSoundsPath = mmcSoundPath.Right( mmcSoundPath.Length() - 1 ).AllocL();
 	}
 
-void CHarvesterOMADRMPlugin::HarvestL( CHarvesterData* aHD )
+void CHarvesterOMADRMPlugin::HarvestL( CHarvesterData* aHarvesterData )
 	{
-    CMdEObject& mdeObject = aHD->MdeObject();
-    CDRMHarvestData* fileData = CDRMHarvestData::NewL();
+	WRITELOG( "CHarvesterImagePlugin::HarvestL()" );
+    CMdEObject& mdeObject = aHarvesterData->MdeObject();
+	CDRMHarvestData* drmHarvestData = CDRMHarvestData::NewL();
+	
+    CFileData* fileData = CFileData::NewL();
     CleanupStack::PushL( fileData );
 
-    TRAPD( error, GatherDataL( mdeObject, *fileData ) );
-    if ( error == KErrNone || error == KErrCompletion )
-    	{
-        TBool isNewObject( mdeObject.Id() == 0 );
+    CHarvestData* harvestData = CHarvestData::NewL();
+    CleanupStack::PushL( harvestData );
         
-        if ( isNewObject || mdeObject.Placeholder() )
+    TInt errorCode( KErrNone );
+    
+    TRAPD( error, errorCode = GatherDataL( mdeObject, *drmHarvestData, *fileData, *harvestData ) );
+    
+    if ( error == KErrNone && (errorCode == KErrNone || errorCode == KErrCompletion ) ) // ok, something got harvested
+        {
+        if ( mdeObject.Id() == 0 || mdeObject.Placeholder() ) // is a new object or placeholder
             {
-            TRAP( error, HandleObjectPropertiesL( *aHD, *fileData, ETrue ) );
+            TRAP_IGNORE( HandleObjectPropertiesL( *harvestData,  *drmHarvestData, *fileData, *aHarvesterData, ETrue ) );
             mdeObject.SetPlaceholder( EFalse );
             }
-        else
+        else   // not a new object
             {
-            TRAP( error, HandleObjectPropertiesL( *aHD, *fileData, EFalse ) );
+            TRAP_IGNORE( HandleObjectPropertiesL( *harvestData, *drmHarvestData, *fileData, *aHarvesterData, EFalse ) );
             }
 
         if ( error != KErrNone )
@@ -189,21 +224,21 @@
     	}
     else	
         {
-        WRITELOG1( "CHarvesterOMADRMPlugin::HarvestL() - TRAP error: %d", error );
+        WRITELOG1( "CHarvesterOMADRMPlugin::HarvestL() - TRAP error: %d, errorCode %d", error );
         TInt convertedError = KErrNone;
         MdsUtils::ConvertTrapError( error, convertedError );
-        aHD->SetErrorCode( convertedError );
+        aHarvesterData->SetErrorCode( convertedError );
         }
 
-    CleanupStack::PopAndDestroy( fileData );
+    CleanupStack::PopAndDestroy( 2, fileData );
 	}
 
 // ---------------------------------------------------------------------------
 // GatherDataL
 // ---------------------------------------------------------------------------
 //
-void CHarvesterOMADRMPlugin::GatherDataL( CMdEObject& aMetadataObject,
-		CDRMHarvestData& aVHD )
+TInt CHarvesterOMADRMPlugin::GatherDataL( CMdEObject& aMetadataObject, CDRMHarvestData& aDRMharvestData, 
+        CFileData& aFileData, CHarvestData& aHarvestData )
     {
     WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL" );
     
@@ -213,8 +248,8 @@
     const TDesC& uri = aMetadataObject.Uri();
     User::LeaveIfError( iFs.Entry( uri, *entry ) );
     
-    aVHD.iModified = entry->iModified;
-    aVHD.iFileSize = (TUint)entry->iSize;
+    aDRMharvestData.iModified = entry->iModified;
+    aDRMharvestData.iFileSize = (TUint)entry->iSize;
     CleanupStack::PopAndDestroy( entry );
     
     ContentAccess::CContent* content = ContentAccess::CContent::NewLC( uri );   
@@ -231,81 +266,104 @@
 
     User::LeaveIfError( data->GetStringAttributeSet(attrSet) );
     
-    TInt err = attrSet.GetValue( ContentAccess::EDescription, aVHD.iDescription );
+    TInt err = attrSet.GetValue( ContentAccess::EDescription, aDRMharvestData.iDescription );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting description failed %d", err );
         }
         
-    if ( aVHD.iDescription.Length() <= 0 )
+    if ( aDRMharvestData.iDescription.Length() <= 0 )
         {
         WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL - no description" );
         }
     
-    err = attrSet.GetValue( ContentAccess::EMimeType, aVHD.iMimetype );
+    err = attrSet.GetValue( ContentAccess::EMimeType, aDRMharvestData.iMimetype );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting mimetype failed %d", err );
         }
         
-    if ( aVHD.iMimetype.Length() <= 0 )
+    if ( aDRMharvestData.iMimetype.Length() <= 0 )
         {
         WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL - no mimetype" );
         }
     
-    err = attrSet.GetValue( ContentAccess::ETitle, aVHD.iTitle );
+    err = attrSet.GetValue( ContentAccess::ETitle, aDRMharvestData.iTitle );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting title failed %d", err );
         }
         
-    if ( aVHD.iTitle.Length() <= 0 )
+    if ( aDRMharvestData.iTitle.Length() <= 0 )
         {
         WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL - no title" );
         }
     
-    err = attrSet.GetValue( ContentAccess::EAuthor, aVHD.iAuthor );
+    err = attrSet.GetValue( ContentAccess::EAuthor, aDRMharvestData.iAuthor );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting author failed %d", err );
         }
         
-    if ( aVHD.iAuthor.Length() <= 0 )
+    if ( aDRMharvestData.iAuthor.Length() <= 0 )
         {
         WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL - no author" );
         }
 
-    err = attrSet.GetValue( ContentAccess::EGenre, aVHD.iGenre );
+    err = attrSet.GetValue( ContentAccess::EGenre, aDRMharvestData.iGenre );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting genre failed %d", err );
         }
         
-    if ( aVHD.iGenre.Length() <= 0 )
+    if ( aDRMharvestData.iGenre.Length() <= 0 )
         {
         WRITELOG( "CHarvesterOMADRMPlugin::GatherDataL - no genre" );
         }
     
-    err = content->GetAttribute( ContentAccess::EIsProtected, aVHD.iDrmProtected );
+    err = content->GetAttribute( ContentAccess::EIsProtected, aDRMharvestData.iDrmProtected );
     if ( err != KErrNone)
         {
         WRITELOG1( "CHarvesterOMADRMPlugin::GatherDataL - ERROR: getting protection info failed %d", err );
         }
-        
-    CleanupStack::PopAndDestroy( 3 ); // content, data, attrSet
+      
+    CImageDecoder* decoder = NULL;
+
+    TRAP( err, decoder = CImageDecoder::FileNewL( iFs, uri, ContentAccess::EPeek, 
+            ( CImageDecoder::TOptions )( CImageDecoder::EPreferFastDecode )));
+
+    CleanupStack::PushL( decoder );
+    
+    if(decoder && !err)
+        {
+        WRITELOG( "CHarvesterImagePlugin::GatherData() - Image decoder has opened the file." );        
+        // Get image width, frame count, height and bits per pixel from image decoder.
+        const TFrameInfo info = decoder->FrameInfo( 0 );
+        const TSize imageSize = info.iOverallSizeInPixels;
+        const TInt framecount = decoder->FrameCount();
+        aFileData.iFrameCount = framecount;
+        aFileData.iImageWidth = imageSize.iWidth;
+        aFileData.iImageHeight = imageSize.iHeight;
+        aFileData.iBitsPerPixel = info.iBitsPerPixel;
+        }
+    else
+        {
+        WRITELOG1( "CHarvesterImagePlugin::GatherData() - ERROR: decoder %d", err );
+        }
+
+    CleanupStack::PopAndDestroy( 4 ); // content, data, attrSet, imagedecoder
+    return KErrNone;
     }
 
 // ---------------------------------------------------------------------------
 // HandleObjectPropertiesL
 // ---------------------------------------------------------------------------
 //
-void CHarvesterOMADRMPlugin::HandleObjectPropertiesL(
-		CHarvesterData& aHD,
-		CDRMHarvestData& aVHD,
-		TBool aIsAdd )
+void CHarvesterOMADRMPlugin::HandleObjectPropertiesL( CHarvestData& aHarvestData, CDRMHarvestData& aDRMharvestData, CFileData& aFileData, 
+        CHarvesterData& aHarvesterData, TBool aIsAdd )
     {
     WRITELOG("CHarvesterOMADRMPlugin - HandleNewObject ");
-    CMdEObject& mdeObject = aHD.MdeObject();
+    CMdEObject& mdeObject = aHarvesterData.MdeObject();
 
     if( !iPropDefs )
     	{
@@ -317,20 +375,23 @@
     
     TTimeIntervalSeconds timeOffset = User::UTCOffset();
     
+    TPtrC objectDefName( mdeObject.Def().Name());
+    
     if( ! mdeObject.Placeholder() )
     	{
     	// Creation date
-    	TTime localTime = aVHD.iModified + timeOffset;
+    	TTime localTime = aDRMharvestData.iModified + timeOffset;
     	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
     			*iPropDefs->iCreationDatePropertyDef, &localTime, aIsAdd );
     	// Last modified date
     	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    			*iPropDefs->iLastModifiedDatePropertyDef, &aVHD.iModified, aIsAdd );
+    			*iPropDefs->iLastModifiedDatePropertyDef, &aDRMharvestData.iModified, aIsAdd );
     	// File size
     	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    			*iPropDefs->iSizePropertyDef, &aVHD.iFileSize, aIsAdd );
+    			*iPropDefs->iSizePropertyDef, &aDRMharvestData.iFileSize, aIsAdd );
 
-    	TPtrC objectDefName( mdeObject.Def().Name() );
+    	TPtrC objectDefName( mdeObject.Def().Name());
+    	
         if( objectDefName == MdeConstants::Image::KImageObject )
             {
             const TDesC& uri = mdeObject.Uri();
@@ -381,7 +442,7 @@
     	}
         
     // Item Type
-    if(aVHD.iMimetype.Length() > 0)
+    if(aDRMharvestData.iMimetype.Length() > 0)
         {
         TBool isAdd( EFalse );
         CMdEProperty* prop = NULL;
@@ -391,36 +452,59 @@
             isAdd = ETrue;
             }
         CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-                *iPropDefs->iItemTypePropertyDef, &aVHD.iMimetype, isAdd );
+                *iPropDefs->iItemTypePropertyDef, &aDRMharvestData.iMimetype, isAdd );
         }
     
     // DRM protection
     CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    		*iPropDefs->iDrmPropertyDef, &aVHD.iDrmProtected, aIsAdd );
+    		*iPropDefs->iDrmPropertyDef, &aDRMharvestData.iDrmProtected, aIsAdd );
     
     // Title (is set from URI by default)
-    if( aVHD.iTitle.Length() > 0 && aVHD.iTitle.Length() < KMaxTitleFieldLength )
+    if( aDRMharvestData.iTitle.Length() > 0 && aDRMharvestData.iTitle.Length() < KMaxTitleFieldLength )
     	{
     	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    			*iPropDefs->iTitlePropertyDef, &aVHD.iTitle, EFalse );
+    			*iPropDefs->iTitlePropertyDef, &aDRMharvestData.iTitle, EFalse );
     	}
     // Description
-    if( aVHD.iDescription.Length() > 0 && aVHD.iDescription.Length() < iMaxTextLength )
+    if( aDRMharvestData.iDescription.Length() > 0 && aDRMharvestData.iDescription.Length() < iMaxTextLength )
+    	{
+    	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
+    			*iPropDefs->iDescriptionPropertyDef, &aDRMharvestData.iDescription, aIsAdd );
+    	}   
+    // Author
+    if( aDRMharvestData.iAuthor.Length() > 0 && aDRMharvestData.iAuthor.Length() < iMaxTextLength )
     	{
     	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    			*iPropDefs->iDescriptionPropertyDef, &aVHD.iDescription, aIsAdd );
-    	}   
-    // Author
-    if( aVHD.iAuthor.Length() > 0 && aVHD.iAuthor.Length() < iMaxTextLength )
-    	{
-    	CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-    			*iPropDefs->iAuthorPropertyDef, &aVHD.iAuthor, aIsAdd );
+    			*iPropDefs->iAuthorPropertyDef, &aDRMharvestData.iAuthor, aIsAdd );
     	}
     // Genre
-    if( aVHD.iGenre.Length() > 0 && aVHD.iGenre.Length() < iMaxTextLength )
+    if( aDRMharvestData.iGenre.Length() > 0 && aDRMharvestData.iGenre.Length() < iMaxTextLength )
         {
         CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, 
-                *iPropDefs->iGenrePropertyDef, &aVHD.iGenre, aIsAdd );
+                *iPropDefs->iGenrePropertyDef, &aDRMharvestData.iGenre, aIsAdd );
+        }
+    
+    if( objectDefName == MdeConstants::Image::KImageObject )
+        {
+      // Image - Bits per Sample
+        if (aFileData.iBitsPerPixel != 0)
+            {
+            CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, *iPropDefs->iBitsPerSamplePropertyDef, &aFileData.iBitsPerPixel, aIsAdd );
+            }
+    
+        // Image - Framecount
+        CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, *iPropDefs->iFrameCountPropertyDef, &aFileData.iFrameCount, aIsAdd );
+        
+        // MediaObject - Width
+        if (aFileData.iImageWidth != 0)
+            {
+            CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, *iPropDefs->iWidthPropertyDef, &aFileData.iImageWidth, aIsAdd );
+            }
+        
+        if (aFileData.iImageHeight != 0)
+            {
+            CMdeObjectWrapper::HandleObjectPropertyL(mdeObject, *iPropDefs->iHeightPropertyDef, &aFileData.iImageHeight, aIsAdd );
+            } 
         }
     }
 
@@ -438,6 +522,7 @@
 		{
 		err = content->GetStringAttribute( ContentAccess::EMimeType, mime );
 		delete content;
+		content = NULL;
 		}
 
 #ifdef _DEBUG
@@ -558,6 +643,7 @@
         {
         err = content->GetStringAttribute( ContentAccess::EMimeType, aMimeType );
         delete content;
+        content = NULL;
         }
     }
 
--- a/harvester/harvesterplugins/RTPPlugin/src/harvesterrtpmetadatareader.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/RTPPlugin/src/harvesterrtpmetadatareader.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -46,6 +46,7 @@
     {
     WRITELOG( "CHarvesterRtpMetaDataReader::~CHarvesterRtpMetaDataReader()" );
     delete iMetaData;
+    iMetaData = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/harvesterplugins/VideoPlugin/inc/harvestervideoplugin.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/VideoPlugin/inc/harvestervideoplugin.h	Fri Jul 23 10:03:59 2010 +0300
@@ -101,13 +101,20 @@
         ~CVideoHarvestData()
         	{
         	delete iCopyright;
+        	iCopyright = NULL;
             delete iAuthor;
+            iAuthor = NULL;
             delete iGenre;
+            iGenre = NULL;
             delete iPerformer;
+            iPerformer = NULL;
             delete iDescription;
+            iDescription = NULL;
             delete iTitle;
+            iTitle = NULL;
 
         	delete iMimeBuf;
+        	iMimeBuf = NULL;
         	}
     };
 
--- a/harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/VideoPlugin/src/harvestervideoplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -165,11 +165,14 @@
 CHarvesterVideoPlugin::~CHarvesterVideoPlugin()
 	{
 	delete iPropDefs;
+	iPropDefs = NULL;
 	iMimeTypeMappings.Close();
     RMediaIdUtil::ReleaseInstance();
 
     delete iPhoneVideosPath;
+    iPhoneVideosPath = NULL;
     delete iMmcVideosPath;
+    iMmcVideosPath = NULL;
     
 	WRITELOG("CHarvesterVideoPlugin::CHarvesterVideoPlugin()");
 	}
@@ -591,10 +594,10 @@
     	CleanupClosePushL( mimes );
 
         TPtrC ext;
-        MdsUtils::GetExt( uri, ext );
+        const TBool exists = MdsUtils::GetExt( uri, ext );
         
         // Check for possibly protected content
-        if( ext.CompareF( KExtensionWmv ) == 0 )
+        if( exists && ext.CompareF( KExtensionWmv ) == 0 )
             {
             ContentAccess::CContent* content = ContentAccess::CContent::NewLC( uri );
             ContentAccess::CData* data = content->OpenContentLC( ContentAccess::EPeek );
--- a/harvester/harvesterplugins/WMVPlugin/src/harvesterwmvplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/harvesterplugins/WMVPlugin/src/harvesterwmvplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -89,9 +89,12 @@
     {
     WRITELOG( "CHarvesterWMVPlugin::~CHarvesterWMVPlugin()" );
     delete iPropDefs;
+    iPropDefs = NULL;
     
     delete iPhoneVideosPath;
+    iPhoneVideosPath = NULL;
     delete iMmcVideosPath;
+    iMmcVideosPath = NULL;
     }
 
 // ---------------------------------------------------------------------------
@@ -151,6 +154,7 @@
         {
         err = content->GetStringAttribute( ContentAccess::EMimeType, aMimeType );
         delete content;
+        content = NULL;
         }
     }
 
--- a/harvester/monitorplugins/fileplugin/src/FolderRenamer.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/FolderRenamer.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -38,7 +38,9 @@
 CRenameItem::~CRenameItem()
 	{
 	delete iOldName;
+	iOldName = NULL;
 	delete iNewName;
+	iNewName = NULL;
 	iFileEvents.ResetAndDestroy();
 	}
 	
@@ -63,9 +65,14 @@
 	{
 	TMdsFSPStatus* event = NULL;
 	event = new TMdsFSPStatus(aEvent);
+	
 	if (event)
 		{
-		iFileEvents.Append(event);
+		if(iFileEvents.Append(event) != KErrNone)
+		    {
+            delete event;
+            event = NULL;
+		    }
 		}
 	}
 
@@ -157,7 +164,10 @@
 			iRenamedFolders.Remove(0);
 			TRAP_IGNORE(currItem->HandleFileEventsL(iCFileEventHandlerAO));
 			delete currItem;
+			currItem = NULL;
+			
 			SetNextRequest(ERenameStateIdle);
+			
 			if (iRenamedFolders.Count() == 0)
 				{
 				iIsRunning = EFalse;
--- a/harvester/monitorplugins/fileplugin/src/fileeventhandlerao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/fileeventhandlerao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -83,6 +83,7 @@
     User::LeaveIfError( error );
     
     TRAP( error, ReadCacheSizeFromCenrepL() );
+	
     if ( error == KErrNone )
     	{
     	iQueue.Reserve( iCacheSize );
@@ -104,10 +105,16 @@
     iFs.Close();
     
     delete iMapper;
+    iMapper = NULL;
+    
     delete iMoveTimer;
+    iMoveTimer = NULL;
+    
     delete iFolderRenamer;
+    iFolderRenamer = NULL;
     
     delete iEventArray;
+    iEventArray = NULL;
     
     iQueue.ResetAndDestroy();
     iQueue.Close();
@@ -146,6 +153,7 @@
     			ResetEvent();
     			item->GetAsFspStatus(iEvent);
     			delete item;
+    			item = NULL;
     			
     			if( iEvent.iFileEventType == EMdsFileDeleted )
     			    {
--- a/harvester/monitorplugins/fileplugin/src/filemonitorao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/filemonitorao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -71,6 +71,7 @@
     StopMonitoring();
 
     delete iMdeSession;
+    iMdeSession = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/harvester/monitorplugins/fileplugin/src/filemonitorplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/filemonitorplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -40,6 +40,7 @@
 CFileMonitorPlugin::~CFileMonitorPlugin() 
 	{
 	delete iFileMonitor;
+	iFileMonitor = NULL;
 	}
 
 // ---------------------------------------------------------------------------
@@ -67,6 +68,7 @@
 			TRAP( err, cenRepoUtil->AddIgnorePathsToFspL( KDrive, KMonitorPath ));
 			}
 		delete cenRepoUtil;
+		cenRepoUtil = NULL;
 		}
 	return success && err == KErrNone;
 	}
--- a/harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/fileplugin/src/processoriginmapper.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -59,6 +59,7 @@
 CProcessOriginMapper::~CProcessOriginMapper()
     {
     delete iLineBuffer;
+    iLineBuffer = NULL;
     iProcessOriginMap.Close();
     iReadStream.Close();
     iWriteStream.Close();
--- a/harvester/monitorplugins/inc/mdsfspqueue.inl	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/inc/mdsfspqueue.inl	Fri Jul 23 10:03:59 2010 +0300
@@ -15,7 +15,7 @@
 */
 
 
-#include "mdsfspqueue.h"
+
 
 //-----------------------------------------------------------------------------
 // CMdsFSPQueueItem::NewL()
@@ -67,10 +67,13 @@
 	if( iFileName ) 
 		{
 		delete iFileName;
+		iFileName = NULL;
 		}
+	
 	if( iNewFileName )
 		{
 		delete iNewFileName;
+		iNewFileName = NULL;
 		}
 	
 	iFileName = aStatus.iFileName.AllocL();
@@ -85,6 +88,8 @@
 CMdsFSPQueueItem::~CMdsFSPQueueItem()
 	{
 	delete iFileName;
+	iFileName = NULL;
 	delete iNewFileName;
+	iNewFileName = NULL;
 	}
-    
\ No newline at end of file
+    
--- a/harvester/monitorplugins/mdsfileserverplugin/src/mdsfileserverplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/mdsfileserverplugin/src/mdsfileserverplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -339,6 +339,7 @@
             		  {
             			fileEventType = EMdsFileCreated;
             			delete iCreatedFiles[i];
+            			iCreatedFiles[i] = NULL;
             			iCreatedFiles.Remove( i );
             			
 						//Have to check whether file has been hidden          			
@@ -433,6 +434,7 @@
                     if ( MdsUtils::Compare( iFileName, *(iModifiedFiles[i]) ) == 0 )
                       {
                         delete iModifiedFiles[i];
+                        iModifiedFiles[i] = NULL;
                         iModifiedFiles.Remove( i );
                         found = ETrue;
                         }
--- a/harvester/monitorplugins/messageplugin/src/messagemonitorplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/messageplugin/src/messagemonitorplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -64,7 +64,9 @@
 	{
 	WRITELOG("ENTER ~CMessageMonitorPlugin");
     delete iMsvSession;
+    iMsvSession = NULL;
     delete iMessageScannerAO;
+    iMessageScannerAO = NULL;
 	WRITELOG("END ~CMessageMonitorPlugin");	
 	}
 
@@ -465,6 +467,7 @@
 		
 		iMdeSession->AddEventL( *event );
 		delete event;
+		event = NULL;
     	}
     
     WRITELOG( "CMessageMonitorPlugin::RemoveObjectL return" );
--- a/harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/inc/mmcmounttaskao.h	Fri Jul 23 10:03:59 2010 +0300
@@ -46,8 +46,8 @@
 		static CMMCMountTaskAO* NewL();	
 		virtual ~CMMCMountTaskAO();
 		
-		void StartMount( TMountData& aMountData );
-		void StartUnmount( TMountData& aMountData );
+		void StartMountL( TMountData& aMountData );
+		void StartUnmountL( TMountData& aMountData );
 		void SetMonitorObserver( MMonitorPluginObserver& aObserver );
 		void SetMdeSession( CMdEHarvesterSession* aSession );
 		void SetHarvesterPluginFactory( CHarvesterPluginFactory* aPluginFactory );
--- a/harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcmonitorplugin.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -60,21 +60,26 @@
     	{
     	iMMCMonitor->StopMonitoring();
     	delete iMMCMonitor;
+    	iMMCMonitor = NULL;
     	}
     
 	if (iUsbMonitor)
     	{
     	iUsbMonitor->StopMonitoring();
     	delete iUsbMonitor;
+    	iUsbMonitor = NULL;
     	}
     
 	if (iMountTask)
     	{
     	delete iMountTask;
+    	iMountTask = NULL;
     	}
 	
 	delete iMmcScanner;
+	iMmcScanner = NULL;
 	delete iHddScanner;
+	iHddScanner = NULL;
 	
 	iFs.Close();
     }
@@ -219,6 +224,7 @@
 
     TMountData* mountData = NULL;
     mountData = new TMountData;
+    
     if ( !mountData )
         {
         return;
@@ -248,7 +254,13 @@
             {
             WRITELOG( "CMMCMonitorPlugin::MountEvent with parameter EMounted" );
             mountData->iMountType = TMountData::EMount;
-            iMountTask->StartMount( *mountData );
+            TRAPD(err, iMountTask->StartMountL( *mountData ))
+			
+            if(err != KErrNone )
+                {
+                delete mountData;
+                mountData = NULL;
+                }
             }
         break;
         
@@ -262,7 +274,13 @@
             	{
 	            WRITELOG( "CMMCMonitorPlugin::MountEvent with parameter EDismounted" );
 	            mountData->iMountType = TMountData::EUnmount;
-	            iMountTask->StartUnmount( *mountData );
+	            TRAPD(err, iMountTask->StartUnmountL( *mountData ));
+	            
+	            if(err != KErrNone )
+	                {
+	                delete mountData;
+	                mountData = NULL;
+	                }
             	}
             else
                 {
@@ -276,7 +294,13 @@
             {
             WRITELOG( "CMMCMonitorPlugin::MountEvent with parameter EFormatted" );
             mountData->iMountType = TMountData::EFormat;
-            iMountTask->StartUnmount( *mountData );
+            TRAPD(err, iMountTask->StartUnmountL( *mountData ));
+			
+            if(err != KErrNone)
+                {
+                delete mountData;
+                mountData = NULL;
+                }
             }
         break;
         
--- a/harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcmounttaskao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -79,6 +79,7 @@
 	iHarvestEntryArray.Close();
 	
 	delete iMdeSession;
+	iMdeSession = NULL;
   
 	Deinitialize();
 	
@@ -88,6 +89,7 @@
 		}
 	
 	delete iMmcFileList;
+	iMmcFileList = NULL;
 	iHdArray.ResetAndDestroy();
 	iHdArray.Close();
 	}
@@ -108,17 +110,19 @@
 	iHarvesterPluginFactory = aPluginFactory;
 	}
 	
-void CMMCMountTaskAO::StartMount( TMountData& aMountData )
+void CMMCMountTaskAO::StartMountL( TMountData& aMountData )
 	{
 	WRITELOG("CMMCMountTaskAO::StartMount");
-	iMountDataQueue.Append( &aMountData );
+	
+	User::LeaveIfError( iMountDataQueue.Append( &aMountData ));
+	
 	if ( iNextRequest == ERequestIdle )
 		{
 		SetNextRequest( ERequestStartTask );
 		}
 	}
 	
-void CMMCMountTaskAO::StartUnmount(TMountData& aMountData)
+void CMMCMountTaskAO::StartUnmountL(TMountData& aMountData)
 	{
 	WRITELOG("CMMCMountTaskAO::StartUnmount");
 	
@@ -132,7 +136,8 @@
 			}
 		}
 		
-	iMountDataQueue.Append( &aMountData );
+	User::LeaveIfError( iMountDataQueue.Append( &aMountData ));
+		
 	SetNextRequest( ERequestStartTask );
 	}
 	
@@ -146,7 +151,10 @@
 		{
 		if ( iMountData )
 			{
-			iMountDataQueue.Insert( iMountData, 0 );
+			if( iMountDataQueue.Insert( iMountData, 0 ) != KErrNone)
+			    {
+                delete iMountData;
+			    }
 			iMountData = NULL;
 			}
 		Deinitialize();
@@ -205,7 +213,11 @@
 			TRAPD( err, iMmcFileList->BuildFileListL( iFs, iMountData->iDrivePath, iEntryArray ));
 			if ( err == KErrNoMemory )
 				{
-				iMountDataQueue.Insert( iMountData, 0 );
+				if( iMountDataQueue.Insert( iMountData, 0 ) != KErrNone)
+				    {
+                    delete iMountData;
+				    }
+					
 				iMountData = NULL;
 				Deinitialize();
 				SetNextRequest( ERequestStartTask );
@@ -284,9 +296,14 @@
 					{
 					if( err == KErrNoMemory )
 						{
-						iMountDataQueue.Insert( iMountData, 0 );
+						if(iMountDataQueue.Insert( iMountData, 0 ) != KErrNone)
+						    {
+                            delete iMountData;
+						    }
+							
 						iMountData = NULL;
 						}
+						
 					Deinitialize();
 					SetNextRequest( ERequestStartTask );
 					break;
@@ -437,6 +454,7 @@
 			hd->SetEventType( EHarvesterEdit );
 			hd->SetObjectType( ENormal );
 			delete ei;
+			ei = NULL;
 			}
 		else
 			{
@@ -445,7 +463,12 @@
 			hd->SetClientData( ei );
 			}
 		
-		iHdArray.Append( hd );
+		if(iHdArray.Append( hd ) != KErrNone )
+		    {
+            delete hd;
+            hd = NULL;
+		    }
+			
 		aArray.Remove( i );
 		}
 	
--- a/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/monitorplugins/mmcplugin/src/mmcscannerao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -82,6 +82,7 @@
 	// Delete instance variables if any
 	
 	delete iMmcFileList;
+	iMmcFileList = NULL;
 	
 	iEntryArray.ResetAndDestroy();
 	iEntryArray.Close();
@@ -248,6 +249,7 @@
 			hd->SetEventType( EHarvesterEdit );
 			hd->SetObjectType( ENormal );
 			delete ei;
+			ei = NULL;
 			}
 		else
 			{
@@ -255,7 +257,12 @@
 			hd->SetObjectType( EPlaceholder );
 			hd->SetClientData( ei );
 			}
-		iHdArray.Append( hd );
+			
+		if(iHdArray.Append( hd ) != KErrNone )
+		    {
+            delete hd;
+            hd = NULL;
+		    }
         iHarvestEntryArray.Remove( i );
         }
 
--- a/harvester/server/src/harvesterao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/harvesterao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -186,14 +186,18 @@
     DeleteComposers();
 
     delete iDiskFullNotifier;
+    iDiskFullNotifier = NULL;
 	delete iBackupSubscriber;
+	iBackupSubscriber = NULL;
     
     if (iBlacklist)
 		{
 		iBlacklist->CloseDatabase();
 		delete iBlacklist;
+		iBlacklist = NULL;
 		}
 	delete iReHarvester;
+	iReHarvester = NULL;
 
     if ( iHarvestFileMessages.Count() > 0 )
         {
@@ -222,26 +226,43 @@
     iTempReadyPHArray.Close();
     
 	delete iHarvesterOomAO;
+	iHarvesterOomAO = NULL;
     delete iRestoreWatcher;
+    iRestoreWatcher = NULL;
 	delete iOnDemandAO;
+	iOnDemandAO = NULL;
 	delete iMdEHarvesterSession;
+	iMdEHarvesterSession = NULL;
 	delete iMdESession;
+	iMdESession = NULL;
 	delete iQueue;
+	iQueue = NULL;
 	delete iHarvesterPluginFactory;
+	iHarvesterPluginFactory = NULL;
 	delete iMdeObjectHandler;
+	iMdeObjectHandler = NULL;
 	delete iUnmountHandlerAO;
+	iUnmountHandlerAO = NULL;
 	
 	delete iPropDefs;
+	iPropDefs = NULL;
 	delete iCameraExtensionArray;
+	iCameraExtensionArray = NULL;
 	
     delete iPhoneImagesPath;
+    iPhoneImagesPath = NULL;
     delete iMmcImagesPath;
+    iMmcImagesPath = NULL;
     
     delete iPhoneVideosPath;
+    iPhoneVideosPath = NULL;
     delete iMmcVideosPath;
+    iMmcVideosPath = NULL;
     
     delete iPhoneSoundsPath;
+    iPhoneSoundsPath = NULL;
     delete iMmcSoundsPath;
+    iMmcSoundsPath = NULL;
 	
 	RMediaIdUtil::ReleaseInstance();
     
@@ -825,22 +846,29 @@
 				iPHArray.Count() < KPlaceholderQueueSize &&
 				hd->ObjectType() == EPlaceholder )
     		{
-        	iPHArray.Append( hd );
-        	if( hd->Origin() == MdeConstants::Object::ECamera || 
-        	    hd->ObjectType() == EFastHarvest  )
+        	if(iPHArray.Append( hd ) != KErrNone)
+        	    {
+                delete hd;
+                hd = NULL;
+        	    }
+        	else
         	    {
-        	    if( !iFastHarvestNeeded )
-        	        {
-                    iFastHarvestNeeded = ETrue;
-                    // Fast harvest event must be handled even if MMC handling would be ongoing
-                    SetPriority( KHarvesterPriorityMonitorPlugin );
-        	        }
-        	    break;
-        	    }
-        	else if( iFastHarvestNeeded )
-        	    {
-        	    iFastHarvestNeeded = EFalse;
-        	    SetPriority( KHarvesterCustomImportantPriority );
+                if( hd->Origin() == MdeConstants::Object::ECamera || 
+                    hd->ObjectType() == EFastHarvest  )
+                    {
+                    if( !iFastHarvestNeeded )
+                        {
+                        iFastHarvestNeeded = ETrue;
+                        // Fast harvest event must be handled even if MMC handling would be ongoing
+                        SetPriority( KHarvesterPriorityMonitorPlugin );
+                        }
+                    break;
+                    }
+                else if( iFastHarvestNeeded )
+                    {
+                    iFastHarvestNeeded = EFalse;
+                    SetPriority( KHarvesterCustomImportantPriority );
+        	    	}
         	    }
         	hd = iQueue->GetNextItem();
     		}
@@ -877,7 +905,11 @@
     		{
 	    	if( hd->ObjectType() == EPlaceholder )
 	    		{
-	        	iPHArray.Append( hd );
+	        	if( iPHArray.Append( hd ) != KErrNone )
+	        	    {
+                    delete hd;
+                    hd = NULL;
+	        	    }
 	    		}
 	    	else
 	    		{
@@ -939,12 +971,18 @@
 		
 		if( aCheck && iHarvesterPluginFactory->IsContainerFileL( hd->Uri() ) )
 			{
-			iContainerPHArray.Append( hd );
+			if( iContainerPHArray.Append( hd ) != KErrNone )
+			    {
+                delete hd;
+                hd = NULL;
+			    }
+
 			iPHArray.Remove( i );
-            i--;
-            endindex--;
+			i--;
+			endindex--;
 			continue;
 			}
+		
 		TBuf<KObjectDefStrSize> objDefStr;
 		
 		if( !CheckForCameraItem( hd, objDefStr ) )
@@ -961,7 +999,12 @@
 		    for( TInt y( iTempReadyPHArray.Count() -1 ); y >=0; y-- )
 		        {
 		        CHarvesterData* hd = iTempReadyPHArray[y];
-		        iPHArray.Insert( hd, 0 );
+				
+		        if(iPHArray.Insert( hd, 0 ) != KErrNone)
+		            {
+                    delete hd;
+                    hd = NULL;
+		            }
 		        }
 		    iTempReadyPHArray.Reset();
 		    CleanupStack::PopAndDestroy( &mdeObjectArray );
@@ -980,11 +1023,19 @@
                 if( currentPHArrayCount )
                     {
                     // Leave the first item in the array as it is the priority item
-                    iPHArray.Insert( hd, 1 );
+                    if(iPHArray.Insert( hd, 1 ) != KErrNone)
+                        {
+                        delete hd;
+                        hd = NULL;
+                        }
                     }
                 else
                     {
-                    iPHArray.Insert( hd, 0 );
+                    if(iPHArray.Insert( hd, 0 ) != KErrNone)
+                        {
+                        delete hd;
+                        hd = NULL;
+                        }
                     }
                 }
             iTempReadyPHArray.Reset();
@@ -1172,7 +1223,11 @@
 	    
 	    CleanupStack::Pop( mdeObject );
 		
-	    iTempReadyPHArray.Append( hd );
+	    if(iTempReadyPHArray.Append( hd ) != KErrNone)
+	        {
+            delete hd;
+            hd = NULL;
+	        }
 		iPHArray.Remove( i );
         i--;
         endindex--;
@@ -1352,6 +1407,7 @@
 	
 	TInt pluginErr = KErrNone;
     TRAPD( err, pluginErr = iHarvesterPluginFactory->HarvestL( aHD ));
+    
     if ( err != KErrNone )
     	{
     	WRITELOG1( "CHarvesterAO::CheckFileExtensionAndHarvestL() - plugin error: %d", err );
@@ -3041,9 +3097,11 @@
 						WRITELOG("CHarvesterAO::BootScanL() - scanFolders.AppendL");
 						OstTrace0( TRACE_NORMAL, DUP2_CHARVESTERAO_BOOTSCANL, "CHarvesterAO::BootScanL - scanFolders.AppendL" );
 						TScanItem* item = new (ELeave) TScanItem();
+						CleanupStack::PushL( item );
 						item->iPath = name->AllocL();
 						item->iPreinstalled = MdeConstants::MediaObject::ENotPreinstalled;
-						aScanItems.AppendL( item );
+						CleanupStack::Pop( item );
+						aScanItems.AppendL( item ); // ownership is transferred
 						}
 					}
 				else
@@ -3103,7 +3161,12 @@
 	                        hd->SetClientData( phData );
 
 	                        CleanupStack::Pop( phData );
-	                        hdArray.Append( hd );
+							
+	                        if(hdArray.Append( hd ) != KErrNone )
+	                            {
+                                delete hd;
+                                hd = NULL;
+	                            }
 						    }
 						CleanupStack::PopAndDestroy( &results );
 						CleanupStack::PopAndDestroy( &fileInfos );
--- a/harvester/server/src/harvesterqueue.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/harvesterqueue.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -174,6 +174,7 @@
     if ( aItem->ObjectType() == EFastHarvest || aItem->Origin() == MdeConstants::Object::ECamera )
     	{
     	err = iItemQueue.Insert( aItem, 0 );
+    	
     	if( !iHarvesterAO->IsActive() )
     	    {
             iHarvesterAO->SetPriority( KHarvesterPriorityMonitorPlugin );
--- a/harvester/server/src/harvesterserver.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/harvesterserver.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -444,8 +444,11 @@
     OstTrace0( TRACE_NORMAL, CHARVESTERSERVER_CHARVESTERSERVER, "CHarvesterServer::~CHarvesterServer" );
     
     delete iHarvesterAO;
+    iHarvesterAO = NULL;
     delete iPauseObserverAO;
+    iPauseObserverAO = NULL;
     delete iShutdownObserver;
+    iShutdownObserver = NULL;
     OstTrace0( TRACE_NORMAL, DUP1_CHARVESTERSERVER_CHARVESTERSERVER, "CHarvesterServer::~CHarvesterServer end" );
     
     WRITELOG( "CHarvesterServer::~CHarvesterServer() end" );
--- a/harvester/server/src/mdeobjecthandler.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/mdeobjecthandler.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -126,7 +126,7 @@
                 CMdERelation* relation =  
                		iMdeSession->NewRelationLC(
                 		albumRelationDef, albumId, objectId, 0 );
-                relationEventArray.Append( STATIC_CAST( CMdEInstanceItem*, relation ) );
+                relationEventArray.AppendL( STATIC_CAST( CMdEInstanceItem*, relation ) );
                 CleanupStack::Pop(); //relation
                 }
             }
@@ -140,7 +140,7 @@
             {
             CMdEEvent* event = iMdeSession->NewEventLC( 
             		*eventDef, objectId, time );
-            relationEventArray.Append( STATIC_CAST( CMdEInstanceItem*, event ) );
+            relationEventArray.AppendL( STATIC_CAST( CMdEInstanceItem*, event ) );
             CleanupStack::Pop(); // event
             }
         }
--- a/harvester/server/src/ondemandao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/ondemandao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -64,6 +64,7 @@
 	if( iMdEHarvesterSession )
 		{
 		delete iMdEHarvesterSession;
+		iMdEHarvesterSession = NULL;
 		}
 	// Delete instance variables if any
 	}
@@ -115,8 +116,14 @@
 							hd->SetEventType( EHarvesterEdit );
 							hd->SetObjectType( EFastHarvest );
 							queue.Remove( k );
-							queue.Insert( hd, 0 );
-							found = ETrue;
+
+							if(queue.Insert( hd, 0 ) != KErrNone)
+							    {
+                                delete hd;
+                                hd = NULL;
+							    }
+							
+                            found = ETrue;
 							}							
 						}
 					}
--- a/harvester/server/src/reharvesterao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/src/reharvesterao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -165,6 +165,7 @@
             WRITELOG1("CReHarvesterAO::AddItem() - %S already exists in re-harvester queue", &aItem->Uri() );
 #endif
             delete aItem;
+            aItem = NULL;
             return;
             }
         }
@@ -173,11 +174,16 @@
     if( mdeObject )
     	{
     	delete mdeObject;
+    	mdeObject = NULL;
     	aItem->SetMdeObject( NULL );
     	}
     
-    iItems.Append( aItem );
-    
+    if(iItems.Append( aItem ) != KErrNone )
+        {
+        delete aItem;
+        aItem = NULL;
+        }
+
     iDelay = KResumeTime;
     const TTimeIntervalMicroSeconds32 delay = TTimeIntervalMicroSeconds32( iDelay );
     
@@ -206,6 +212,7 @@
         // found matching item
 	    iItems.Remove( i );
 	    delete item;
+	    item = NULL;
         }
     
     if ( iItems.Count() == 0 )
--- a/harvester/server/traces/fixed_id.definitions	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/traces/fixed_id.definitions	Fri Jul 23 10:03:59 2010 +0300
@@ -1,197 +1,197 @@
 #Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt.
-[GROUP]TRACE_NORMAL=0x86
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_BACKUPRESTOREREADY=0x63
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_BACKUPRESTORESTART=0x62
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_BOOTPARTIALRESTORESCANL=0x95
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_BOOTROMSCANL=0x94
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_BOOTSCANL=0x97
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_CHARVESTERAO=0x3
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x26
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_CONSTRUCTL=0x5
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4b
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8c
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_DELETECOMPOSERS=0x1f
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_DELETEMONITORPLUGINS=0x9
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_DOCANCEL=0x5a
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_GETLASTOBSERVERID=0x8b
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x64
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x22
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HANDLESESSIONERROR=0x4a
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HANDLESESSIONOPENED=0x3c
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HANDLEUNMOUNT=0x10
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HARVESTCOMPLETED=0x92
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HARVESTFILE=0x67
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HARVESTFILEWITHUID=0x72
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_HARVESTINGCOMPLETED=0x2f
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_ISCOMPOSINGREADY=0x20
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_ISSERVERPAUSED=0x61
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_LOADMONITORPLUGINSL=0x7
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_MEMORYGOOD=0x9e
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_MEMORYLOW=0x9d
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_NEWL=0x2
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_NEWLC=0x1
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_PAUSEHARVESTER=0x4e
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_PAUSEMONITORING=0xd
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_READITEMFROMQUEUEL=0x21
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_REGISTERHARVESTCOMPLETE=0x87
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_REGISTERHARVESTEREVENT=0x89
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7d
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_RESUMEHARVESTERL=0x50
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_RESUMEMONITORING=0xf
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_RUNERROR=0x5b
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_RUNL=0x51
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_SETNEXTREQUEST=0x60
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_STARTCOMPOSERSL=0x1d
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_STARTMONITORING=0xb
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_STOPCOMPOSERS=0x1e
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_STOPMONITORING=0xc
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_UNREGISTERHARVESTCOMPLETE=0x88
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_UNREGISTERHARVESTEREVENT=0x8a
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x83
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION=0xc0
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_CONSTRUCTL=0xbf
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_DISCONNECT=0xc3
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_NEWL=0xbd
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_NEWLC=0xbe
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVERSESSION_SERVICEL=0xc2
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_CHARVESTERSERVER=0xb1
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_CONSTRUCTL=0x9f
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_HARVESTFILE=0xa9
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_HARVESTFILEWITHUID=0xaa
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_NEWSESSIONL=0xb5
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_PANICCLIENT=0xb3
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_PANICSERVER=0xb4
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_PAUSE=0xa1
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_PAUSEREADY=0xa5
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_REGISTERHARVESTCOMPLETE=0xad
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_REGISTERHARVESTEREVENT=0xaf
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_REGISTERPROCESSORIGIN=0xab
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_RESTARTNOTIFICATION=0xa8
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_RESUME=0xa2
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_RESUMEREADY=0xa6
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_RUNERROR=0xb7
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_SHUTDOWNNOTIFICATION=0xa7
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_THREADFUNCTION=0xba
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_THREADFUNCTIONL=0xb8
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_UNREGISTERHARVESTCOMPLETE=0xae
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_UNREGISTERHARVESTEREVENT=0xb0
-[TRACE]TRACE_NORMAL[0x86]_CHARVESTERSERVER_UNREGISTERPROCESSORIGIN=0xac
-[TRACE]TRACE_NORMAL[0x86]_DUP10_CHARVESTERAO_HANDLESESSIONOPENED=0x46
-[TRACE]TRACE_NORMAL[0x86]_DUP10_CHARVESTERAO_HANDLEUNMOUNT=0x19
-[TRACE]TRACE_NORMAL[0x86]_DUP10_CHARVESTERAO_HARVESTFILE=0x71
-[TRACE]TRACE_NORMAL[0x86]_DUP10_CHARVESTERAO_HARVESTFILEWITHUID=0x7c
-[TRACE]TRACE_NORMAL[0x86]_DUP10_CHARVESTERAO_HARVESTINGCOMPLETED=0x39
-[TRACE]TRACE_NORMAL[0x86]_DUP11_CHARVESTERAO_HANDLESESSIONOPENED=0x47
-[TRACE]TRACE_NORMAL[0x86]_DUP11_CHARVESTERAO_HANDLEUNMOUNT=0x1a
-[TRACE]TRACE_NORMAL[0x86]_DUP11_CHARVESTERAO_HARVESTINGCOMPLETED=0x3a
-[TRACE]TRACE_NORMAL[0x86]_DUP12_CHARVESTERAO_HANDLESESSIONOPENED=0x48
-[TRACE]TRACE_NORMAL[0x86]_DUP12_CHARVESTERAO_HANDLEUNMOUNT=0x1b
-[TRACE]TRACE_NORMAL[0x86]_DUP12_CHARVESTERAO_HARVESTINGCOMPLETED=0x3b
-[TRACE]TRACE_NORMAL[0x86]_DUP13_CHARVESTERAO_HANDLESESSIONOPENED=0x49
-[TRACE]TRACE_NORMAL[0x86]_DUP13_CHARVESTERAO_HANDLEUNMOUNT=0x1c
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL=0x96
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_BOOTSCANL=0x98
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_CHARVESTERAO=0x4
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x27
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_CONSTRUCTL=0x6
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4c
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8d
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_DELETEMONITORPLUGINS=0xa
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x65
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x23
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HANDLESESSIONOPENED=0x3d
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HANDLEUNMOUNT=0x11
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HARVESTCOMPLETED=0x93
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HARVESTFILE=0x68
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HARVESTFILEWITHUID=0x73
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_HARVESTINGCOMPLETED=0x38
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_LOADMONITORPLUGINSL=0x8
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_PAUSEHARVESTER=0x4f
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_PAUSEMONITORING=0xe
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7e
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_RUNERROR=0x5c
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_RUNL=0x52
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x84
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION=0xc1
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_CHARVESTERSERVER=0xb2
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_CONSTRUCTL=0xa0
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_NEWSESSIONL=0xb6
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_PAUSE=0xa3
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_RESUME=0xa4
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_THREADFUNCTION=0xbb
-[TRACE]TRACE_NORMAL[0x86]_DUP1_CHARVESTERSERVER_THREADFUNCTIONL=0xb9
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_BOOTSCANL=0x99
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x28
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4d
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8e
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x66
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x24
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HANDLESESSIONOPENED=0x3e
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HANDLEUNMOUNT=0x12
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HARVESTFILE=0x69
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HARVESTFILEWITHUID=0x74
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_HARVESTINGCOMPLETED=0x30
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7f
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_RUNERROR=0x5d
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_RUNL=0x53
-[TRACE]TRACE_NORMAL[0x86]_DUP2_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x85
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_BOOTSCANL=0x9a
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x29
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8f
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x25
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HANDLESESSIONOPENED=0x3f
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HANDLEUNMOUNT=0x13
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HARVESTFILE=0x6a
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HARVESTFILEWITHUID=0x75
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_HARVESTINGCOMPLETED=0x31
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_REGISTERPROCESSORIGIN=0x80
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_RUNERROR=0x5e
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_RUNL=0x54
-[TRACE]TRACE_NORMAL[0x86]_DUP3_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x86
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_BOOTSCANL=0x9b
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2a
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x90
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_HANDLESESSIONOPENED=0x40
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_HANDLEUNMOUNT=0x14
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_HARVESTFILE=0x6b
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_HARVESTFILEWITHUID=0x76
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_HARVESTINGCOMPLETED=0x32
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_REGISTERPROCESSORIGIN=0x81
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_RUNERROR=0x5f
-[TRACE]TRACE_NORMAL[0x86]_DUP4_CHARVESTERAO_RUNL=0x55
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_BOOTSCANL=0x9c
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2b
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x91
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_HANDLESESSIONOPENED=0x41
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_HANDLEUNMOUNT=0x15
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_HARVESTFILE=0x6c
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_HARVESTFILEWITHUID=0x77
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_HARVESTINGCOMPLETED=0x33
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_REGISTERPROCESSORIGIN=0x82
-[TRACE]TRACE_NORMAL[0x86]_DUP5_CHARVESTERAO_RUNL=0x56
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2c
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_HANDLESESSIONOPENED=0x42
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_HANDLEUNMOUNT=0x16
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_HARVESTFILE=0x6d
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_HARVESTFILEWITHUID=0x78
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_HARVESTINGCOMPLETED=0x34
-[TRACE]TRACE_NORMAL[0x86]_DUP6_CHARVESTERAO_RUNL=0x57
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2d
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_HANDLESESSIONOPENED=0x43
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_HANDLEUNMOUNT=0x17
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_HARVESTFILE=0x6e
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_HARVESTFILEWITHUID=0x79
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_HARVESTINGCOMPLETED=0x35
-[TRACE]TRACE_NORMAL[0x86]_DUP7_CHARVESTERAO_RUNL=0x58
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2e
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_HANDLESESSIONOPENED=0x44
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_HANDLEUNMOUNT=0x18
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_HARVESTFILE=0x6f
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_HARVESTFILEWITHUID=0x7a
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_HARVESTINGCOMPLETED=0x36
-[TRACE]TRACE_NORMAL[0x86]_DUP8_CHARVESTERAO_RUNL=0x59
-[TRACE]TRACE_NORMAL[0x86]_DUP9_CHARVESTERAO_HANDLESESSIONOPENED=0x45
-[TRACE]TRACE_NORMAL[0x86]_DUP9_CHARVESTERAO_HARVESTFILE=0x70
-[TRACE]TRACE_NORMAL[0x86]_DUP9_CHARVESTERAO_HARVESTFILEWITHUID=0x7b
-[TRACE]TRACE_NORMAL[0x86]_DUP9_CHARVESTERAO_HARVESTINGCOMPLETED=0x37
-[TRACE]TRACE_NORMAL[0x86]__E32MAIN=0xbc
+[GROUP]TRACE_NORMAL=0x3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_BACKUPRESTOREREADY=0x63
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_BACKUPRESTORESTART=0x62
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_BOOTPARTIALRESTORESCANL=0x95
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_BOOTROMSCANL=0x94
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_BOOTSCANL=0x97
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_CHARVESTERAO=0x3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x26
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_CONSTRUCTL=0x5
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4b
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8c
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_DELETECOMPOSERS=0x1f
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_DELETEMONITORPLUGINS=0x9
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_DOCANCEL=0x5a
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_GETLASTOBSERVERID=0x8b
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x64
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x22
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HANDLESESSIONERROR=0x4a
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HANDLESESSIONOPENED=0x3c
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HANDLEUNMOUNT=0x10
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HARVESTCOMPLETED=0x92
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HARVESTFILE=0x67
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HARVESTFILEWITHUID=0x72
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_HARVESTINGCOMPLETED=0x2f
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_ISCOMPOSINGREADY=0x20
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_ISSERVERPAUSED=0x61
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_LOADMONITORPLUGINSL=0x7
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_MEMORYGOOD=0x9e
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_MEMORYLOW=0x9d
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_NEWL=0x2
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_NEWLC=0x1
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_PAUSEHARVESTER=0x4e
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_PAUSEMONITORING=0xd
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_READITEMFROMQUEUEL=0x21
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_REGISTERHARVESTCOMPLETE=0x87
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_REGISTERHARVESTEREVENT=0x89
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7d
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_RESUMEHARVESTERL=0x50
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_RESUMEMONITORING=0xf
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_RUNERROR=0x5b
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_RUNL=0x51
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_SETNEXTREQUEST=0x60
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_STARTCOMPOSERSL=0x1d
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_STARTMONITORING=0xb
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_STOPCOMPOSERS=0x1e
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_STOPMONITORING=0xc
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_UNREGISTERHARVESTCOMPLETE=0x88
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_UNREGISTERHARVESTEREVENT=0x8a
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x83
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION=0xc0
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_CONSTRUCTL=0xbf
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_DISCONNECT=0xc3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_NEWL=0xbd
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_NEWLC=0xbe
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVERSESSION_SERVICEL=0xc2
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_CHARVESTERSERVER=0xb1
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_CONSTRUCTL=0x9f
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_HARVESTFILE=0xa9
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_HARVESTFILEWITHUID=0xaa
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_NEWSESSIONL=0xb5
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_PANICCLIENT=0xb3
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_PANICSERVER=0xb4
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_PAUSE=0xa1
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_PAUSEREADY=0xa5
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_REGISTERHARVESTCOMPLETE=0xad
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_REGISTERHARVESTEREVENT=0xaf
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_REGISTERPROCESSORIGIN=0xab
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_RESTARTNOTIFICATION=0xa8
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_RESUME=0xa2
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_RESUMEREADY=0xa6
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_RUNERROR=0xb7
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_SHUTDOWNNOTIFICATION=0xa7
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_THREADFUNCTION=0xba
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_THREADFUNCTIONL=0xb8
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_UNREGISTERHARVESTCOMPLETE=0xae
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_UNREGISTERHARVESTEREVENT=0xb0
+[TRACE]TRACE_NORMAL[0x3]_CHARVESTERSERVER_UNREGISTERPROCESSORIGIN=0xac
+[TRACE]TRACE_NORMAL[0x3]_DUP10_CHARVESTERAO_HANDLESESSIONOPENED=0x46
+[TRACE]TRACE_NORMAL[0x3]_DUP10_CHARVESTERAO_HANDLEUNMOUNT=0x19
+[TRACE]TRACE_NORMAL[0x3]_DUP10_CHARVESTERAO_HARVESTFILE=0x71
+[TRACE]TRACE_NORMAL[0x3]_DUP10_CHARVESTERAO_HARVESTFILEWITHUID=0x7c
+[TRACE]TRACE_NORMAL[0x3]_DUP10_CHARVESTERAO_HARVESTINGCOMPLETED=0x39
+[TRACE]TRACE_NORMAL[0x3]_DUP11_CHARVESTERAO_HANDLESESSIONOPENED=0x47
+[TRACE]TRACE_NORMAL[0x3]_DUP11_CHARVESTERAO_HANDLEUNMOUNT=0x1a
+[TRACE]TRACE_NORMAL[0x3]_DUP11_CHARVESTERAO_HARVESTINGCOMPLETED=0x3a
+[TRACE]TRACE_NORMAL[0x3]_DUP12_CHARVESTERAO_HANDLESESSIONOPENED=0x48
+[TRACE]TRACE_NORMAL[0x3]_DUP12_CHARVESTERAO_HANDLEUNMOUNT=0x1b
+[TRACE]TRACE_NORMAL[0x3]_DUP12_CHARVESTERAO_HARVESTINGCOMPLETED=0x3b
+[TRACE]TRACE_NORMAL[0x3]_DUP13_CHARVESTERAO_HANDLESESSIONOPENED=0x49
+[TRACE]TRACE_NORMAL[0x3]_DUP13_CHARVESTERAO_HANDLEUNMOUNT=0x1c
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL=0x96
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_BOOTSCANL=0x98
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_CHARVESTERAO=0x4
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x27
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_CONSTRUCTL=0x6
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4c
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8d
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_DELETEMONITORPLUGINS=0xa
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x65
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x23
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HANDLESESSIONOPENED=0x3d
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HANDLEUNMOUNT=0x11
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HARVESTCOMPLETED=0x93
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HARVESTFILE=0x68
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HARVESTFILEWITHUID=0x73
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_HARVESTINGCOMPLETED=0x38
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_LOADMONITORPLUGINSL=0x8
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_PAUSEHARVESTER=0x4f
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_PAUSEMONITORING=0xe
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7e
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_RUNERROR=0x5c
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_RUNL=0x52
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x84
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION=0xc1
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_CHARVESTERSERVER=0xb2
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_CONSTRUCTL=0xa0
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_NEWSESSIONL=0xb6
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_PAUSE=0xa3
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_RESUME=0xa4
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_THREADFUNCTION=0xbb
+[TRACE]TRACE_NORMAL[0x3]_DUP1_CHARVESTERSERVER_THREADFUNCTIONL=0xb9
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_BOOTSCANL=0x99
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x28
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS=0x4d
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8e
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL=0x66
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x24
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HANDLESESSIONOPENED=0x3e
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HANDLEUNMOUNT=0x12
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HARVESTFILE=0x69
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HARVESTFILEWITHUID=0x74
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_HARVESTINGCOMPLETED=0x30
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_REGISTERPROCESSORIGIN=0x7f
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_RUNERROR=0x5d
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_RUNL=0x53
+[TRACE]TRACE_NORMAL[0x3]_DUP2_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x85
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_BOOTSCANL=0x9a
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x29
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x8f
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HANDLEPLACEHOLDERSL=0x25
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HANDLESESSIONOPENED=0x3f
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HANDLEUNMOUNT=0x13
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HARVESTFILE=0x6a
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HARVESTFILEWITHUID=0x75
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_HARVESTINGCOMPLETED=0x31
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_REGISTERPROCESSORIGIN=0x80
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_RUNERROR=0x5e
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_RUNL=0x54
+[TRACE]TRACE_NORMAL[0x3]_DUP3_CHARVESTERAO_UNREGISTERPROCESSORIGIN=0x86
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_BOOTSCANL=0x9b
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2a
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x90
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_HANDLESESSIONOPENED=0x40
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_HANDLEUNMOUNT=0x14
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_HARVESTFILE=0x6b
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_HARVESTFILEWITHUID=0x76
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_HARVESTINGCOMPLETED=0x32
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_REGISTERPROCESSORIGIN=0x81
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_RUNERROR=0x5f
+[TRACE]TRACE_NORMAL[0x3]_DUP4_CHARVESTERAO_RUNL=0x55
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_BOOTSCANL=0x9c
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2b
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS=0x91
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_HANDLESESSIONOPENED=0x41
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_HANDLEUNMOUNT=0x15
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_HARVESTFILE=0x6c
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_HARVESTFILEWITHUID=0x77
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_HARVESTINGCOMPLETED=0x33
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_REGISTERPROCESSORIGIN=0x82
+[TRACE]TRACE_NORMAL[0x3]_DUP5_CHARVESTERAO_RUNL=0x56
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2c
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_HANDLESESSIONOPENED=0x42
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_HANDLEUNMOUNT=0x16
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_HARVESTFILE=0x6d
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_HARVESTFILEWITHUID=0x78
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_HARVESTINGCOMPLETED=0x34
+[TRACE]TRACE_NORMAL[0x3]_DUP6_CHARVESTERAO_RUNL=0x57
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2d
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_HANDLESESSIONOPENED=0x43
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_HANDLEUNMOUNT=0x17
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_HARVESTFILE=0x6e
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_HARVESTFILEWITHUID=0x79
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_HARVESTINGCOMPLETED=0x35
+[TRACE]TRACE_NORMAL[0x3]_DUP7_CHARVESTERAO_RUNL=0x58
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL=0x2e
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_HANDLESESSIONOPENED=0x44
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_HANDLEUNMOUNT=0x18
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_HARVESTFILE=0x6f
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_HARVESTFILEWITHUID=0x7a
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_HARVESTINGCOMPLETED=0x36
+[TRACE]TRACE_NORMAL[0x3]_DUP8_CHARVESTERAO_RUNL=0x59
+[TRACE]TRACE_NORMAL[0x3]_DUP9_CHARVESTERAO_HANDLESESSIONOPENED=0x45
+[TRACE]TRACE_NORMAL[0x3]_DUP9_CHARVESTERAO_HARVESTFILE=0x70
+[TRACE]TRACE_NORMAL[0x3]_DUP9_CHARVESTERAO_HARVESTFILEWITHUID=0x7b
+[TRACE]TRACE_NORMAL[0x3]_DUP9_CHARVESTERAO_HARVESTINGCOMPLETED=0x37
+[TRACE]TRACE_NORMAL[0x3]__E32MAIN=0xbc
--- a/harvester/server/traces/harvesteraoTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/traces/harvesteraoTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTERAOTRACES_H__
@@ -6,164 +6,164 @@
 
 #define KOstTraceComponentID 0x200009f5
 
-#define CHARVESTERAO_NEWLC 0x860001
-#define CHARVESTERAO_NEWL 0x860002
-#define CHARVESTERAO_CHARVESTERAO 0x860003
-#define DUP1_CHARVESTERAO_CHARVESTERAO 0x860004
-#define CHARVESTERAO_CONSTRUCTL 0x860005
-#define DUP1_CHARVESTERAO_CONSTRUCTL 0x860006
-#define CHARVESTERAO_LOADMONITORPLUGINSL 0x860007
-#define DUP1_CHARVESTERAO_LOADMONITORPLUGINSL 0x860008
-#define CHARVESTERAO_DELETEMONITORPLUGINS 0x860009
-#define DUP1_CHARVESTERAO_DELETEMONITORPLUGINS 0x86000a
-#define CHARVESTERAO_STARTMONITORING 0x86000b
-#define CHARVESTERAO_STOPMONITORING 0x86000c
-#define CHARVESTERAO_PAUSEMONITORING 0x86000d
-#define DUP1_CHARVESTERAO_PAUSEMONITORING 0x86000e
-#define CHARVESTERAO_RESUMEMONITORING 0x86000f
-#define CHARVESTERAO_HANDLEUNMOUNT 0x860010
-#define DUP1_CHARVESTERAO_HANDLEUNMOUNT 0x860011
-#define DUP2_CHARVESTERAO_HANDLEUNMOUNT 0x860012
-#define DUP3_CHARVESTERAO_HANDLEUNMOUNT 0x860013
-#define DUP4_CHARVESTERAO_HANDLEUNMOUNT 0x860014
-#define DUP5_CHARVESTERAO_HANDLEUNMOUNT 0x860015
-#define DUP6_CHARVESTERAO_HANDLEUNMOUNT 0x860016
-#define DUP7_CHARVESTERAO_HANDLEUNMOUNT 0x860017
-#define DUP8_CHARVESTERAO_HANDLEUNMOUNT 0x860018
-#define DUP10_CHARVESTERAO_HANDLEUNMOUNT 0x860019
-#define DUP11_CHARVESTERAO_HANDLEUNMOUNT 0x86001a
-#define DUP12_CHARVESTERAO_HANDLEUNMOUNT 0x86001b
-#define DUP13_CHARVESTERAO_HANDLEUNMOUNT 0x86001c
-#define CHARVESTERAO_STARTCOMPOSERSL 0x86001d
-#define CHARVESTERAO_STOPCOMPOSERS 0x86001e
-#define CHARVESTERAO_DELETECOMPOSERS 0x86001f
-#define CHARVESTERAO_ISCOMPOSINGREADY 0x860020
-#define CHARVESTERAO_READITEMFROMQUEUEL 0x860021
-#define CHARVESTERAO_HANDLEPLACEHOLDERSL 0x860022
-#define DUP1_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x860023
-#define DUP2_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x860024
-#define DUP3_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x860025
-#define CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x860026
-#define DUP1_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x860027
-#define DUP2_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x860028
-#define DUP3_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x860029
-#define DUP4_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x86002a
-#define DUP5_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x86002b
-#define DUP6_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x86002c
-#define DUP7_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x86002d
-#define DUP8_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x86002e
-#define CHARVESTERAO_HARVESTINGCOMPLETED 0x86002f
-#define DUP2_CHARVESTERAO_HARVESTINGCOMPLETED 0x860030
-#define DUP3_CHARVESTERAO_HARVESTINGCOMPLETED 0x860031
-#define DUP4_CHARVESTERAO_HARVESTINGCOMPLETED 0x860032
-#define DUP5_CHARVESTERAO_HARVESTINGCOMPLETED 0x860033
-#define DUP6_CHARVESTERAO_HARVESTINGCOMPLETED 0x860034
-#define DUP7_CHARVESTERAO_HARVESTINGCOMPLETED 0x860035
-#define DUP8_CHARVESTERAO_HARVESTINGCOMPLETED 0x860036
-#define DUP9_CHARVESTERAO_HARVESTINGCOMPLETED 0x860037
-#define DUP1_CHARVESTERAO_HARVESTINGCOMPLETED 0x860038
-#define DUP10_CHARVESTERAO_HARVESTINGCOMPLETED 0x860039
-#define DUP11_CHARVESTERAO_HARVESTINGCOMPLETED 0x86003a
-#define DUP12_CHARVESTERAO_HARVESTINGCOMPLETED 0x86003b
-#define CHARVESTERAO_HANDLESESSIONOPENED 0x86003c
-#define DUP1_CHARVESTERAO_HANDLESESSIONOPENED 0x86003d
-#define DUP2_CHARVESTERAO_HANDLESESSIONOPENED 0x86003e
-#define DUP3_CHARVESTERAO_HANDLESESSIONOPENED 0x86003f
-#define DUP4_CHARVESTERAO_HANDLESESSIONOPENED 0x860040
-#define DUP5_CHARVESTERAO_HANDLESESSIONOPENED 0x860041
-#define DUP6_CHARVESTERAO_HANDLESESSIONOPENED 0x860042
-#define DUP7_CHARVESTERAO_HANDLESESSIONOPENED 0x860043
-#define DUP8_CHARVESTERAO_HANDLESESSIONOPENED 0x860044
-#define DUP9_CHARVESTERAO_HANDLESESSIONOPENED 0x860045
-#define DUP10_CHARVESTERAO_HANDLESESSIONOPENED 0x860046
-#define DUP11_CHARVESTERAO_HANDLESESSIONOPENED 0x860047
-#define DUP12_CHARVESTERAO_HANDLESESSIONOPENED 0x860048
-#define DUP13_CHARVESTERAO_HANDLESESSIONOPENED 0x860049
-#define CHARVESTERAO_HANDLESESSIONERROR 0x86004a
-#define CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x86004b
-#define DUP1_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x86004c
-#define DUP2_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x86004d
-#define CHARVESTERAO_PAUSEHARVESTER 0x86004e
-#define DUP1_CHARVESTERAO_PAUSEHARVESTER 0x86004f
-#define CHARVESTERAO_RESUMEHARVESTERL 0x860050
-#define CHARVESTERAO_RUNL 0x860051
-#define DUP1_CHARVESTERAO_RUNL 0x860052
-#define DUP2_CHARVESTERAO_RUNL 0x860053
-#define DUP3_CHARVESTERAO_RUNL 0x860054
-#define DUP4_CHARVESTERAO_RUNL 0x860055
-#define DUP5_CHARVESTERAO_RUNL 0x860056
-#define DUP6_CHARVESTERAO_RUNL 0x860057
-#define DUP7_CHARVESTERAO_RUNL 0x860058
-#define DUP8_CHARVESTERAO_RUNL 0x860059
-#define CHARVESTERAO_DOCANCEL 0x86005a
-#define CHARVESTERAO_RUNERROR 0x86005b
-#define DUP1_CHARVESTERAO_RUNERROR 0x86005c
-#define DUP2_CHARVESTERAO_RUNERROR 0x86005d
-#define DUP3_CHARVESTERAO_RUNERROR 0x86005e
-#define DUP4_CHARVESTERAO_RUNERROR 0x86005f
-#define CHARVESTERAO_SETNEXTREQUEST 0x860060
-#define CHARVESTERAO_ISSERVERPAUSED 0x860061
-#define CHARVESTERAO_BACKUPRESTORESTART 0x860062
-#define CHARVESTERAO_BACKUPRESTOREREADY 0x860063
-#define CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x860064
-#define DUP1_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x860065
-#define DUP2_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x860066
-#define CHARVESTERAO_HARVESTFILE 0x860067
-#define DUP1_CHARVESTERAO_HARVESTFILE 0x860068
-#define DUP2_CHARVESTERAO_HARVESTFILE 0x860069
-#define DUP3_CHARVESTERAO_HARVESTFILE 0x86006a
-#define DUP4_CHARVESTERAO_HARVESTFILE 0x86006b
-#define DUP5_CHARVESTERAO_HARVESTFILE 0x86006c
-#define DUP6_CHARVESTERAO_HARVESTFILE 0x86006d
-#define DUP7_CHARVESTERAO_HARVESTFILE 0x86006e
-#define DUP8_CHARVESTERAO_HARVESTFILE 0x86006f
-#define DUP9_CHARVESTERAO_HARVESTFILE 0x860070
-#define DUP10_CHARVESTERAO_HARVESTFILE 0x860071
-#define CHARVESTERAO_HARVESTFILEWITHUID 0x860072
-#define DUP1_CHARVESTERAO_HARVESTFILEWITHUID 0x860073
-#define DUP2_CHARVESTERAO_HARVESTFILEWITHUID 0x860074
-#define DUP3_CHARVESTERAO_HARVESTFILEWITHUID 0x860075
-#define DUP4_CHARVESTERAO_HARVESTFILEWITHUID 0x860076
-#define DUP5_CHARVESTERAO_HARVESTFILEWITHUID 0x860077
-#define DUP6_CHARVESTERAO_HARVESTFILEWITHUID 0x860078
-#define DUP7_CHARVESTERAO_HARVESTFILEWITHUID 0x860079
-#define DUP8_CHARVESTERAO_HARVESTFILEWITHUID 0x86007a
-#define DUP9_CHARVESTERAO_HARVESTFILEWITHUID 0x86007b
-#define DUP10_CHARVESTERAO_HARVESTFILEWITHUID 0x86007c
-#define CHARVESTERAO_REGISTERPROCESSORIGIN 0x86007d
-#define DUP1_CHARVESTERAO_REGISTERPROCESSORIGIN 0x86007e
-#define DUP2_CHARVESTERAO_REGISTERPROCESSORIGIN 0x86007f
-#define DUP3_CHARVESTERAO_REGISTERPROCESSORIGIN 0x860080
-#define DUP4_CHARVESTERAO_REGISTERPROCESSORIGIN 0x860081
-#define DUP5_CHARVESTERAO_REGISTERPROCESSORIGIN 0x860082
-#define CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x860083
-#define DUP1_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x860084
-#define DUP2_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x860085
-#define DUP3_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x860086
-#define CHARVESTERAO_REGISTERHARVESTCOMPLETE 0x860087
-#define CHARVESTERAO_UNREGISTERHARVESTCOMPLETE 0x860088
-#define CHARVESTERAO_REGISTERHARVESTEREVENT 0x860089
-#define CHARVESTERAO_UNREGISTERHARVESTEREVENT 0x86008a
-#define CHARVESTERAO_GETLASTOBSERVERID 0x86008b
-#define CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x86008c
-#define DUP1_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x86008d
-#define DUP2_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x86008e
-#define DUP3_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x86008f
-#define DUP4_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x860090
-#define DUP5_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x860091
-#define CHARVESTERAO_HARVESTCOMPLETED 0x860092
-#define DUP1_CHARVESTERAO_HARVESTCOMPLETED 0x860093
-#define CHARVESTERAO_BOOTROMSCANL 0x860094
-#define CHARVESTERAO_BOOTPARTIALRESTORESCANL 0x860095
-#define DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL 0x860096
-#define CHARVESTERAO_BOOTSCANL 0x860097
-#define DUP1_CHARVESTERAO_BOOTSCANL 0x860098
-#define DUP2_CHARVESTERAO_BOOTSCANL 0x860099
-#define DUP3_CHARVESTERAO_BOOTSCANL 0x86009a
-#define DUP4_CHARVESTERAO_BOOTSCANL 0x86009b
-#define DUP5_CHARVESTERAO_BOOTSCANL 0x86009c
-#define CHARVESTERAO_MEMORYLOW 0x86009d
-#define CHARVESTERAO_MEMORYGOOD 0x86009e
+#define CHARVESTERAO_NEWLC 0x30001
+#define CHARVESTERAO_NEWL 0x30002
+#define CHARVESTERAO_CHARVESTERAO 0x30003
+#define DUP1_CHARVESTERAO_CHARVESTERAO 0x30004
+#define CHARVESTERAO_CONSTRUCTL 0x30005
+#define DUP1_CHARVESTERAO_CONSTRUCTL 0x30006
+#define CHARVESTERAO_LOADMONITORPLUGINSL 0x30007
+#define DUP1_CHARVESTERAO_LOADMONITORPLUGINSL 0x30008
+#define CHARVESTERAO_DELETEMONITORPLUGINS 0x30009
+#define DUP1_CHARVESTERAO_DELETEMONITORPLUGINS 0x3000a
+#define CHARVESTERAO_STARTMONITORING 0x3000b
+#define CHARVESTERAO_STOPMONITORING 0x3000c
+#define CHARVESTERAO_PAUSEMONITORING 0x3000d
+#define DUP1_CHARVESTERAO_PAUSEMONITORING 0x3000e
+#define CHARVESTERAO_RESUMEMONITORING 0x3000f
+#define CHARVESTERAO_HANDLEUNMOUNT 0x30010
+#define DUP1_CHARVESTERAO_HANDLEUNMOUNT 0x30011
+#define DUP2_CHARVESTERAO_HANDLEUNMOUNT 0x30012
+#define DUP3_CHARVESTERAO_HANDLEUNMOUNT 0x30013
+#define DUP4_CHARVESTERAO_HANDLEUNMOUNT 0x30014
+#define DUP5_CHARVESTERAO_HANDLEUNMOUNT 0x30015
+#define DUP6_CHARVESTERAO_HANDLEUNMOUNT 0x30016
+#define DUP7_CHARVESTERAO_HANDLEUNMOUNT 0x30017
+#define DUP8_CHARVESTERAO_HANDLEUNMOUNT 0x30018
+#define DUP10_CHARVESTERAO_HANDLEUNMOUNT 0x30019
+#define DUP11_CHARVESTERAO_HANDLEUNMOUNT 0x3001a
+#define DUP12_CHARVESTERAO_HANDLEUNMOUNT 0x3001b
+#define DUP13_CHARVESTERAO_HANDLEUNMOUNT 0x3001c
+#define CHARVESTERAO_STARTCOMPOSERSL 0x3001d
+#define CHARVESTERAO_STOPCOMPOSERS 0x3001e
+#define CHARVESTERAO_DELETECOMPOSERS 0x3001f
+#define CHARVESTERAO_ISCOMPOSINGREADY 0x30020
+#define CHARVESTERAO_READITEMFROMQUEUEL 0x30021
+#define CHARVESTERAO_HANDLEPLACEHOLDERSL 0x30022
+#define DUP1_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x30023
+#define DUP2_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x30024
+#define DUP3_CHARVESTERAO_HANDLEPLACEHOLDERSL 0x30025
+#define CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x30026
+#define DUP1_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x30027
+#define DUP2_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x30028
+#define DUP3_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x30029
+#define DUP4_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x3002a
+#define DUP5_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x3002b
+#define DUP6_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x3002c
+#define DUP7_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x3002d
+#define DUP8_CHARVESTERAO_CHECKFILEEXTENSIONANDHARVESTL 0x3002e
+#define CHARVESTERAO_HARVESTINGCOMPLETED 0x3002f
+#define DUP2_CHARVESTERAO_HARVESTINGCOMPLETED 0x30030
+#define DUP3_CHARVESTERAO_HARVESTINGCOMPLETED 0x30031
+#define DUP4_CHARVESTERAO_HARVESTINGCOMPLETED 0x30032
+#define DUP5_CHARVESTERAO_HARVESTINGCOMPLETED 0x30033
+#define DUP6_CHARVESTERAO_HARVESTINGCOMPLETED 0x30034
+#define DUP7_CHARVESTERAO_HARVESTINGCOMPLETED 0x30035
+#define DUP8_CHARVESTERAO_HARVESTINGCOMPLETED 0x30036
+#define DUP9_CHARVESTERAO_HARVESTINGCOMPLETED 0x30037
+#define DUP1_CHARVESTERAO_HARVESTINGCOMPLETED 0x30038
+#define DUP10_CHARVESTERAO_HARVESTINGCOMPLETED 0x30039
+#define DUP11_CHARVESTERAO_HARVESTINGCOMPLETED 0x3003a
+#define DUP12_CHARVESTERAO_HARVESTINGCOMPLETED 0x3003b
+#define CHARVESTERAO_HANDLESESSIONOPENED 0x3003c
+#define DUP1_CHARVESTERAO_HANDLESESSIONOPENED 0x3003d
+#define DUP2_CHARVESTERAO_HANDLESESSIONOPENED 0x3003e
+#define DUP3_CHARVESTERAO_HANDLESESSIONOPENED 0x3003f
+#define DUP4_CHARVESTERAO_HANDLESESSIONOPENED 0x30040
+#define DUP5_CHARVESTERAO_HANDLESESSIONOPENED 0x30041
+#define DUP6_CHARVESTERAO_HANDLESESSIONOPENED 0x30042
+#define DUP7_CHARVESTERAO_HANDLESESSIONOPENED 0x30043
+#define DUP8_CHARVESTERAO_HANDLESESSIONOPENED 0x30044
+#define DUP9_CHARVESTERAO_HANDLESESSIONOPENED 0x30045
+#define DUP10_CHARVESTERAO_HANDLESESSIONOPENED 0x30046
+#define DUP11_CHARVESTERAO_HANDLESESSIONOPENED 0x30047
+#define DUP12_CHARVESTERAO_HANDLESESSIONOPENED 0x30048
+#define DUP13_CHARVESTERAO_HANDLESESSIONOPENED 0x30049
+#define CHARVESTERAO_HANDLESESSIONERROR 0x3004a
+#define CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x3004b
+#define DUP1_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x3004c
+#define DUP2_CHARVESTERAO_CONTEXTINITIALIZATIONSTATUS 0x3004d
+#define CHARVESTERAO_PAUSEHARVESTER 0x3004e
+#define DUP1_CHARVESTERAO_PAUSEHARVESTER 0x3004f
+#define CHARVESTERAO_RESUMEHARVESTERL 0x30050
+#define CHARVESTERAO_RUNL 0x30051
+#define DUP1_CHARVESTERAO_RUNL 0x30052
+#define DUP2_CHARVESTERAO_RUNL 0x30053
+#define DUP3_CHARVESTERAO_RUNL 0x30054
+#define DUP4_CHARVESTERAO_RUNL 0x30055
+#define DUP5_CHARVESTERAO_RUNL 0x30056
+#define DUP6_CHARVESTERAO_RUNL 0x30057
+#define DUP7_CHARVESTERAO_RUNL 0x30058
+#define DUP8_CHARVESTERAO_RUNL 0x30059
+#define CHARVESTERAO_DOCANCEL 0x3005a
+#define CHARVESTERAO_RUNERROR 0x3005b
+#define DUP1_CHARVESTERAO_RUNERROR 0x3005c
+#define DUP2_CHARVESTERAO_RUNERROR 0x3005d
+#define DUP3_CHARVESTERAO_RUNERROR 0x3005e
+#define DUP4_CHARVESTERAO_RUNERROR 0x3005f
+#define CHARVESTERAO_SETNEXTREQUEST 0x30060
+#define CHARVESTERAO_ISSERVERPAUSED 0x30061
+#define CHARVESTERAO_BACKUPRESTORESTART 0x30062
+#define CHARVESTERAO_BACKUPRESTOREREADY 0x30063
+#define CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x30064
+#define DUP1_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x30065
+#define DUP2_CHARVESTERAO_HANDLEDISKSPACENOTIFICATIONL 0x30066
+#define CHARVESTERAO_HARVESTFILE 0x30067
+#define DUP1_CHARVESTERAO_HARVESTFILE 0x30068
+#define DUP2_CHARVESTERAO_HARVESTFILE 0x30069
+#define DUP3_CHARVESTERAO_HARVESTFILE 0x3006a
+#define DUP4_CHARVESTERAO_HARVESTFILE 0x3006b
+#define DUP5_CHARVESTERAO_HARVESTFILE 0x3006c
+#define DUP6_CHARVESTERAO_HARVESTFILE 0x3006d
+#define DUP7_CHARVESTERAO_HARVESTFILE 0x3006e
+#define DUP8_CHARVESTERAO_HARVESTFILE 0x3006f
+#define DUP9_CHARVESTERAO_HARVESTFILE 0x30070
+#define DUP10_CHARVESTERAO_HARVESTFILE 0x30071
+#define CHARVESTERAO_HARVESTFILEWITHUID 0x30072
+#define DUP1_CHARVESTERAO_HARVESTFILEWITHUID 0x30073
+#define DUP2_CHARVESTERAO_HARVESTFILEWITHUID 0x30074
+#define DUP3_CHARVESTERAO_HARVESTFILEWITHUID 0x30075
+#define DUP4_CHARVESTERAO_HARVESTFILEWITHUID 0x30076
+#define DUP5_CHARVESTERAO_HARVESTFILEWITHUID 0x30077
+#define DUP6_CHARVESTERAO_HARVESTFILEWITHUID 0x30078
+#define DUP7_CHARVESTERAO_HARVESTFILEWITHUID 0x30079
+#define DUP8_CHARVESTERAO_HARVESTFILEWITHUID 0x3007a
+#define DUP9_CHARVESTERAO_HARVESTFILEWITHUID 0x3007b
+#define DUP10_CHARVESTERAO_HARVESTFILEWITHUID 0x3007c
+#define CHARVESTERAO_REGISTERPROCESSORIGIN 0x3007d
+#define DUP1_CHARVESTERAO_REGISTERPROCESSORIGIN 0x3007e
+#define DUP2_CHARVESTERAO_REGISTERPROCESSORIGIN 0x3007f
+#define DUP3_CHARVESTERAO_REGISTERPROCESSORIGIN 0x30080
+#define DUP4_CHARVESTERAO_REGISTERPROCESSORIGIN 0x30081
+#define DUP5_CHARVESTERAO_REGISTERPROCESSORIGIN 0x30082
+#define CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x30083
+#define DUP1_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x30084
+#define DUP2_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x30085
+#define DUP3_CHARVESTERAO_UNREGISTERPROCESSORIGIN 0x30086
+#define CHARVESTERAO_REGISTERHARVESTCOMPLETE 0x30087
+#define CHARVESTERAO_UNREGISTERHARVESTCOMPLETE 0x30088
+#define CHARVESTERAO_REGISTERHARVESTEREVENT 0x30089
+#define CHARVESTERAO_UNREGISTERHARVESTEREVENT 0x3008a
+#define CHARVESTERAO_GETLASTOBSERVERID 0x3008b
+#define CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x3008c
+#define DUP1_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x3008d
+#define DUP2_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x3008e
+#define DUP3_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x3008f
+#define DUP4_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x30090
+#define DUP5_CHARVESTERAO_CONTEXTSNAPSHOTSTATUS 0x30091
+#define CHARVESTERAO_HARVESTCOMPLETED 0x30092
+#define DUP1_CHARVESTERAO_HARVESTCOMPLETED 0x30093
+#define CHARVESTERAO_BOOTROMSCANL 0x30094
+#define CHARVESTERAO_BOOTPARTIALRESTORESCANL 0x30095
+#define DUP1_CHARVESTERAO_BOOTPARTIALRESTORESCANL 0x30096
+#define CHARVESTERAO_BOOTSCANL 0x30097
+#define DUP1_CHARVESTERAO_BOOTSCANL 0x30098
+#define DUP2_CHARVESTERAO_BOOTSCANL 0x30099
+#define DUP3_CHARVESTERAO_BOOTSCANL 0x3009a
+#define DUP4_CHARVESTERAO_BOOTSCANL 0x3009b
+#define DUP5_CHARVESTERAO_BOOTSCANL 0x3009c
+#define CHARVESTERAO_MEMORYLOW 0x3009d
+#define CHARVESTERAO_MEMORYGOOD 0x3009e
 
 
 #endif
--- a/harvester/server/traces/harvesterserverTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/traces/harvesterserverTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTERSERVERTRACES_H__
@@ -6,36 +6,36 @@
 
 #define KOstTraceComponentID 0x200009f5
 
-#define CHARVESTERSERVER_CONSTRUCTL 0x86009f
-#define DUP1_CHARVESTERSERVER_CONSTRUCTL 0x8600a0
-#define CHARVESTERSERVER_PAUSE 0x8600a1
-#define CHARVESTERSERVER_RESUME 0x8600a2
-#define DUP1_CHARVESTERSERVER_PAUSE 0x8600a3
-#define DUP1_CHARVESTERSERVER_RESUME 0x8600a4
-#define CHARVESTERSERVER_PAUSEREADY 0x8600a5
-#define CHARVESTERSERVER_RESUMEREADY 0x8600a6
-#define CHARVESTERSERVER_SHUTDOWNNOTIFICATION 0x8600a7
-#define CHARVESTERSERVER_RESTARTNOTIFICATION 0x8600a8
-#define CHARVESTERSERVER_HARVESTFILE 0x8600a9
-#define CHARVESTERSERVER_HARVESTFILEWITHUID 0x8600aa
-#define CHARVESTERSERVER_REGISTERPROCESSORIGIN 0x8600ab
-#define CHARVESTERSERVER_UNREGISTERPROCESSORIGIN 0x8600ac
-#define CHARVESTERSERVER_REGISTERHARVESTCOMPLETE 0x8600ad
-#define CHARVESTERSERVER_UNREGISTERHARVESTCOMPLETE 0x8600ae
-#define CHARVESTERSERVER_REGISTERHARVESTEREVENT 0x8600af
-#define CHARVESTERSERVER_UNREGISTERHARVESTEREVENT 0x8600b0
-#define CHARVESTERSERVER_CHARVESTERSERVER 0x8600b1
-#define DUP1_CHARVESTERSERVER_CHARVESTERSERVER 0x8600b2
-#define CHARVESTERSERVER_PANICCLIENT 0x8600b3
-#define CHARVESTERSERVER_PANICSERVER 0x8600b4
-#define CHARVESTERSERVER_NEWSESSIONL 0x8600b5
-#define DUP1_CHARVESTERSERVER_NEWSESSIONL 0x8600b6
-#define CHARVESTERSERVER_RUNERROR 0x8600b7
-#define CHARVESTERSERVER_THREADFUNCTIONL 0x8600b8
-#define DUP1_CHARVESTERSERVER_THREADFUNCTIONL 0x8600b9
-#define CHARVESTERSERVER_THREADFUNCTION 0x8600ba
-#define DUP1_CHARVESTERSERVER_THREADFUNCTION 0x8600bb
-#define _E32MAIN 0x8600bc
+#define CHARVESTERSERVER_CONSTRUCTL 0x3009f
+#define DUP1_CHARVESTERSERVER_CONSTRUCTL 0x300a0
+#define CHARVESTERSERVER_PAUSE 0x300a1
+#define CHARVESTERSERVER_RESUME 0x300a2
+#define DUP1_CHARVESTERSERVER_PAUSE 0x300a3
+#define DUP1_CHARVESTERSERVER_RESUME 0x300a4
+#define CHARVESTERSERVER_PAUSEREADY 0x300a5
+#define CHARVESTERSERVER_RESUMEREADY 0x300a6
+#define CHARVESTERSERVER_SHUTDOWNNOTIFICATION 0x300a7
+#define CHARVESTERSERVER_RESTARTNOTIFICATION 0x300a8
+#define CHARVESTERSERVER_HARVESTFILE 0x300a9
+#define CHARVESTERSERVER_HARVESTFILEWITHUID 0x300aa
+#define CHARVESTERSERVER_REGISTERPROCESSORIGIN 0x300ab
+#define CHARVESTERSERVER_UNREGISTERPROCESSORIGIN 0x300ac
+#define CHARVESTERSERVER_REGISTERHARVESTCOMPLETE 0x300ad
+#define CHARVESTERSERVER_UNREGISTERHARVESTCOMPLETE 0x300ae
+#define CHARVESTERSERVER_REGISTERHARVESTEREVENT 0x300af
+#define CHARVESTERSERVER_UNREGISTERHARVESTEREVENT 0x300b0
+#define CHARVESTERSERVER_CHARVESTERSERVER 0x300b1
+#define DUP1_CHARVESTERSERVER_CHARVESTERSERVER 0x300b2
+#define CHARVESTERSERVER_PANICCLIENT 0x300b3
+#define CHARVESTERSERVER_PANICSERVER 0x300b4
+#define CHARVESTERSERVER_NEWSESSIONL 0x300b5
+#define DUP1_CHARVESTERSERVER_NEWSESSIONL 0x300b6
+#define CHARVESTERSERVER_RUNERROR 0x300b7
+#define CHARVESTERSERVER_THREADFUNCTIONL 0x300b8
+#define DUP1_CHARVESTERSERVER_THREADFUNCTIONL 0x300b9
+#define CHARVESTERSERVER_THREADFUNCTION 0x300ba
+#define DUP1_CHARVESTERSERVER_THREADFUNCTION 0x300bb
+#define _E32MAIN 0x300bc
 
 
 #endif
--- a/harvester/server/traces/harvesterserversessionTraces.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/harvester/server/traces/harvesterserversessionTraces.h	Fri Jul 23 10:03:59 2010 +0300
@@ -1,4 +1,4 @@
-// Created by TraceCompiler 2.2.3
+// Created by TraceCompiler 1.3.1
 // DO NOT EDIT, CHANGES WILL BE LOST
 
 #ifndef __HARVESTERSERVERSESSIONTRACES_H__
@@ -6,13 +6,13 @@
 
 #define KOstTraceComponentID 0x200009f5
 
-#define CHARVESTERSERVERSESSION_NEWL 0x8600bd
-#define CHARVESTERSERVERSESSION_NEWLC 0x8600be
-#define CHARVESTERSERVERSESSION_CONSTRUCTL 0x8600bf
-#define CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION 0x8600c0
-#define DUP1_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION 0x8600c1
-#define CHARVESTERSERVERSESSION_SERVICEL 0x8600c2
-#define CHARVESTERSERVERSESSION_DISCONNECT 0x8600c3
+#define CHARVESTERSERVERSESSION_NEWL 0x300bd
+#define CHARVESTERSERVERSESSION_NEWLC 0x300be
+#define CHARVESTERSERVERSESSION_CONSTRUCTL 0x300bf
+#define CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION 0x300c0
+#define DUP1_CHARVESTERSERVERSESSION_CHARVESTERSERVERSESSION 0x300c1
+#define CHARVESTERSERVERSESSION_SERVICEL 0x300c2
+#define CHARVESTERSERVERSESSION_DISCONNECT 0x300c3
 
 
 #endif
--- a/iadstoprestart/src/iadrestart.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/iadstoprestart/src/iadrestart.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -55,6 +55,7 @@
     TRAP(err, MainL());
 
     delete cleanup;
+    cleanup = NULL;
     __UHEAP_MARKEND;
     return err;
     }
--- a/iadstoprestart/src/iadstop.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/iadstoprestart/src/iadstop.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -158,6 +158,7 @@
     TRAP(err, MainL());
 
     delete cleanup;
+    cleanup = NULL;
     __UHEAP_MARKEND;
     return err;
     }
--- a/locationmanager/ReverseGeocode/group/reversegeocode.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/ReverseGeocode/group/reversegeocode.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -20,7 +20,7 @@
 
 #if defined(WINSCW)
 deffile ../bwincw/reversegeocodewinscw.def
-#elif defined(ARMCC)
+#elif defined(EABI)
 deffile ../eabi/reversegeocodearm.def
 #endif
 nostrictdef
--- a/locationmanager/ReverseGeocode/src/internalreversegeocode.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/ReverseGeocode/src/internalreversegeocode.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -281,8 +281,8 @@
 // ---------------------------------------------------------------------------- 
 void CInternalReverseGeocode::ClientEvent( const THttpStatus& aEvent )
     {
-    LOG( "CInternalReverseGeocode::ClientEvent,begin" );
-    TInt err;
+    LOG1( "CInternalReverseGeocode::ClientEvent,begin. Err - %d", aEvent);
+    TInt err = KErrNone;
     //Have a Switch here
     switch( aEvent )
         {
@@ -319,6 +319,11 @@
             iObserver.ReverseGeocodeComplete( err , *iAddressInfo );
             break;
         }
+    if(err != KErrNone)
+        {
+        LOG("Error occur while getting data.");
+        StartTimer();
+        }
 	LOG( "CInternalReverseGeocode::ClientEvent,end" );
     }
 
--- a/locationmanager/client/src/rlocationobjectmanipulator.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/client/src/rlocationobjectmanipulator.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -114,6 +114,7 @@
         }
     
     delete paramBuf;
+    paramBuf = NULL;
 	LOG( "RLocationObject::CopyLocationData end" );
 	}
 // --------------------------------------------------------------------------
@@ -146,6 +147,7 @@
         {
         LOG( "RLocationObject::CopyLocationData CMdCSerializationBuffer creation failed" );
         delete uriBuffer;
+        uriBuffer = NULL;
         CompleteRequest( aStatus, error );
         return;
         }
@@ -177,6 +179,7 @@
         }
     
     delete uriBuffer;
+    uriBuffer = NULL;
     LOG( "RLocationObject::CopyLocationData end" );
 	}
 
--- a/locationmanager/client/src/rlocationtrail.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/client/src/rlocationtrail.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -31,6 +31,7 @@
 EXPORT_C RLocationTrail::~RLocationTrail()
 	{
 	delete iCurrentLocData;
+	iCurrentLocData = NULL;
 	}
 
 // --------------------------------------------------------------------------
@@ -148,6 +149,7 @@
     LOG( "RLocationTrail::CurrentLocation(), begin" );
     
     delete iCurrentLocData;
+    iCurrentLocData = NULL;
     iCurrentLocData = new TPckg<TLocationData>( aLocationData );
     
     if ( iHandle && iCurrentLocData )
--- a/locationmanager/geoconverter/group/geoconverter.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/geoconverter/group/geoconverter.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -30,7 +30,7 @@
 
 #if defined(WINSCW)
 deffile ../bwincw/geoconverterwinscw.def
-#elif defined(ARMCC)
+#elif defined(EABI)
 deffile ../eabi/geoconverterarm.def
 #endif
 nostrictdef
--- a/locationmanager/geoconverter/src/cgeoconverter.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/geoconverter/src/cgeoconverter.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -135,12 +135,12 @@
     
     //Set mobile country code
     TLex lexer( aNetworkInfo.iCountryCode );
-    TUint countryCode;
+    TUint countryCode = 0;
     
     User::LeaveIfError( lexer.Val( countryCode, EDecimal) );
     //Set mobile network code
     lexer = aNetworkInfo.iNetworkId;
-    TUint networkCode;
+    TUint networkCode = 0;
     User::LeaveIfError( lexer.Val( networkCode, EDecimal) );
     LOG1("Network mode - %d", aNetworkInfo.iMode);
     CLbsAreaInfoBase* areaInfoBase = NULL;
@@ -192,7 +192,12 @@
     //requested conversion and update the position estimate
     if(areaInfoBase != NULL) // self check
         {
+        // reset previous one.. to clear the local info.
+        iLocInfo->ResetAreaInfo(CLbsLocationInfo::ELbsAreaInfoAll);
         iLocInfo->AddAreaInfoL( areaInfoBase ); 
+        //ownership is transferred.
+        iWcdmaCellInfo = NULL;
+        iGsmCellInfo = NULL;
         //Request conversion of GSM cell information to corresponding coordinate information
         iLocConverter->ConvertLocationInfoL( *iLocInfo, ELbsConversionSilent, 
                                                 ELbsConversionOutputPosition  );
--- a/locationmanager/geotagger/group/geotagger.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/geotagger/group/geotagger.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -28,7 +28,7 @@
 CAPABILITY 	    CAP_GENERAL_DLL
 
 #if defined(WINSCW)
-#elif defined(ARMCC)
+#elif defined(EABI)
 deffile ../eabi/geotaggerarm.def
 #endif
 nostrictdef
@@ -38,15 +38,17 @@
 USERINCLUDE     ../../../inc
 
 
-USERINCLUDE     ../../tagcreator/inc
-
 #ifdef     _LOC_GEOTAGGING_CELLID
 MACRO LOC_GEOTAGGING_CELLID
 USERINCLUDE     ../../geoconverter/inc
 #endif
 
+#ifdef _LOC_REVERSEGEOCODE
+MACRO LOC_REVERSEGEOCODE
+USERINCLUDE     ../../tagcreator/inc
 USERINCLUDE     ../../ReverseGeocode/inc
 USERINCLUDE	../../ReverseGeoCoderPlugin/inc
+#endif
 
 
 SOURCEPATH      ../src
@@ -67,17 +69,17 @@
 LIBRARY	        platformenv.lib
 
 DEBUGLIBRARY    flogger.lib
-LIBRARY         tagcreator.lib 
 LIBRARY         ecom.lib 
 LIBRARY	        libc.lib
 
-LIBRARY         reversegeocode.lib
-
-
 #ifdef     _LOC_GEOTAGGING_CELLID
 LIBRARY         geoconverter.lib
 #endif
 
+#ifdef _LOC_REVERSEGEOCODE
+LIBRARY        reversegeocode.lib 
+LIBRARY        tagcreator.lib 
+#endif
 
 PAGED
 BYTEPAIRCOMPRESSTARGET
--- a/locationmanager/geotagger/inc/cinternalgeotagger.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/geotagger/inc/cinternalgeotagger.h	Fri Jul 23 10:03:59 2010 +0300
@@ -24,7 +24,6 @@
 #include <locationdatatype.h>
 #include <geotagger.h>
 
-#include "reversegeocode.h"
 #include "mdccommon.h"
 #include "mdesession.h"
 #include "mdenamespacedef.h"
@@ -32,13 +31,17 @@
 #include "mdepropertydef.h"
 #include "mderelation.h"
 #include "mdequery.h"
-#include "ctagcreator.h"
 
 #ifdef LOC_GEOTAGGING_CELLID
 #include "cgeoconverter.h"
 #endif
 
+#ifdef LOC_REVERSEGEOCODE
+#include "ctagcreator.h"
+#include "reversegeocode.h"
 class CReverseGeoCoderPlugin;
+#endif
+
 
 /**
  *  GeoTagger converts a given cell ID(CGI Info) to geo-coordinates.
@@ -49,11 +52,13 @@
  
 class CInternalGeoTagger : public CGeoTagger,
                    public MMdESessionObserver,
-                   public MMdEQueryObserver,
-                   public MReverseGeocodeObserver
+                   public MMdEQueryObserver
 #ifdef LOC_GEOTAGGING_CELLID	
                    ,public MGeoConverterObserver
 #endif				   
+#ifdef LOC_REVERSEGEOCODE
+                   ,public MReverseGeocodeObserver
+#endif
     {
 public:  
     
@@ -106,8 +111,22 @@
       */    
       void HandleQueryCompleted(CMdEQuery& aQuery, TInt aError);
     
+
+#ifdef LOC_REVERSEGEOCODE
+    /**
+       * Get location objects, where lat, long not populated.
+      * @param  aCountryTagId The country tagId
+      * @param aCityTagId  The city tagId
+      */        
+    void AddressInfoL( const TItemId aCountryTagId, const TItemId aCityTagId );
+
+    /**
+       * Remove location info incase reverse geo code fails.
+      * @param aLocationId location id
+      */        
+    void RemoveLocationInfoOnFailureL(const TItemId aLocationId);
+    
     //MReverseGeocodeObserver
-
     /**
       * This method is called when reverse geocoding is completed
       *@param  aErrorcode  Error if any
@@ -138,6 +157,7 @@
     const RMobilePhone::TMobilePhoneNetworkInfoV1& 
         GetHomeNetworkInfo(TBool& aHomeNwInfoAvailableFlag);
     
+#endif //LOC_REVERSEGEOCODE
     
     // From MMdESessionObserver
 
@@ -155,7 +175,7 @@
       */    
     void HandleSessionError(CMdESession& aSession, TInt aError);
 
-#ifdef LOC_GEOTAGGING_CELLID	
+#ifdef LOC_GEOTAGGING_CELLID
 public:     // MGeoConverterObserver
         /**
          * This method is used for notifying completion of geotagging
@@ -170,8 +190,15 @@
 		* @param aError the error code
 		*/
 	 void HandleConversionError(TInt aError);
+        
+private:
+       /**
+       * Update media object with GPS info.
+       */
+    void UpdateGPSInfoL(const TLocality& aPosition);
+    
+#endif //LOC_GEOTAGGING_CELLID
 
-#endif    
 private:    
     
     /**
@@ -204,13 +231,6 @@
     void GetAllLocationsL( );
 
     /**
-       * Get location objects, where lat, long not populated.
-      * @param  aCountryTagId The country tagId
-      * @param aCityTagId  The city tagId
-      */        
-    void AddressInfoL( const TItemId aCountryTagId, const TItemId aCityTagId );
-
-    /**
        * checks if the session is ready
       * @return ETrue If the session is ready
       */        
@@ -267,7 +287,6 @@
     
     TConnectionOption iConnectionOption;
     
-    CTagCreator* iTagCreator;
     
     /**
      * An active scheduler wait loop for waiting a session to MdE to open.
@@ -275,14 +294,17 @@
     CActiveSchedulerWait* iASW;
     TBool iMdeSessionOwnFlag;
     TBool iTagPendingHandlerFlag;
-    CReverseGeoCoderPlugin* iRevGeocoderPlugin;
-    TUid iDtorKey;
 #ifdef LOC_GEOTAGGING_CELLID	
     /*
        * Geo converter
        */
 	CGeoConverter* iGeoConverter;
 #endif
+#ifdef LOC_REVERSEGEOCODE
+        CTagCreator* iTagCreator;
+        CReverseGeoCoderPlugin* iRevGeocoderPlugin;
+        TUid iDtorKey;
+#endif //LOC_REVERSEGEOCODE
     };
 
 #endif // C_CGEOTAGGER_H 
--- a/locationmanager/geotagger/src/cinternalgeotagger.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/geotagger/src/cinternalgeotagger.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -24,12 +24,16 @@
 #include "mdeconstants.h"
 #include "mdesession.h"
 #include "cinternalgeotagger.h"
+#ifdef LOC_REVERSEGEOCODE
 #include "reversegeocoderplugin.h"
+const TUid KReverseGeoCodeUid = {0x2002DD12};
+#endif
 
 using namespace MdeConstants;
 
 _LIT ( KCountry, "country:");   // country:india 
-const TUid KReverseGeoCodeUid = {0x2002DD12};
+
+const TReal64 KZeroLatLon (0.000000 );
 
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::NewL
@@ -59,13 +63,15 @@
                         iIndex(0),
                         iSessionReady( EFalse ),
                         iObserver( aObserver ),
-                        iTagCreator(NULL),
                         iASW(NULL),
-                        iTagPendingHandlerFlag(EFalse),
-                        iRevGeocoderPlugin(NULL)
-#ifdef LOC_GEOTAGGING_CELLID	
+                        iTagPendingHandlerFlag(EFalse)
+#ifdef LOC_GEOTAGGING_CELLID
 						,iGeoConverter(NULL)
 #endif						
+#ifdef LOC_REVERSEGEOCODE
+                        ,iTagCreator(NULL)
+                        ,iRevGeocoderPlugin(NULL)
+#endif						
     {
     iMdeSessionOwnFlag = (iMdeSession == NULL);
     }
@@ -82,10 +88,12 @@
 		LOG("Not owning mds session");
         iMdeSessionOwnFlag = EFalse;
         //object is not owning iMdeSession
+        iSessionReady = ETrue;
+#ifdef LOC_REVERSEGEOCODE
         iTagCreator = CTagCreator::NewL();
-        iSessionReady = ETrue;
         
         iTagCreator->SetSession( iMdeSession );
+#endif //LOC_REVERSEGEOCODE
         }
     else
         {
@@ -93,7 +101,9 @@
         iASW = new (ELeave) CActiveSchedulerWait();
         iMdeSession = CMdESession::NewL( *this );
         //for creating tags
+#ifdef LOC_REVERSEGEOCODE
         iTagCreator = CTagCreator::NewL();
+#endif
         
         iASW->Start();
         delete iASW;
@@ -102,20 +112,21 @@
     
     //for reverse geocoding (geo-tagging)
     
+#ifdef LOC_REVERSEGEOCODE
     if (!iRevGeocoderPlugin)
-            {
-           
-		   TRAP_IGNORE(
-            iRevGeocoderPlugin = reinterpret_cast<CReverseGeoCoderPlugin*>(
-               REComSession::CreateImplementationL(KReverseGeoCodeUid, iDtorKey));)
- 
-            if(iRevGeocoderPlugin)
-            	{
-               	iRevGeocoderPlugin->AddObserverL(*this); 
- 
-              }
- 
-            }
+        {
+       
+	   TRAP_IGNORE(
+        iRevGeocoderPlugin = reinterpret_cast<CReverseGeoCoderPlugin*>(
+           REComSession::CreateImplementationL(KReverseGeoCodeUid, iDtorKey));)
+
+        if(iRevGeocoderPlugin)
+        	{
+           	iRevGeocoderPlugin->AddObserverL(*this); 
+
+          }
+        }
+#endif //LOC_REVERSEGEOCODE
 
     LOG("CInternalGeoTagger::ConstructL ,end");
     }
@@ -152,9 +163,13 @@
 		iTagQuery->Cancel();
 		delete iTagQuery;
 		}	
+#ifdef LOC_REVERSEGEOCODE
+    delete iTagCreator;
+    iTagCreator = NULL;
     delete iRevGeocoderPlugin;
     iRevGeocoderPlugin = NULL;
     REComSession::DestroyedImplementation(iDtorKey);	
+#endif //LOC_REVERSEGEOCODE
     if(iMdeSessionOwnFlag)
         {
     	delete iMdeSession;
@@ -198,7 +213,9 @@
         {
         iSessionReady = ETrue;
         
+#ifdef LOC_REVERSEGEOCODE
         iTagCreator->SetSession( iMdeSession );
+#endif
         }
     else if(iMdeSessionOwnFlag)
         {
@@ -355,6 +372,7 @@
             if(GPSInfoExists())
                 {
                 // GPS info exist go for reverse geo coding.
+#ifdef LOC_REVERSEGEOCODE
                 if(iRevGeocoderPlugin)
     			    {
                     TRAP_IGNORE( 
@@ -362,6 +380,7 @@
     				   ( iLocationData.iPosition, iConnectionOption ) );
     				}
     			else
+#endif //LOC_REVERSEGEOCODE
     			    {
                     IterateNextLocation();  //Go through next location
     			    }
@@ -369,7 +388,6 @@
     		else
     		    {
         		if ( iLocationData.iNetworkInfo.iCellId > 0 && 
-        				iLocationData.iNetworkInfo.iLocationAreaCode > 0 &&
         				iLocationData.iNetworkInfo.iCountryCode.Length() > 0 &&
         				iLocationData.iNetworkInfo.iNetworkId.Length() > 0 )
         			{
@@ -383,8 +401,21 @@
                    
                     if(err == KErrNone && iGeoConverter != NULL)
                        {
+                       // there is no field to store type of network. 
+                       // but it's safe to take decission based on area code.
+                       if(iLocationData.iNetworkInfo.iLocationAreaCode > 0)
+                           {
+                           LOG("Valid areacode. Treat as GSM n/w");
+                           iLocationData.iNetworkInfo.iAccess = CTelephony::ENetworkAccessGsm;
+                           }
+                       else
+                           {
+                           LOG("Areacode is 0. Treat as 3G n/w");
+                           iLocationData.iNetworkInfo.iAccess = CTelephony::ENetworkAccessUtran;
+                           }
                        TRAP(err, iGeoConverter->ConvertL(iLocationData.iNetworkInfo);)
                        }
+                    LOG1("Error - %d", err);
                    if(err != KErrNone)
                        {
                        HandleConversionError(err);	
@@ -415,7 +446,9 @@
     LOG("CInternalGeoTagger::GPSInfoExists");
     TBool gpsInfoExists = EFalse;
     if ( !Math::IsNaN( iLocationData.iPosition.Latitude() ) && 
-                !Math::IsNaN( iLocationData.iPosition.Longitude() ))  //lat, long is there
+                !Math::IsNaN( iLocationData.iPosition.Longitude() ) &&
+                KZeroLatLon != iLocationData.iPosition.Latitude() && 
+                KZeroLatLon != iLocationData.iPosition.Longitude() )  //lat, long is there
         {
         
 		LOG("Valid lat/lon\n");
@@ -424,6 +457,7 @@
     return gpsInfoExists;
     }
 
+
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::StartGeoTagging()
 // --------------------------------------------------------------------------
@@ -481,20 +515,43 @@
         iLocationData.iPosition.SetCoordinate( latProp->Real64ValueL(), 
                                                lonProp->Real64ValueL() );
         }
+    else
+        {
+        iLocationData.iPosition.SetCoordinate( KZeroLatLon, 
+                                               KZeroLatLon );
+        }
     
     locationObject->Property( cellIdDef, cellProp, 0 );
     locationObject->Property( lacCodeDef, lacProp, 0 );
     locationObject->Property( countryCodeDef, countryProp, 0 );
     locationObject->Property( networkCodeDef, networkProp, 0 );
-    if ( cellProp && lacProp && countryProp && networkProp)
+    if ( cellProp && countryProp && networkProp)
         {
         iLocationData.iNetworkInfo.iCellId = cellProp->Uint32ValueL();
-        iLocationData.iNetworkInfo.iLocationAreaCode = lacProp->Uint32ValueL();
         iLocationData.iNetworkInfo.iCountryCode = countryProp->TextValueL();
         iLocationData.iNetworkInfo.iNetworkId = networkProp->TextValueL();
-        
+        }
+    else
+        {
+        // set to invalid values.
+        iLocationData.iNetworkInfo.iCellId = 0;
+        iLocationData.iNetworkInfo.iAccess = CTelephony::ENetworkAccessUnknown;
+        iLocationData.iNetworkInfo.iLocationAreaCode = 0;
+        iLocationData.iNetworkInfo.iAreaKnown = EFalse;
+        iLocationData.iNetworkInfo.iCountryCode.Zero();
+        iLocationData.iNetworkInfo.iNetworkId.Zero();
         }
 
+    iLocationData.iNetworkInfo.iAreaKnown = EFalse;
+    if(lacProp)
+        {
+        iLocationData.iNetworkInfo.iLocationAreaCode = lacProp->Uint32ValueL();
+        if(iLocationData.iNetworkInfo.iLocationAreaCode > 0)
+            {
+            iLocationData.iNetworkInfo.iAreaKnown = ETrue;
+            }
+        }
+    delete locationObject;
 	LOG("CInternalGeoTagger::GetLocationInfoL ,end");
     }
 
@@ -517,12 +574,16 @@
         TItemId tagId = relation.RightObjectId(); 
         CMdEObject* object = NULL;
         TRAP_IGNORE( object = iMdeSession->GetObjectL( tagId ) );
-        
-        error = object->Uri().Find( KCountry );
-        if ( error == KErrNone )
+        if(object)
             {
-            i = count;
-            tagFound = ETrue;
+            error = object->Uri().Find( KCountry );
+            delete object;
+            if ( error == KErrNone )
+                {
+                i = count;
+                tagFound = ETrue;
+                break;
+                }
             }
         }
                 
@@ -532,36 +593,6 @@
 
     }
 
-// --------------------------------------------------------------------------
-// CInternalGeoTagger::AddressInfo()
-// --------------------------------------------------------------------------
-//
-void CInternalGeoTagger::AddressInfoL( const TItemId aCountryTagId, const TItemId aCityTagId )
-    {
-    LOG("CInternalGeoTagger::AddressInfoL ,begin");
-                               
-    const TInt count = iRelationQuery->Count();
-    
-    for ( TInt i = 0; i < count; i++ )
-        {
-        CMdERelation& relation = iRelationQuery->Result( i );
-        TItemId imageId = relation.LeftObjectId(); 
-        
-        if ( !GPSInfoExists() )   //to update EXIF
-            {
-            // update relation timestamp, composer will then update exif data   
-            TTime timestamp( 0 );
-            timestamp.UniversalTime();
-            relation.SetLastModifiedDate( timestamp );     
-            iMdeSession->UpdateRelationL( relation );
-            }
-        
-        iTagCreator->AttachTagsL( imageId, aCountryTagId, aCityTagId  );
-        }
-
-   LOG("CInternalGeoTagger::AddressInfoL ,end");
-    }
-
 
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::IterateNextLocation()
@@ -626,42 +657,6 @@
   LOG("CInternalGeoTagger::GetAllLocationsL ,end");
     }
 
-// --------------------------------------------------------------------------
-// CInternalGeoTagger::ReverseGeocodeComplete()
-//  Get address details like street, city, state, etc.
-// --------------------------------------------------------------------------
-//
-void CInternalGeoTagger::ReverseGeocodeComplete( TInt& aErrorcode, MAddressInfo& aAddressInfo )
-    {
-    LOG("CInternalGeoTagger::ReverseGeocodeComplete ,begin");
-    TItemId countryTagId(0);
-    TItemId cityTagId(0);
-    
-    // create country and city tags
-    if( aErrorcode == KErrNone )
-        {
-        TPtrC countryPtr( aAddressInfo.GetCountryName() ); 
-        TPtrC cityPtr( aAddressInfo.GetCity() );
-        
-        TRAP_IGNORE( iTagCreator->CreateLocationTagsL( countryPtr, countryTagId, cityPtr, cityTagId ) );
-		
-        TRAP_IGNORE(AddressInfoL( countryTagId, cityTagId ));
-        
-        IterateNextLocation();
-        }
-    else
-        {
-        //handle error
-        if ( iObserver )
-            {
-            iIndex = 0;
-            iObserver->GeoTaggingCompleted( aErrorcode );
-            }
-        }
-   
-    
-    LOG("CInternalGeoTagger::ReverseGeocodeComplete ,end");
-    }
 
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::GetTagsL()
@@ -702,6 +697,82 @@
     }
 
 #ifdef LOC_GEOTAGGING_CELLID	
+
+// --------------------------------------------------------------------------
+// CInternalGeoTagger::UpdateGPSInfoL()
+// --------------------------------------------------------------------------
+//
+void CInternalGeoTagger::UpdateGPSInfoL(const TLocality& aPosition)
+	{
+	
+    LOG("CInternalGeoTagger::UpdateGPSInfoL ,start");
+    if(Math::IsNaN( aPosition.Latitude()) ||
+        Math::IsNaN( aPosition.Longitude()) )
+        {
+        LOG("Not a valid location info.");
+        LOG("CInternalGeoTagger::UpdateGPSInfoL ,end");
+        return;
+        }
+    
+	CMdENamespaceDef& namespaceDef = iMdeSession->GetDefaultNamespaceDefL();
+	CMdEObjectDef& locObjDef = namespaceDef.GetObjectDefL( Location::KLocationObject );
+	CMdEObject* location = iMdeSession->OpenObjectL(iLocationId, locObjDef);
+	CleanupStack::PushL( location );
+	
+	CMdEPropertyDef& propLatDef = locObjDef.GetPropertyDefL( Location::KLatitudeProperty );
+	CMdEPropertyDef& propLongDef = locObjDef.GetPropertyDefL( Location::KLongitudeProperty );
+	CMdEPropertyDef& propAltDef = locObjDef.GetPropertyDefL( Location::KAltitudeProperty );
+	CMdEPropertyDef& qualityDef = locObjDef.GetPropertyDefL( Location::KQualityProperty );
+
+	if (location->PropertyCount(propLatDef) == 0)
+		{
+		location->AddReal64PropertyL(propLatDef, aPosition.Latitude() ); //iLatitude
+		}
+	if (location->PropertyCount(propLongDef) == 0)
+		{
+		location->AddReal64PropertyL(propLongDef, aPosition.Longitude() ); //iLongitude
+		}
+	if (location->PropertyCount(propAltDef) == 0 &&
+        !Math::IsNaN( aPosition.Altitude()) )
+		{
+		location->AddReal64PropertyL(propAltDef, aPosition.Altitude());
+		}
+    LOG1( "Updating quality - %d", aPosition.HorizontalAccuracy());
+	if (location->PropertyCount(qualityDef) == 0 )
+		{
+		location->AddReal32PropertyL(qualityDef, aPosition.HorizontalAccuracy());
+		}
+	
+	CMdEProperty* modProp = NULL;
+	CMdEObjectDef& objImageDef = namespaceDef.GetObjectDefL( Image::KImageObject );
+	CMdEPropertyDef& propModifiedDef = objImageDef.GetPropertyDefL( Object::KLastModifiedDateProperty );
+	location->Property( propModifiedDef, modProp, 0 );
+	if ( modProp )
+		{
+		TTime timestamp( 0 );
+		timestamp.UniversalTime();
+		modProp->SetTimeValueL( timestamp );
+		}
+	// commit to DB
+	iMdeSession->CommitObjectL(*location);
+	CleanupStack::PopAndDestroy( location );
+
+    // update the relation
+    const TInt count = iRelationQuery->Count();
+    LOG1("Relation count - %d", count);
+    for ( TInt i = 0; i < count; i++ )
+        {
+        CMdERelation& relation = iRelationQuery->Result( i );
+        // update relation timestamp, composer will then update exif data   
+        
+        TTime timestamp( 0 );
+        timestamp.UniversalTime();
+        relation.SetLastModifiedDate( timestamp );     
+        iMdeSession->UpdateRelationL( relation );
+        }
+    LOG("CInternalGeoTagger::UpdateGPSInfoL ,end");
+	}
+
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::ConversionCompletedL()
 // --------------------------------------------------------------------------
@@ -714,13 +785,17 @@
     if(aError == KErrNone)
         {
         iLocationData.iPosition.SetCoordinate
-                ( aPosition.Latitude(), aPosition.Longitude());
+                ( aPosition.Latitude(), aPosition.Longitude(), aPosition.Altitude());
+        iLocationData.iQuality = aPosition.HorizontalAccuracy();
+        UpdateGPSInfoL(aPosition);
+#ifdef LOC_REVERSEGEOCODE
         if(iRevGeocoderPlugin)
 		    {
            	iRevGeocoderPlugin->GetAddressByCoordinateL
 			   ( iLocationData.iPosition, iConnectionOption ) ;
 			}
 		else
+#endif //LOC_REVERSEGEOCODE
 		    {
             IterateNextLocation();  //Go through next location
 		    }
@@ -745,7 +820,7 @@
     LOG("CInternalGeoTagger::HandleConversionError, end");
 	}
 
-#endif
+#endif //LOC_GEOTAGGING_CELLID
 
 // --------------------------------------------------------------------------
 // CInternalGeoTagger::PendingGeoTagsL()
@@ -764,7 +839,7 @@
         }
     else
         {
-        if(!iTagPendingHandlerFlag)
+        if(!iTagPendingHandlerFlag && iIndex <= 0)
             {
             LOG("Processing the request.\n");
             // tag pending request is not going on
@@ -781,6 +856,120 @@
     LOG("CInternalGeoTagger::PendingGeoTagsL ,end");
     }
 
+
+#ifdef LOC_REVERSEGEOCODE
+// --------------------------------------------------------------------------
+// CInternalGeoTagger::AddressInfo()
+// --------------------------------------------------------------------------
+//
+void CInternalGeoTagger::AddressInfoL( const TItemId aCountryTagId, const TItemId aCityTagId )
+    {
+    LOG("CInternalGeoTagger::AddressInfoL ,begin");
+                               
+    const TInt count = iRelationQuery->Count();
+    
+    for ( TInt i = 0; i < count; i++ )
+        {
+        CMdERelation& relation = iRelationQuery->Result( i );
+        TItemId imageId = relation.LeftObjectId(); 
+        
+        if ( !GPSInfoExists() )   //to update EXIF
+            {
+            // update relation timestamp, composer will then update exif data   
+            TTime timestamp( 0 );
+            timestamp.UniversalTime();
+            relation.SetLastModifiedDate( timestamp );     
+            iMdeSession->UpdateRelationL( relation );
+            }
+        
+        iTagCreator->AttachTagsL( imageId, aCountryTagId, aCityTagId  );
+        }
+
+   LOG("CInternalGeoTagger::AddressInfoL ,end");
+    }
+
+
+// --------------------------------------------------------------------------
+// CInternalGeoTagger::RemoveLocationInfoOnFailureL()
+// Remove the location info when reverse geo code fail so that retry can be ignore for the next iteration
+// --------------------------------------------------------------------------
+//
+void CInternalGeoTagger::RemoveLocationInfoOnFailureL(const TItemId aLocationId)
+	{
+	
+    LOG("CInternalGeoTagger::RemoveLocationInfoOnFailureL ,start");
+    
+	CMdENamespaceDef& namespaceDef = iMdeSession->GetDefaultNamespaceDefL();
+	CMdEObjectDef& locObjDef = namespaceDef.GetObjectDefL( Location::KLocationObject );
+	CMdEObject* location = iMdeSession->OpenObjectL(aLocationId, locObjDef);
+	CleanupStack::PushL( location );
+	
+	CMdEPropertyDef& propLatDef = locObjDef.GetPropertyDefL( Location::KLatitudeProperty );
+	CMdEPropertyDef& propLongDef = locObjDef.GetPropertyDefL( Location::KLongitudeProperty );
+
+	if (location->PropertyCount(propLatDef) == 0)
+		{
+		location->AddReal64PropertyL(propLatDef, KZeroLatLon ); //iLatitude
+		}
+	if (location->PropertyCount(propLongDef) == 0)
+		{
+		location->AddReal64PropertyL(propLongDef, KZeroLatLon ); //iLongitude
+		}
+	
+	CMdEProperty* modProp = NULL;
+	CMdEObjectDef& objImageDef = namespaceDef.GetObjectDefL( Image::KImageObject );
+	CMdEPropertyDef& propModifiedDef = objImageDef.GetPropertyDefL( Object::KLastModifiedDateProperty );
+	location->Property( propModifiedDef, modProp, 0 );
+	if ( modProp )
+		{
+		TTime timestamp( 0 );
+		timestamp.UniversalTime();
+		modProp->SetTimeValueL( timestamp );
+		}
+	// commit to DB
+	iMdeSession->CommitObjectL(*location);
+	CleanupStack::PopAndDestroy( location );
+
+    LOG("CInternalGeoTagger::RemoveLocationInfoOnFailureL ,end");
+	}
+
+// --------------------------------------------------------------------------
+// CInternalGeoTagger::ReverseGeocodeComplete()
+//  Get address details like street, city, state, etc.
+// --------------------------------------------------------------------------
+//
+void CInternalGeoTagger::ReverseGeocodeComplete( TInt& aErrorcode, MAddressInfo& aAddressInfo )
+    {
+    LOG("CInternalGeoTagger::ReverseGeocodeComplete ,begin");
+    TItemId countryTagId(0);
+    TItemId cityTagId(0);
+    
+    // create country and city tags
+    if( aErrorcode == KErrNone )
+        {
+        TPtrC countryPtr( aAddressInfo.GetCountryName() ); 
+        TPtrC cityPtr( aAddressInfo.GetCity() );
+        
+        TRAP_IGNORE( iTagCreator->CreateLocationTagsL( countryPtr, countryTagId, cityPtr, cityTagId ) );
+		
+        TRAP_IGNORE(AddressInfoL( countryTagId, cityTagId ));
+        
+        IterateNextLocation();
+        }
+    else
+        {
+        LOG1("Reverse geocode err - %d", aErrorcode);
+        // reverse geo code fails. may be because of lat/lon value (e.g. mid of ocean)
+        // based on error code, Remove lat/lon from location table so that it should n't try to for the next time. ??
+		// May not be a good idea to remove lan/lon because it may fails due to n/w.
+        //TRAP_IGNORE(RemoveLocationInfoOnFailureL(iLocationId));
+        IterateNextLocation();
+        }
+   
+    
+    LOG("CInternalGeoTagger::ReverseGeocodeComplete ,end");
+    }
+
 // ----------------------------------------------------------------------------
 // CInternalGeoTagger::GetCurrentRegisterNw()
 // ---------------------------------------------------------------------------- 
@@ -809,5 +998,7 @@
     return iObserver->GetHomeNetworkInfo(aHomeNwInfoAvailableFlag);
     }
 
+#endif //LOC_REVERSEGEOCODE
+
 // End of file
 
--- a/locationmanager/group/bld.inf	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/group/bld.inf	Fri Jul 23 10:03:59 2010 +0300
@@ -24,10 +24,9 @@
 #include "../tagcreator/group/bld.inf"
 #include "../ReverseGeocode/group/bld.inf"
 #include "../ReverseGeoCoderPlugin/group/bld.inf"
-#include "../geotagger/group/bld.inf"
 #endif
 
-
+#include "../geotagger/group/bld.inf"
 #include "../locationtrail/group/bld.inf"
 #include "../server/group/bld.inf"
 #include "../client/group/bld.inf"
--- a/locationmanager/locationtrail/group/locationtrail.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/group/locationtrail.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -77,13 +77,13 @@
 LIBRARY         ecom.lib
 LIBRARY         commsdat.lib
 
-
+LIBRARY        geotagger.lib
 DEBUGLIBRARY flogger.lib
 LIBRARY        libc.lib
+
 #ifdef _LOC_REVERSEGEOCODE
 LIBRARY        reversegeocode.lib 
 LIBRARY        tagcreator.lib 
-LIBRARY        geotagger.lib
 #endif
 
 #ifdef     _LOC_GEOTAGGING_CELLID
--- a/locationmanager/locationtrail/inc/clocationrecord.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/inc/clocationrecord.h	Fri Jul 23 10:03:59 2010 +0300
@@ -743,6 +743,11 @@
      */
    	CTagCreator *iTagCreator;
     /*
+     * Flag to track last reverse geocode failure sceenario
+     */
+	TBool iLastReverseGeocodeFails;
+
+    /*
      * Reverse geo coder plugin object
      */
 	CReverseGeoCoderPlugin* iRevGeocoderPlugin;
--- a/locationmanager/locationtrail/src/cgpxconverterao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/src/cgpxconverterao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -82,11 +82,14 @@
     iBoundQueue.Close();
 
     delete iTempFile;
+    iTempFile = NULL;
     delete iBoundaries;
+    iBoundaries = NULL;
         
     delete iWriteBuf;
+    iWriteBuf = NULL;
     delete iFormatBuf;
-
+    iFormatBuf = NULL;
 	LOG( "CGpxConverterAO::~CGpxConverterAO ,end" );
     }
 
@@ -179,7 +182,9 @@
 				TInt err;
 				iFixLost = ETrue;
                 delete iTempFile;
+                iTempFile = NULL;
                 delete iBoundaries;
+                iBoundaries = NULL;
 				// get next temp-file from queue
 				iTempFile = iFileQueue[0];
 				iBoundaries = iBoundQueue[0];
--- a/locationmanager/locationtrail/src/clocationrecord.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/src/clocationrecord.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -21,6 +21,9 @@
 #include <ecom.h>
 #include <centralrepository.h>
 #include <hwrmpowerstatesdkpskeys.h>
+#ifdef LOC_GEOTAGGING_CELLID
+#include <lbslocationinfo.h>
+#endif //LOC_GEOTAGGING_CELLID
 
 #include "rlocationtrail.h"
 #include "clocationrecord.h"
@@ -101,6 +104,7 @@
 	,iImageQuery(NULL)
 	,iTagQuery(NULL)
     ,iTagCreator( NULL )
+    ,iLastReverseGeocodeFails(EFalse)
 	,iRevGeocoderPlugin( NULL )
 #endif
     {
@@ -201,8 +205,11 @@
     iLocationItems.Close();
 #endif    
     delete iNetworkInfoChangeListener;
+    iNetworkInfoChangeListener = NULL;
     delete iPositionInfo;
+    iPositionInfo = NULL;
     delete iNetworkInfoTimer;
+    iNetworkInfoTimer = NULL;
 #ifdef LOC_GEOTAGGING_CELLID
     if(iGeoConverter)
         {
@@ -707,10 +714,12 @@
         	{
         	iNetwork.iLocationAreaCode = 0;
         	}
+#ifdef LOC_GEOTAGGING_CELLID
         if ( iState == RLocationTrail::ETrailStarting && iTrailStarted )
         	{
         	SetCurrentState( RLocationTrail::ETrailStarted );
         	}
+#endif        
         }
     else
         {
@@ -797,13 +806,16 @@
     if( iTrailStarted )
         {
         // Set the property only when trail is started to avoid icon flickering and wrong icon update in UI
-        if( iGpsDataAvailableFlag  || 
-            iNetwork.iCellId > 0 && 
+        if( iGpsDataAvailableFlag  
+#ifdef LOC_GEOTAGGING_CELLID
+            || ( iNetwork.iCellId > 0 && 
             ((iNetwork.iLocationAreaCode == 0 && iNetwork.iAccess == CTelephony::ENetworkAccessUtran) || // 3G
             (iNetwork.iLocationAreaCode > 0 && (iNetwork.iAccess == CTelephony::ENetworkAccessGsm ||  // 2G
             						iNetwork.iAccess == CTelephony::ENetworkAccessGsmCompact)))  &&
             iNetwork.iCountryCode.Length() > 0 &&
             iNetwork.iNetworkId.Length() > 0 )
+#endif // LOC_GEOTAGGING_CELLID            
+            )
             {
             // set the value 3 to have Geo tag available icon else not available.
             iProperty.Set( KPSUidLocationTrail, KLocationTrailState, 
@@ -1053,7 +1065,11 @@
 			{
 			
 			// if both locations have valid coordinates, calculate distance between points
-			if ( !Math::IsNaN( lastLocationData.iPosition.Latitude() ) && 
+			if (
+#ifdef LOC_REVERSEGEOCODE
+                !iLastReverseGeocodeFails &&
+#endif //LOC_REVERSEGEOCODE
+                !Math::IsNaN( lastLocationData.iPosition.Latitude() ) && 
 					!Math::IsNaN( lastLocationData.iPosition.Longitude() ) && 
 					!Math::IsNaN( locationData.iPosition.Latitude() ) && 
 					!Math::IsNaN( locationData.iPosition.Longitude() ))
@@ -1322,6 +1338,8 @@
 	if ( !Math::IsNaN( aLocationData.iPosition.Latitude() ) && 
 		 !Math::IsNaN( aLocationData.iPosition.Longitude() ))
 		{
+        LOG1("Lan - %f", aLocationData.iPosition.Latitude());
+        LOG1("Lon - %f", aLocationData.iPosition.Longitude());
 		locationObject->AddReal64PropertyL( *iLatitudeDef, aLocationData.iPosition.Latitude() );
 		locationObject->AddReal64PropertyL( *iLongitudeDef, aLocationData.iPosition.Longitude() );
 
@@ -1344,36 +1362,46 @@
 		}
 
 	// network related properties
-	if ( aLocationData.iNetworkInfo.iAreaKnown )
+	if ( aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
+		{
+		LOG1("Cell id - %d", aLocationData.iNetworkInfo.iCellId);
+		locationObject->AddUint32PropertyL( cellIdDef, aLocationData.iNetworkInfo.iCellId );
+		}
+	if ( aLocationData.iNetworkInfo.iAreaKnown && 
+        aLocationData.iNetworkInfo.iLocationAreaCode != 0 &&
+		aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
 		{
-		if ( aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
-			{
-			locationObject->AddUint32PropertyL( cellIdDef, aLocationData.iNetworkInfo.iCellId );
-			
-			}
-		if ( aLocationData.iNetworkInfo.iLocationAreaCode != 0 &&
-			aLocationData.iNetworkInfo.iAccess != CTelephony::ENetworkAccessUnknown )
-			{
-			locationObject->AddUint32PropertyL( locationCodeDef, 
-					aLocationData.iNetworkInfo.iLocationAreaCode );
-			
-			}
-		if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 )
-			{
-			locationObject->AddTextPropertyL( countryCodeDef, 
-					aLocationData.iNetworkInfo.iCountryCode );
-			
-			}
-		if ( aLocationData.iNetworkInfo.iNetworkId.Length() > 0 )
-			{
-			locationObject->AddTextPropertyL(networkCodeDef, aLocationData.iNetworkInfo.iNetworkId);
-			
-			}
+		LOG1("Areacode - %d", aLocationData.iNetworkInfo.iLocationAreaCode);
+		locationObject->AddUint32PropertyL( locationCodeDef, 
+				aLocationData.iNetworkInfo.iLocationAreaCode );
+		}
+#ifdef _DEBUG
+    TLex lexer( aLocationData.iNetworkInfo.iCountryCode );
+    TUint countryCode = 0;
+    
+    User::LeaveIfError( lexer.Val( countryCode, EDecimal) );
+    LOG1("Country code - %d", countryCode);
+    
+    //Set mobile network code
+    lexer = aLocationData.iNetworkInfo.iNetworkId;
+    TUint networkCode = 0;
+    User::LeaveIfError( lexer.Val( networkCode, EDecimal) );
+    LOG1("Network id - %d", networkCode);
+#endif
+	if ( aLocationData.iNetworkInfo.iCountryCode.Length() > 0 )
+		{
+		locationObject->AddTextPropertyL( countryCodeDef, 
+				aLocationData.iNetworkInfo.iCountryCode );
+		}
+
+	if ( aLocationData.iNetworkInfo.iNetworkId.Length() > 0 )
+		{
+		locationObject->AddTextPropertyL(networkCodeDef, aLocationData.iNetworkInfo.iNetworkId);
 		}
 	        
 	// Add the location object to the database.
 	locationObjectId = iMdeSession->AddObjectL( *locationObject );
-
+    LOG1("Location id - %d", locationObjectId);
 	CleanupStack::PopAndDestroy( locationObject );
     LOG( "CLocationRecord::DoCreateLocationL(), end" );
 
@@ -1952,6 +1980,11 @@
             else if ( iMediaItems.Count() > 0 )
                 {
                 TLocationSnapshotItem* item = iMediaItems[0];
+                // Fails may be becuase of n/w reason..create location + relation so that we can handle at 3:00 AM.
+                TItemId locationId = DoCreateLocationL( iMediaItems[0]->iLocationData );
+                iMediaItems[0]->iLocationId = locationId;
+                CreateRelationL( iMediaItems[0]->iObjectId, locationId );
+
                 iMediaItems.Remove(0);
                 iMediaItems.Compress();
                 iMediaHandlingFlag &= ~KLocationQueryInProgress;
@@ -2461,8 +2494,10 @@
     
     iMediaHandlingFlag &= (~KReverseGeoCodingInProgress);
 	TLocationSnapshotItem* snapshotItem = NULL;
+    LOG1("Error - %d", aErrorcode);
     if( aErrorcode == KErrNone )
         {
+        iLastReverseGeocodeFails = EFalse;
         TPtrC countryPtr( aAddressInfo.GetCountryName() );
         TPtrC cityPtr( aAddressInfo.GetCity() );
         TRAP_IGNORE( iTagCreator->CreateLocationTagsL( countryPtr, countryTagId, 
@@ -2482,19 +2517,16 @@
                 
                 TRAP_IGNORE( iTagCreator->AttachTagsL( 
                                 iLocationItems[0]->iObjectId, countryTagId, cityTagId  ) );
+                if ( (iLastMediaItem.iFlag & KSnapMediaFile) > 0 
+                    && iLastMediaItem.iLocationId == iLastLocationItem.iLocationId )
+                    {
+                    LOG("Updating country/city\n");
+                    iLastMediaItem.iCountryTagId = countryTagId;
+                    iLastMediaItem.iCityTagId = cityTagId;
+                    }
+                
                 }
             }
-        if(iLastMediaItem.iFlag == 0)
-            {
-            LOG("Last media item is null\n");
-            }
-        if ( iLastMediaItem.iFlag > 0 && iLastMediaItem.iLocationId == iLastLocationItem.iLocationId )
-            {
-            LOG("Updating country/city\n");
-            iLastMediaItem.iCountryTagId = countryTagId;
-            iLastMediaItem.iCityTagId = cityTagId;
-            }
-        
         //check other items in the array has same location 
         for ( TInt index = iLocationItems.Count() - 1; index > 0; index--)
             {
@@ -2512,6 +2544,8 @@
     else
         {
         //handle error
+        LOG("Reverse geo coding fails");
+        iLastReverseGeocodeFails = ETrue;
         }
     
     //irrespective of error or not, remove current(first) item to proceed further
--- a/locationmanager/locationtrail/src/ctracklog.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/src/ctracklog.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -68,6 +68,7 @@
 EXPORT_C CTrackLog::~CTrackLog()
 	{
 	delete iGpxConverter;
+	iGpxConverter = NULL;
 	iFs.Close();
 	}
 
@@ -201,6 +202,7 @@
 				if ( err == KErrNone )
 					{
 					delete lastCoords;
+					lastCoords = NULL;
 					lastCoords = new TCoordinate( aTrailItem.iLocationData.iPosition );
 					iBoundaries->distance += distance;
 					}
@@ -306,7 +308,9 @@
 			}
 		}
 	delete filename;
+	filename = NULL;
 	delete files;
+	files = NULL;
 	}
 
 void CTrackLog::ReadCenRepValueL(TInt aKey, TInt& aValue)
--- a/locationmanager/locationtrail/src/locationremappingao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/locationtrail/src/locationremappingao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -385,12 +385,14 @@
 		relation = iMdEClient->GetRelationL( iRemapItems[i].iRelationId );
 		
 		if(relation)
-		    {   
+		    {
+		    CleanupStack::PushL(relation);
             TTime timestamp( 0 );
             timestamp.UniversalTime();
             relation->SetLastModifiedDate( timestamp );
     	
             iMdEClient->UpdateRelationL( *relation );
+		    CleanupStack::PopAndDestroy(relation);
 		    }
 		}
 	
@@ -460,14 +462,16 @@
 						iRemapItems[i].iObjectId, aLocationId, 0 );
 				iMdEClient->AddRelationL( *relationObject );
 				CleanupStack::PopAndDestroy( relationObject );
-				LOG("CLocationRemappingAO::UpdateRelationsL - new relation created");
+				LOG("new relation created");
 				}
 			else
 				{
 				CMdERelation* relationObject = iMdEClient->GetRelationL( iRemapItems[i].iRelationId );
+                CleanupStack::PushL(relationObject);
 				relationObject->SetRightObjectIdL( aLocationId );
 				iMdEClient->UpdateRelationL( *relationObject );
-				LOG("CLocationRemappingAO::UpdateRelationsL - old relation updated");
+                CleanupStack::PopAndDestroy(relationObject);
+				LOG("old relation updated");
 				}
 			iRemapItems.Remove( i );
 			}
--- a/locationmanager/server/group/locationmanagerserver.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/server/group/locationmanagerserver.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -47,8 +47,11 @@
 USERINCLUDE     ../../ReverseGeocode/inc 
 #endif
 
+#ifdef     _LOC_GEOTAGGING_CELLID
+MACRO LOC_GEOTAGGING_CELLID
+USERINCLUDE     ../../geoconverter/inc
+#endif
 
-USERINCLUDE     ../../geoconverter/inc
 
 SYSTEMINCLUDE     /epoc32/include/platform/lbs
 SYSTEMINCLUDE     /epoc32/include/stdapis
@@ -58,9 +61,7 @@
 SOURCEPATH      ../src
 SOURCE	    clocationmanagerserver.cpp
 SOURCE	    clocationmanagersession.cpp
-#ifdef _LOC_REVERSEGEOCODE
 SOURCE	    clocationgeotagtimerao.cpp 
-#endif
 SOURCE	    clocationservertimerhandler.cpp
 SOURCE      nwregistrationstatushandler.cpp
 
@@ -79,9 +80,7 @@
 LIBRARY         etelmm.lib
 LIBRARY         commsdat.lib
 
-#ifdef _LOC_REVERSEGEOCODE
 LIBRARY         geotagger.lib
-#endif
 
 PAGED
 BYTEPAIRCOMPRESSTARGET
--- a/locationmanager/server/inc/clocationmanagerserver.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/server/inc/clocationmanagerserver.h	Fri Jul 23 10:03:59 2010 +0300
@@ -41,9 +41,7 @@
 #include "clocationservertimerhandler.h"
 
 class CMdESession;
-#ifdef LOC_REVERSEGEOCODE
 class CLocationGeoTagTimerAO;
-#endif
 class CGeoTagger;
 class REComSession;
 class CNwRegistrationStatusHandler;
@@ -590,6 +588,11 @@
       * Retrieve home network
       */  
     void RetrieveHomeNetwork();
+    
+    /**
+      * Stop the server (if possible)
+      */  
+    void StopServer();
 
 private:
     /**
@@ -671,8 +674,9 @@
     RMobilePhone::TMobilePhoneNetworkInfoV1 iHomeNetwork;
     TBool iHomeNwInfoAvailableFlag;
   
+    CLocationGeoTagTimerAO* iGeoTagTimer;
+    
 #ifdef LOC_REVERSEGEOCODE
-    CLocationGeoTagTimerAO* iGeoTagTimer;
     CGeoTagger* iGeoTaggingPendingReqObj;
     RMessage2 iTagPendingMessage;
     RMessage2 iGeoTaggingMessage;
--- a/locationmanager/server/src/clocationgeotagtimerao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/server/src/clocationgeotagtimerao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -108,11 +108,11 @@
         
         //3 AM in seconds
         TInt targetTimeInSeconds = GEOTAGGING_TIME_IN_HOURS * HOUR_VALUE_IN_SECONDS;
-        TInt timeDifference;
+        TInt timeDifference = 0;
         
         //Find the time difference in seconds between current time to 3.00 AM 
         //Either on same day or next day.
-        if ( currentHr <= GEOTAGGING_TIME_IN_HOURS )
+        if ( currentHr < GEOTAGGING_TIME_IN_HOURS )
         {
            timeDifference = targetTimeInSeconds - 
                     ( ( currentHr * HOUR_VALUE_IN_SECONDS  ) + ( currentMin * HOUR_VALUE_IN_MINUTES ) + currentSec );
@@ -145,30 +145,26 @@
     {
     LOG ("CLocationGeoTagTimerAO::RunL(), begin");
     TInt status = iStatus.Int();
+    LOG1 ("Timedout error - %d", status);
    
     switch( status )
         {
-        case KErrAbort:
-            StartTimer();
-            break;
-        case KErrUnderflow:
-        case KErrOverflow:
-            StartTimer();
-            break;
         case KErrNone:
             {
             //Trigger the reverse geocoding and start the timer again
             //Create the instance of geotagger class
-            if(iGeoTagger)
+            if(iGeoTagger != NULL)
                 {
                 delete iGeoTagger;
                 iGeoTagger = NULL;
                 }
             iGeoTagger = CGeoTagger::NewL( this, NULL );
             iGeoTagger->CreateGeoTagsL();
+            LOG ("Started 3:00 AM geotagging.");
             break;
             }
         default:
+            StartTimer();
             break;      
        }
     LOG ("CLocationGeoTagTimerAO::RunL(), end");
@@ -181,8 +177,6 @@
 void CLocationGeoTagTimerAO::GeoTaggingCompleted(  const TInt aError )
     {    
     LOG ("CLocationGeoTagTimerAO::GeoTaggingCompleted(), begin");
-    delete iGeoTagger;
-    iGeoTagger = NULL;
     StartTimer();
     iObserver.GeoTaggingCompleted(aError);
     LOG ("CLocationGeoTagTimerAO::GeoTaggingCompleted(), end");
--- a/locationmanager/server/src/clocationmanagerserver.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/server/src/clocationmanagerserver.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -33,9 +33,7 @@
 #include "mdeobjectdef.h"
 #include "mdepropertydef.h"
 #include "mdcserializationbuffer.h"
-#ifdef LOC_REVERSEGEOCODE
 #include "clocationgeotagtimerao.h"
-#endif //LOC_REVERSEGEOCODE
 #include "nwregistrationstatushandler.h"
 
 using namespace MdeConstants;
@@ -116,9 +114,9 @@
                      iTelServerIsOpen(EFalse),
                      iPhoneIsOpen(EFalse),
                      iNwRegistrationStatusHandler(NULL),
-                     iHomeNwInfoAvailableFlag(EFalse)
+                     iHomeNwInfoAvailableFlag(EFalse),
+                     iGeoTagTimer(NULL)
 #ifdef LOC_REVERSEGEOCODE
-                     ,iGeoTagTimer(NULL)
 					 ,iGeoTaggingPendingReqObj(NULL)
 					 ,iEcomSession(NULL)
 #endif //LOC_REVERSEGEOCODE
@@ -171,31 +169,32 @@
         CRepository* repository = CRepository::NewLC( KRepositoryUid );
     	TInt err = repository->Get( KLocationTrailShutdownTimer, iLocManStopDelay );
     	
-        LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay:%d", iLocManStopDelay);
+        LOG1("iLocManStopDelay:%d", iLocManStopDelay);
         
         if ( err != KErrNone )
         	{
-            LOG1("CLocationManagerServer::ConstructL, iLocManStopDelay err:%d", err);
+            LOG1("iLocManStopDelay err:%d", err);
             iLocManStopDelay = KLocationTrailShutdownDelay;
         	}
 
         err = repository->Get( KLocationTrailRemapShutdownTimer, iLocManStopRemapDelay );
         CleanupStack::PopAndDestroy( repository );
         
-        LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay:%d", iLocManStopRemapDelay);
+        LOG1("iLocManStopRemapDelay:%d", iLocManStopRemapDelay);
         
         if ( err != KErrNone )
             {
-            LOG1("CLocationManagerServer::ConstructL, iLocManStopRemapDelay err:%d", err);
+            LOG1("iLocManStopRemapDelay err:%d", err);
             iLocManStopRemapDelay = KLocationTrailRemapShutdownDelay;
             }
         
-#ifdef LOC_REVERSEGEOCODE
         //Create the instance of the geotagging timer object
+        // Create timer, if n/w or reverse geo code based feature flag is enabled
+#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID)
         iGeoTagTimer = CLocationGeoTagTimerAO::NewL(*iMdeSession, *this);
         //Schedule a task for geotagging every day at 3.00 AM
         iGeoTagTimer->StartTimer();
-#endif //LOC_REVERSEGEOCODE
+#endif        
         }
     else
         {
@@ -213,18 +212,27 @@
 CLocationManagerServer::~CLocationManagerServer()
     {
 	LOG("CLocationManagerServer::~CLocationManagerServer ,begin");
-
+#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID)
+    delete iGeoTagTimer;
+    iGeoTagTimer = NULL;
+#endif    
 #ifdef LOC_REVERSEGEOCODE
-    delete iGeoTagTimer;
     delete iGeoTaggingPendingReqObj;
+    iGeoTaggingPendingReqObj = NULL;
 #endif //LOC_REVERSEGEOCODE
     
     delete iLocationRecord;    
+    iLocationRecord = NULL;
     delete iTrackLog;    
+    iTrackLog = NULL;
     delete iTimer;
+    iTimer = NULL;
     delete iASW;
+    iASW = NULL;
     delete iMdeSession;
+    iMdeSession = NULL;
     delete iNwRegistrationStatusHandler;
+    iNwRegistrationStatusHandler = NULL;
     iTargetObjectIds.Close();
     CancelRequests(iNotifReqs);
     iNotifReqs.Close();
@@ -474,14 +482,9 @@
 //    
 void CLocationManagerServer::RemoveSession()
     {
+    LOG1( "CLocationManagerServer::RemoveSession. Session count - %d", iSessionCount);
     iSessionCount--;
-    if ( !iSessionCount 
-        && iLocationRecord 
-        && !iLocationRecord->TaggingInProgress())
-        {
-        // Nothing in progress. shutdown the server
-        CActiveScheduler::Stop();
-        }
+    StopServer();
     }    
 
 // --------------------------------------------------------------------------
@@ -1657,18 +1660,38 @@
 		iGeoTaggingMessage = RMessage2 ();
     	}
 #endif //LOC_REVERSEGEOCODE
+    StopServer();
+	LOG("CLocationManagerServer::GeoTaggingCompleted ,end");
+    }
+
+
+// --------------------------------------------------------------------------
+// CLocationManagerServer::StopServer
+// --------------------------------------------------------------------------
+//
+
+void CLocationManagerServer::StopServer()
+    {    
+    LOG("CLocationManagerServer::StopServer ,begin");
     // once geo tagging completed, check whether, we can terminate the server
+    // dont't stop this process if
+    // 1. when client are connected.
+    // 2. 3AM timer is going on.
+    // 3. Tagging is in progress.
     if ( !iSessionCount 
+#if defined(LOC_REVERSEGEOCODE) || defined(LOC_GEOTAGGING_CELLID)
+        && iGeoTagTimer == NULL
+#endif        
         && iLocationRecord 
         && !iLocationRecord->TaggingInProgress())
         {
         // Nothing in progress. shutdown the server
+        LOG("Stop the schedular");
         CActiveScheduler::Stop();
         }
-	LOG("CLocationManagerServer::GeoTaggingCompleted ,end");
+	LOG("CLocationManagerServer::StopServer ,end");
     }
 
-
 // --------------------------------------------------------------------------
 // CLocationManagerServer::PendingGeoTagReqComplete
 // --------------------------------------------------------------------------
@@ -1788,7 +1811,7 @@
         }
     aMessage.Complete(KErrNone);
 #else
-        aMessage.Complete(KErrNotSupported);
+    aMessage.Complete(KErrNotSupported);
 #endif //LOC_REVERSEGEOCODE
     }
 
--- a/locationmanager/tagcreator/group/tagcreator.mmp	Wed Jul 14 07:57:22 2010 +0300
+++ b/locationmanager/tagcreator/group/tagcreator.mmp	Fri Jul 23 10:03:59 2010 +0300
@@ -27,7 +27,7 @@
 
 #if defined(WINSCW)
 deffile ../bwincw/tagcreatorwinscw.def
-#elif defined(ARMCC)
+#elif defined(EABI)
 deffile ../eabi/tagcreatorarm.def
 #endif
 nostrictdef
--- a/mds_plat/location_manager_api/group/bld.inf	Wed Jul 14 07:57:22 2010 +0300
+++ b/mds_plat/location_manager_api/group/bld.inf	Fri Jul 23 10:03:59 2010 +0300
@@ -31,9 +31,7 @@
 ../inc/locationeventdef.h MW_LAYER_PLATFORM_EXPORT_PATH(locationeventdef.h)
 ../inc/geotagobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(geotagobserver.h)
 ../inc/rlocationgeotagger.h MW_LAYER_PLATFORM_EXPORT_PATH(rlocationgeotagger.h)
-#ifdef _LOC_REVERSEGEOCODE
 ../inc/geotagger.h MW_LAYER_PLATFORM_EXPORT_PATH(geotagger.h)
-#endif
 
 PRJ_MMPFILES
 
--- a/mds_plat/location_manager_api/inc/geotagger.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/mds_plat/location_manager_api/inc/geotagger.h	Fri Jul 23 10:03:59 2010 +0300
@@ -31,7 +31,7 @@
  *  @since S60 9.2
  */
  
-class CGeoTagger : public CBase
+NONSHARABLE_CLASS(CGeoTagger) : public CBase
     {
 public:  
     /**
--- a/metadataengine/client/src/mdeasynchronousfindao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeasynchronousfindao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -132,8 +132,10 @@
     Cancel(); // Causes call to DoCancel()
 
 	delete iDistinctResults;
+	iDistinctResults = NULL;
 
 	delete iConditionBuffer;
+	iConditionBuffer = NULL;
 
     iResultList.ResetAndDestroy();
     iResultList.Close();
--- a/metadataengine/client/src/mdeevent.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeevent.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -70,7 +70,9 @@
 CMdEEvent::~CMdEEvent()
 	{
 	delete iSource;
+	iSource = NULL;
 	delete iParticipant;
+	iParticipant = NULL;
 	}
 
 CMdEEvent* CMdEEvent::NewL(CMdESession* aSession, CMdCSerializationBuffer& aBuffer, CMdENamespaceDef& aNamespaceDef )
--- a/metadataengine/client/src/mdeeventcondition.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeeventcondition.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -94,10 +94,15 @@
 CMdEEventCondition::~CMdEEventCondition()
 	{
     delete iCreationTimeRange;
+    iCreationTimeRange = NULL;
     delete iObjectConditions;
+    iObjectConditions = NULL;
     delete iSourceConditions;
+    iSourceConditions = NULL;
     delete iParticipantConditions;
+    iParticipantConditions = NULL;
     delete iURI;
+    iURI = NULL;
 	}
 
 
--- a/metadataengine/client/src/mdeharvestersession.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeharvestersession.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -45,6 +45,7 @@
 	{
 	iHarvestingPrioritizationChunk.Close();
 	delete iHarvestingPrioritizationSerializationBuffer;
+	iHarvestingPrioritizationSerializationBuffer = NULL;
 	}
 
 void CMdEHarvesterSession::ConstructL()
@@ -112,12 +113,20 @@
 		}
 
 	// Note: CopyLC doesn't push anything to cleanup stack
-	uri->Des().CopyLC( aUri );
+	TRAPD(err, uri->Des().CopyLC( aUri ));
 
+	if(err != KErrNone)
+	    {
+		delete uri;
+		uri = NULL;
+		return EFalse;
+	    }
+		
 	const TBool ret = iSession->EngineSession().DoSetFileToPresent( 
-			aMediaId, *uri, aFileInfo );
+	aMediaId, *uri, aFileInfo );
 	
 	delete uri;
+	uri = NULL;
 
 	return ret;
 	}
--- a/metadataengine/client/src/mdenotifierao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdenotifierao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -66,6 +66,7 @@
     {
     Cancel(); // Causes call to DoCancel()
     delete iDataBuffer;
+    iDataBuffer = NULL;
     iIdArray.Close();
     iRelationItemArray.Close();
     }
--- a/metadataengine/client/src/mdeobject.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeobject.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -582,6 +582,7 @@
 		CMdEProperty* oldProperty = iPropertyArray[f];
 		iPropertyArray[f] = &aProperty;
 		delete oldProperty;
+		oldProperty = NULL;
 		}
 	else if (err < KErrNone)
 		{
@@ -743,6 +744,7 @@
             CMdEProperty* oldProperty = iPropertyArray[f];
             iPropertyArray[f] = aObject.iPropertyArray[i];
             delete oldProperty;
+            oldProperty = NULL;
             }
         else if (err < KErrNone)
             {
@@ -817,6 +819,7 @@
         if ( prop->Removed() )
         	{
         	delete prop;
+        	prop = NULL;
         	iPropertyArray.Remove( i );
         	continue;
         	}
@@ -1055,6 +1058,7 @@
 		        CMdEProperty* oldProperty = newObject->iPropertyArray[f];
 		        newObject->iPropertyArray[f] = property;
 		        delete oldProperty;
+		        oldProperty = NULL;
 		        }
 		    else if (err < KErrNone)
 		        {
--- a/metadataengine/client/src/mdeobjectcondition.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeobjectcondition.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -144,15 +144,18 @@
 CMdEObjectCondition::~CMdEObjectCondition()
 	{
    	delete iString;
+   	iString = NULL;
 
    	if( iObjectIds )
     	{
     	iObjectIds->Close();
     	
     	delete iObjectIds;
+    	iObjectIds = NULL;
     	}
     
    	delete iRange;
+   	iRange = NULL;
 	}
 
 EXPORT_C const CMdEObjectDef* CMdEObjectCondition::ObjectDef() const
--- a/metadataengine/client/src/mdeproperty.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdeproperty.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -95,6 +95,7 @@
 	if (iDef.PropertyType() == EPropertyText)
 		{
 		delete iValue.iText;
+		iValue.iText = NULL;
 		}
 	}
 
--- a/metadataengine/client/src/mdequery.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdequery.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -46,13 +46,15 @@
   
     // This will destroy the entire conditions tree.
    	delete iConditions;
-
+   	iConditions = NULL;
+   	
     // Destroy all result items this query instance owns.
    	for( TInt i = iResults.Count() - 1; i >=0; i-- )
         {
         if(iResults[i].iOwned)
             {
             delete iResults[i].iItem;
+            iResults[i].iItem = NULL;
             }
         }
 
@@ -77,6 +79,7 @@
     iObservers.Close();
 
    	delete iDistinctResults;
+   	iDistinctResults = NULL;
 	}
 
 
@@ -154,6 +157,7 @@
         if(iResults[i].iOwned)
             {
             delete iResults[i].iItem;
+            iResults[i].iItem = NULL;
             }
         }
 	iResults.Reset();
--- a/metadataengine/client/src/mdequerycriteriaserialization.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdequerycriteriaserialization.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -86,6 +86,7 @@
 	if( iOwnSerializedBuffer )
 		{
 		delete iSerializedBuffer;
+		iSerializedBuffer = NULL;
 		}
 	}
 	
--- a/metadataengine/client/src/mdequeryimpl.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdequeryimpl.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -70,6 +70,7 @@
     	iAsyncFind->Cancel();
     	
     	delete iAsyncFind;
+    	iAsyncFind = NULL;
     	}
     }
 
@@ -152,6 +153,7 @@
 CMdERelationQueryImpl::~CMdERelationQueryImpl()
     {
 	delete iAsyncFind;
+	iAsyncFind = NULL;
     }
 
 
@@ -226,6 +228,7 @@
 CMdEEventQueryImpl::~CMdEEventQueryImpl()
     {
 	delete iAsyncFind;
+	iAsyncFind = NULL;
     }
 
 
--- a/metadataengine/client/src/mderelationcondition.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mderelationcondition.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -85,14 +85,19 @@
 CMdERelationCondition::~CMdERelationCondition()
     {
    	delete iLeftCondition;
+   	iLeftCondition = NULL;
    	delete iRightCondition;
+   	iRightCondition = NULL;
    	delete iParameterRange;
+   	iParameterRange = NULL;
 	delete iLastModifiedDateRange;
+	iLastModifiedDateRange = NULL;
 
 	if( iRelationIds )
 		{
 		iRelationIds->Close();
 		delete iRelationIds;
+		iRelationIds = NULL;
 		}
     }
 
--- a/metadataengine/client/src/mdesessionimpl.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdesessionimpl.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -241,6 +241,7 @@
     iSessionObserver = NULL;
 
 	delete iSchemaBuffer;
+	iSchemaBuffer = NULL;
 
 	iNotifiers.ResetAndDestroy();
 	iNotifiers.Close();
@@ -254,8 +255,10 @@
 	iNamespaceDefs.Close();
 	
 	delete iSessionStartupAO;
+	iSessionStartupAO = NULL;
 		
 	delete iAsyncHandler;
+	iAsyncHandler = NULL;
 	}
 
 void CMdESessionImpl::ConstructL()
@@ -359,7 +362,8 @@
     		{
     		User::Leave( KErrMdENotLocked );
     		}
-		items.Append( obj );
+    	
+    	items.AppendL( obj );
     	}
 
     UpdateItemsL(items);
@@ -536,6 +540,7 @@
 		}
 
 	delete iSchemaBuffer;
+	iSchemaBuffer = NULL;
 
 	iSchemaBuffer = schemaBuffer;
 	
@@ -2694,6 +2699,7 @@
     {
     const TInt index = iNotifiers.Find( aNotifier );
     delete aNotifier;
+    aNotifier = NULL;
     iNotifiers.Remove( index );
     }
 
--- a/metadataengine/client/src/mdetextpropertycondition.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/client/src/mdetextpropertycondition.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -62,6 +62,7 @@
 CMdETextPropertyCondition::~CMdETextPropertyCondition()
 	{
     delete iText;
+    iText = NULL;
 	}
 
 TUint32 CMdETextPropertyCondition::InternalQueryOptimizationFlags(TUint32& aFlags)
--- a/metadataengine/common/src/mdcserializationbuffer.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/common/src/mdcserializationbuffer.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -163,6 +163,7 @@
 CMdCSerializationBuffer::~CMdCSerializationBuffer()
 	{
 	delete iHeapBuffer;
+	iHeapBuffer = NULL;
 	}
 
 EXPORT_C TPtr8 CMdCSerializationBuffer::Buffer() const
--- a/metadataengine/server/inc/mdslogger.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/inc/mdslogger.h	Fri Jul 23 10:03:59 2010 +0300
@@ -159,7 +159,7 @@
     #define __DEFINE_LOGGER             class CMdSLogger* gLogger;
     #define __USES_LOGGER               extern CMdSLogger* gLogger;
     #define __INIT_LOGGER               gLogger = CMdSLogger::NewInstanceL();
-    #define __DESTROY_LOGGER            {if(gLogger){delete gLogger;gLogger=NULL;}}
+    #define __DESTROY_LOGGER            {if(gLogger){delete gLogger; gLogger=NULL;}}
 	#define __LOGLB(CATEGORY,A)         {if (gLogger->IsActive(CATEGORY)) { gLogger->LogLit( _L(A) ); }}
 	#define __LOG(CATEGORY,A)           {if (gLogger->IsActive(CATEGORY)) { gLogger->LogLit( A ); }}
 #ifdef MDE_FILE_LOGGING
@@ -177,7 +177,7 @@
 	    	{__LOG( ELogQuery, INFO); \
 	        CMdsClauseBuffer* queryText = gLogger->DescribeFullL(BUFFER,ROWDATA); \
 	        if ( queryText ) { __LOG( ELogQuery, queryText->ConstBufferL() ); \
-	        delete queryText;} }
+	        delete queryText; queryText = NULL;} }
 	#else //LOG_QUERY
 	    #define __LOGQUERY_16(INFO, BUFFER, ROWDATA)
 	#endif //LOG_QUERY
--- a/metadataengine/server/inc/mdsserversession.h	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/inc/mdsserversession.h	Fri Jul 23 10:03:59 2010 +0300
@@ -427,6 +427,7 @@
 		    	~CNotificationCacheItem()
 			    	{
 			    	delete iData;
+			    	iData = NULL;
 			    	}
 
 	    	public:
--- a/metadataengine/server/src/mdsclausebuffer.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsclausebuffer.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -54,6 +54,7 @@
 CMdsClauseBuffer::~CMdsClauseBuffer()
     {
     delete iBuffer;
+    iBuffer = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/metadataengine/server/src/mdsfindengine.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsfindengine.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -133,7 +133,9 @@
 CMdSFindEngine::~CMdSFindEngine()
     {
    	delete iSerializedCriteria;
+   	iSerializedCriteria = NULL;
    	delete iSequence;
+   	iSequence = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/metadataengine/server/src/mdsfindsqlclause.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsfindsqlclause.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -61,6 +61,7 @@
 CMdSFindSqlClause::~CMdSFindSqlClause()
     {
     delete iQueryBuf;
+    iQueryBuf = NULL;
 
     iResultRow.Close();
     iVariables.Close();
@@ -76,6 +77,7 @@
 		iSourceObjectDefs->Close();
 
 		delete iSourceObjectDefs;
+		iSourceObjectDefs = NULL;
 		}
     }
 
--- a/metadataengine/server/src/mdsgetimeiao.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsgetimeiao.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -47,6 +47,7 @@
 	Cancel();
 
 	delete iTelephony;
+	iTelephony = NULL;
 	}
 
 TInt64 CMdsGetImeiAO::GetIMEI()
--- a/metadataengine/server/src/mdsimportexport.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsimportexport.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -118,6 +118,7 @@
 CMdsImportExport::~CMdsImportExport()
 	{
    	delete iConverter;
+   	iConverter = NULL;
 
 #ifdef _DEBUG
    	if( iLogEnabled )
@@ -129,8 +130,10 @@
     iFs.Close();
 
    	delete iBuffer;
+   	iBuffer = NULL;
 
    	delete iSchema;
+   	iSchema = NULL;
 	}
 
 /**
--- a/metadataengine/server/src/mdsitemdef.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsitemdef.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -52,6 +52,7 @@
 CMdsItemDef::~CMdsItemDef()
 	{
 	delete iName;
+	iName = NULL;
 	}
 
 TUint32 CMdsItemDef::RequiredBufferSize()
--- a/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsmaintenanceengine.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -79,6 +79,7 @@
 CMdSMaintenanceEngine::~CMdSMaintenanceEngine()
     {
     delete iMaintenance;
+    iMaintenance = NULL;
     }
 
 // ------------------------------------------------
@@ -117,7 +118,17 @@
 void CMdSMaintenanceEngine::InstallL( CMdSManipulationEngine& aManipulate, CMdsSchema& aSchema )
     {
     __LOG1( ELogAlways, "Trying to validate MDS DB, error expected if not created(first boot): %d", 0 );
-    if ( !(iMaintenance->ValidateL( ) ) )
+	
+    TBool isValid(EFalse);
+    TRAPD(err, isValid = iMaintenance->ValidateL( ));
+    
+    if(err == KErrCorrupt)
+        {
+        DeleteDatabase();
+        User::Leave( err );
+        }
+    
+    else if ( !isValid )
         {
         // Pump up priority to load the MDS DB up as fast as possible to
         // enable client side session connections
--- a/metadataengine/server/src/mdsmanipulationengine.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsmanipulationengine.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -93,8 +93,10 @@
 CMdSManipulationEngine::~CMdSManipulationEngine()
     {
     delete iManipulate;
+    iManipulate = NULL;
     
     delete iGarbageCollector;
+    iGarbageCollector = NULL;
     }
 
 // ---------------------------------------------------------------------------
--- a/metadataengine/server/src/mdsnotifier.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsnotifier.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -80,6 +80,7 @@
 CMdSNotifier::~CMdSNotifier()
     {
     delete iComparator;
+    iComparator = NULL;
     
     const TInt count = iEntries.Count();
     
@@ -586,7 +587,9 @@
                 }
             
             delete e.iSerializedCondition;
+            e.iSerializedCondition = NULL;
             delete e.iDataBuffer;
+            e.iDataBuffer = NULL;
             iEntries.Remove( i );
             }
         }
--- a/metadataengine/server/src/mdsschema.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsschema.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -78,6 +78,7 @@
 	iProperties.Close();
 
 	delete iBaseObject;
+	iBaseObject = NULL;
 	}
 
 void CMdsSchema::Reset()
--- a/metadataengine/server/src/mdsserver.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsserver.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -403,6 +403,7 @@
     // TRAP InstallL - first time for if there has been schema update, and 
     // the DB version is too old. Delete the DB and try to recreate it
     TRAPD( error, iMaintenance->InstallL( *iManipulate, *iSchema ) );
+    
     if( error == KErrCorrupt )
         {
         delete iSchema;
@@ -419,6 +420,7 @@
         // during update, and the first attempt to recreate the DB fails. 
         // Then schema file in rom is used for final attempt to recreate the DB
         TRAP( error, iMaintenance->InstallL( *iManipulate, *iSchema ) );
+        
         if( error == KErrCorrupt )
             {
             delete iSchema;
@@ -487,19 +489,30 @@
     iClientThread.Close();
     
 	delete iBURWatcher;
+	iBURWatcher = NULL;
 	delete iDiskSpaceGarbageCollectorNotifier;
+	iDiskSpaceGarbageCollectorNotifier = NULL;
 	delete iDiskFullNotifier;
+	iDiskFullNotifier = NULL;
     delete iManipulate;
+    iManipulate = NULL;
     delete iSchema;
+    iSchema = NULL;
     delete iNotifier;
+    iNotifier = NULL;
     delete iLockList;
+    iLockList = NULL;
     delete iMaintenance;
+    iMaintenance = NULL;
     delete iDefaultDBConnection;
+    iDefaultDBConnection = NULL;
 
     delete iHarvestingPrioritizationSerializationBuffer;
+    iHarvestingPrioritizationSerializationBuffer = NULL;
 	iHarvestingPrioritizationChunk.Close();
 	
 	delete iShutdownObserver;
+	iShutdownObserver = NULL;
 
     __LOGLB( ELogAlways, "Server stop" );
     __DESTROY_LOGGER;
@@ -947,6 +960,7 @@
  		{
  		TRAP(result, CMdSServer::ThreadFunctionL());
 		delete cleanup;
+		cleanup = NULL;
  		}
     __UHEAP_MARKEND;
  	return result;
--- a/metadataengine/server/src/mdsserversession.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdsserversession.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -601,7 +601,7 @@
 
     CleanupStack::Pop( find );
     
-    iFindEngines.Append( find );
+    iFindEngines.AppendL( find );
     }
 
 // ---------------------------------------------------------------------------
@@ -641,7 +641,7 @@
 
     CleanupStack::Pop( find );
     
-    iFindEngines.Append( find );
+    iFindEngines.AppendL( find );
     }
 
 // ---------------------------------------------------------------------------
@@ -678,6 +678,7 @@
     else if( findEngine->IsComplete() )
     	{
     	delete findEngine;
+    	findEngine = NULL;
 
     	iFindEngines.Remove( feIndex );
     	
@@ -708,6 +709,7 @@
     		findEngine->Cancel( aError );
 
     		delete findEngine;
+    		findEngine = NULL;
 
     		iFindEngines.Remove( i );
 
@@ -864,6 +866,7 @@
             if ( serverRequest != EAsyncFindSetReady )
                 {
                 delete findEngine;
+                findEngine = NULL;
                 
                 iFindEngines.Remove( findEngineIndex );
                 iFindEngines.Compress();
--- a/metadataengine/server/src/mdssqldbmaintenance.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdssqldbmaintenance.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -50,15 +50,153 @@
 
 TBool CMdSSqlDbMaintenance::ValidateL(  )
     {
+    //validate content of critical tables
     _LIT( KValidateTableExistence, "SELECT COUNT(*) FROM MdE_Preferences;" );
+    _LIT( KValidateObjectDef, "SELECT COUNT(*) FROM ObjectDef;" );
+    _LIT( KValidatePropertyDef, "SELECT COUNT(*) FROM PropertyDef;" );
+    _LIT( KValidateRelationDef, "SELECT COUNT(*) FROM RelationDef;" );
+    _LIT( KValidateCol2Prop, "SELECT COUNT(*) FROM Col2Prop;" );
 
+    TInt test(KErrNone);
+    TUint32 count(0);
+    
+    RRowData emptyRowData;
+    CleanupClosePushL( emptyRowData );
+        
     RMdsStatement validationQuery;
     CleanupClosePushL( validationQuery );
-    RRowData emptyRowData;
-    CleanupClosePushL( emptyRowData );
+    
     CMdSSqLiteConnection& connection = MMdSDbConnectionPool::GetDefaultDBL();
-	TRAPD( test, connection.ExecuteQueryL( KValidateTableExistence, validationQuery, emptyRowData ) );
-	CleanupStack::PopAndDestroy( 2, &validationQuery );
+    
+	TRAP( test, connection.ExecuteQueryL( KValidateTableExistence, validationQuery, emptyRowData ) );
+	if(test == KErrNone)
+        {
+        emptyRowData.AppendL( TColumn( count ) );
+        TRAP( test, connection.NextRowL(validationQuery, emptyRowData));
+        if(test == KErrNone)
+            {
+            emptyRowData.Column(0).Get( count );
+                    
+            if(count <= 0)
+                {
+                test = KErrCorrupt;
+                }
+            }
+        }
+	
+	CleanupStack::PopAndDestroy( &validationQuery );
+	emptyRowData.Reset();
+	
+	RMdsStatement objectDefQuery;
+	CleanupClosePushL( objectDefQuery );
+	
+	if( test == KErrNone )
+        {
+        TRAP( test, connection.ExecuteQueryL( KValidateObjectDef, objectDefQuery, emptyRowData ) );
+        
+        if(test == KErrNone)
+            {
+            emptyRowData.AppendL( TColumn( count ) );
+            TRAP( test, connection.NextRowL(objectDefQuery, emptyRowData));
+            if(test == KErrNone)
+                {
+                emptyRowData.Column(0).Get( count );
+                        
+                if(count <= 0)
+                    {
+                    test = KErrCorrupt;
+                    }
+                }
+            }
+        }
+    
+	CleanupStack::PopAndDestroy( &objectDefQuery );
+	emptyRowData.Reset();
+	
+	RMdsStatement propertyDefQuery;
+	CleanupClosePushL( propertyDefQuery );
+
+	if( test == KErrNone )
+	    {
+        TRAP( test, connection.ExecuteQueryL( KValidatePropertyDef, propertyDefQuery, emptyRowData ) );
+        if(test == KErrNone)
+            {
+            emptyRowData.AppendL( TColumn( count ) );
+            TRAP( test, connection.NextRowL(propertyDefQuery, emptyRowData));
+            if(test == KErrNone)
+                {
+                emptyRowData.Column(0).Get( count );
+                
+                if(count <= 0)
+                    {
+                    test = KErrCorrupt;
+                    }
+                }
+            }
+	    }
+	
+	CleanupStack::PopAndDestroy( &propertyDefQuery );
+	emptyRowData.Reset();
+	
+    RMdsStatement relationDefQuery;
+    CleanupClosePushL( relationDefQuery );
+	
+	if( test == KErrNone )
+	    {
+	    TRAP( test, connection.ExecuteQueryL( KValidateRelationDef, relationDefQuery, emptyRowData ) );
+	    if(test == KErrNone)
+	        {
+            emptyRowData.AppendL( TColumn( count ) );
+            TRAP( test, connection.NextRowL(relationDefQuery, emptyRowData));
+            
+            if(test == KErrNone)
+                {
+                emptyRowData.Column(0).Get( count );
+                
+                if(count <= 0)
+                    {
+                    test = KErrCorrupt;
+                    }
+                }
+            }
+	    }
+	
+	CleanupStack::PopAndDestroy( &relationDefQuery );
+	emptyRowData.Reset();
+    
+    RMdsStatement col2propQuery;
+    CleanupClosePushL( col2propQuery );
+    
+    if( test == KErrNone )
+        {
+        TRAP( test, connection.ExecuteQueryL( KValidateCol2Prop, col2propQuery, emptyRowData ) );
+        if(test == KErrNone)
+            {
+            emptyRowData.AppendL( TColumn( count ) );
+            TRAP( test, connection.NextRowL(col2propQuery, emptyRowData));
+            
+            if(test == KErrNone)
+                {
+                emptyRowData.Column(0).Get( count );
+                
+                if(count <= 0)
+                    
+                    {
+                    test = KErrCorrupt;
+                    }
+                }
+            }
+          }
+    CleanupStack::PopAndDestroy( &col2propQuery );
+    emptyRowData.Reset();
+     
+    CleanupStack::PopAndDestroy( &emptyRowData );
+    
+    if(test == KErrCorrupt )
+        {
+        User::Leave( test );
+        }
+    
     return ( test == KErrNone );
     }
 
--- a/metadataengine/server/src/mdssqlfindoperation.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdssqlfindoperation.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -86,7 +86,9 @@
     iQueryId.Close();
 
    	delete iResults;
+   	iResults = NULL;
    	delete iFindClause;
+   	iFindClause = NULL;
     }
 
 TInt CMdSSqlFindOperation::ExecuteL()
--- a/metadataengine/server/src/mdssqliteconnection.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdssqliteconnection.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -48,6 +48,7 @@
     CloseDb();
 
     delete iDbFileName;
+    iDbFileName = NULL;    
 
     iNotFinishFindQuery = NULL;
     }
--- a/metadataengine/server/src/mdssqlobjectmanipulate.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/metadataengine/server/src/mdssqlobjectmanipulate.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -71,6 +71,7 @@
 CMdSIdentifierGenerator::~CMdSIdentifierGenerator()
     {
     delete iDigest;
+    iDigest = NULL;
     }
 
 void CMdSIdentifierGenerator::ConstructL( )
@@ -178,11 +179,14 @@
 	for (TInt i = 0; i < count; ++i)
 		{
 		delete iBuffers[i].iBuffer;
+		iBuffers[i].iBuffer = NULL;
 		}
 	iBuffers.Close();
 
 	delete iGenerator;
+	iGenerator = NULL;
 	delete iUri;
+	iUri = NULL;
     }
 
 CMdSSqlObjectManipulate::CMdSSqlObjectManipulate( const CMdsSchema& aSchema, 
--- a/rom/mds_cellidenabled.iby	Wed Jul 14 07:57:22 2010 +0300
+++ b/rom/mds_cellidenabled.iby	Fri Jul 23 10:03:59 2010 +0300
@@ -85,6 +85,9 @@
 REM geoconverter
 file=ABI_DIR\BUILD_DIR\geoconverter.dll		    SHARED_LIB_DIR\geoconverter.dll
 
+REM geotagger
+file=ABI_DIR\BUILD_DIR\geotagger.dll		    SHARED_LIB_DIR\geotagger.dll
+
 
 REM Location Manager data files
 data=ZPRIVATE\10202BE9\200071BE.txt					"PRIVATE\10202BE9\200071BE.txt"
Binary file sis/mds/mds_stub.sis has changed
--- a/sis/mds/package.pkg	Wed Jul 14 07:57:22 2010 +0300
+++ b/sis/mds/package.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 11, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 12, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_cellid_reverse_geocode_enabled.pkg	Wed Jul 14 07:57:22 2010 +0300
+++ b/sis/mds/package_cellid_reverse_geocode_enabled.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 11, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 12, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/package_cellidenabled.pkg	Wed Jul 14 07:57:22 2010 +0300
+++ b/sis/mds/package_cellidenabled.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 11, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 12, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
@@ -94,6 +94,7 @@
 "\EPOC32\RELEASE\ARMV5\UREL\locationmanager.dll" -"c:\sys\bin\locationmanager.dll"
 "\EPOC32\RELEASE\ARMV5\UREL\locationmanagerserver.exe" -"c:\sys\bin\locationmanagerserver.exe"
 "\EPOC32\RELEASE\ARMV5\UREL\geoconverter.dll" -"c:\sys\bin\geoconverter.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\geotagger.dll" -"c:\sys\bin\geotagger.dll"
 
 ; metadata engine
 "\EPOC32\RELEASE\ARMV5\UREL\mdeclient.dll" -"c:\sys\bin\mdeclient.dll"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sis/mds/package_reverse_geocode_enabled_only.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -0,0 +1,116 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:
+;
+;Languages
+&EN
+
+;packet-header (name, uid, major, minor, build, type)
+#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 12, TYPE=SA, RU
+
+; Localised vendor name
+%{"Nokia"}
+
+; Unique vendor name
+:"Nokia"
+
+;Files
+"\epoc32\release\armv5\udeb\mdsiadstop.exe"-"c:\sys\bin\mdsiadstop.exe",FILERUN,RB,RW
+
+; CenRep
+"..\..\clfwrapper\conf\102828AC.txt"-"c:\private\10202be9\102828AC.txt"
+"..\..\harvester\common\data\200009FE.txt"-"c:\private\10202be9\200009FE.txt"
+"..\..\locationmanager\data\200071BE.txt"-"c:\private\10202be9\200071BE.txt"
+
+; contextengine
+"\EPOC32\RELEASE\ARMV5\UREL\contextengine.dll" -"c:\sys\bin\contextengine.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\contextplugininterface.dll" -"c:\sys\bin\contextplugininterface.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\calendarcontextplugin.dll" -"c:\sys\bin\calendarcontextplugin.dll"
+"\epoc32\data\z\resource\plugins\calendarcontextplugin.rsc" -"c:\resource\plugins\calendarcontextplugin.rsc"
+"\EPOC32\RELEASE\ARMV5\UREL\locationcontextplugin.dll" -"c:\sys\bin\locationcontextplugin.dll"
+"\epoc32\data\z\resource\plugins\locationcontextplugin.rsc" -"c:\resource\plugins\locationcontextplugin.rsc"
+
+; clf wrapper
+"\EPOC32\RELEASE\ARMV5\UREL\MediaCollectionManager.dll" -"c:\sys\bin\MediaCollectionManager.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\ContentListingFramework.dll" -"c:\sys\bin\ContentListingFramework.dll"
+
+; blacklist 
+"\EPOC32\RELEASE\ARMV5\UREL\!blacklistserver.exe" -"c:\sys\bin\!blacklistserver.exe"
+"\EPOC32\RELEASE\ARMV5\UREL\blacklistclient.dll" -"c:\sys\bin\blacklistclient.dll"
+
+; composer plugins
+"\epoc32\RELEASE\armv5\UREL\composerplugininterface.dll"-"c:\sys\bin\composerplugininterface.dll"
+"\epoc32\RELEASE\armv5\UREL\composerimageplugin.dll"-"c:\sys\bin\composerimageplugin.dll"
+"\epoc32\data\z\resource\plugins\composerimageplugin.rsc"-"c:\resource\plugins\composerimageplugin.rsc"
+
+; harvester
+"\epoc32\RELEASE\armv5\UREL\harvesterclient.dll" -"c:\sys\bin\harvesterclient.dll"
+"\epoc32\RELEASE\armv5\UREL\harvestercommon.dll" -"c:\sys\bin\harvestercommon.dll"
+"\epoc32\RELEASE\armv5\UREL\harvesterdata.dll" -"c:\sys\bin\harvesterdata.dll"
+"\epoc32\RELEASE\armv5\UREL\harvesterplugininterface.dll" -"c:\sys\bin\harvesterplugininterface.dll"
+"\epoc32\RELEASE\armv5\UREL\harvesterserver.exe" -"c:\sys\bin\harvesterserver.exe"
+
+; harvester plugins
+"\epoc32\RELEASE\armv5\UREL\harvesteraudioplugin.dll"-"c:\sys\bin\harvesteraudioplugin.dll"
+"\epoc32\data\z\resource\plugins\harvesteraudioplugin.rsc"-"c:\resource\plugins\harvesteraudioplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvesterimageplugin.dll"-"c:\sys\bin\harvesterimageplugin.dll"
+"\epoc32\data\z\resource\plugins\harvesterimageplugin.rsc"-"c:\resource\plugins\harvesterimageplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvestermessageplugin.dll"-"c:\sys\bin\harvestermessageplugin.dll"
+"\epoc32\data\z\resource\plugins\harvestermessageplugin.rsc"-"c:\resource\plugins\harvestermessageplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvesteromadrmplugin.dll"-"c:\sys\bin\harvesteromadrmplugin.dll"
+"\epoc32\data\z\resource\plugins\harvesteromadrmplugin.rsc"-"c:\resource\plugins\harvesteromadrmplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvesterrtpplugin.dll"-"c:\sys\bin\harvesterrtpplugin.dll"
+"\epoc32\data\z\resource\plugins\harvesterrtpplugin.rsc"-"c:\resource\plugins\harvesterrtpplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvestervideoplugin.dll"-"c:\sys\bin\harvestervideoplugin.dll"
+"\epoc32\data\z\resource\plugins\harvestervideoplugin.rsc"-"c:\resource\plugins\harvestervideoplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\harvesterwmvplugin.dll"-"c:\sys\bin\harvesterwmvplugin.dll"
+"\epoc32\data\z\resource\plugins\harvesterwmvplugin.rsc"-"c:\resource\plugins\harvesterwmvplugin.rsc"
+
+; monitor plugins
+"\epoc32\RELEASE\armv5\UREL\monitorplugininterface.dll"-"c:\sys\bin\monitorplugininterface.dll"
+"\epoc32\RELEASE\armv5\UREL\mdsfileserverplugin.pxt"-"c:\sys\bin\mdsfileserverplugin.pxt"
+"\epoc32\RELEASE\armv5\UREL\filemonitorplugin.dll"-"c:\sys\bin\filemonitorplugin.dll"
+"\epoc32\data\z\resource\plugins\filemonitorplugin.rsc"-"c:\resource\plugins\filemonitorplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\MessageMonitorPlugin.dll"-"c:\sys\bin\MessageMonitorPlugin.dll"
+"\epoc32\data\z\resource\plugins\MessageMonitorPlugin.rsc"-"c:\resource\plugins\MessageMonitorPlugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\mmcmonitorplugin.dll"-"c:\sys\bin\mmcmonitorplugin.dll"
+"\epoc32\data\z\resource\plugins\mmcmonitorplugin.rsc"-"c:\resource\plugins\mmcmonitorplugin.rsc"
+"\epoc32\RELEASE\armv5\UREL\mdsoomplugin.dll"-"c:\sys\bin\mdsoomplugin.dll"
+"\epoc32\data\z\resource\plugins\mdsoomplugin.rsc"-"c:\resource\plugins\mdsoomplugin.rsc"
+
+; location manager
+"\EPOC32\RELEASE\ARMV5\UREL\LocationTrail.dll" -"c:\sys\bin\LocationTrail.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\locationmanager.dll" -"c:\sys\bin\locationmanager.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\locationmanagerserver.exe" -"c:\sys\bin\locationmanagerserver.exe"
+"\EPOC32\RELEASE\ARMV5\UREL\ReverseGeocode.dll" -"c:\sys\bin\ReverseGeocode.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\tagcreator.dll" -"c:\sys\bin\tagcreator.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\geotagger.dll" -"c:\sys\bin\geotagger.dll"
+"\epoc32\RELEASE\armv5\UREL\ReverseGeoCoderPlugin.dll"-"c:\sys\bin\ReverseGeoCoderPlugin.dll"
+"\epoc32\data\z\resource\plugins\reversegeocoderplugin.rsc"-"c:\resource\plugins\reversegeocoderplugin.rsc"
+
+; metadata engine
+"\EPOC32\RELEASE\ARMV5\UREL\mdeclient.dll" -"c:\sys\bin\mdeclient.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\mdccommon.dll" -"c:\sys\bin\mdccommon.dll"
+"\EPOC32\RELEASE\ARMV5\UREL\!mdsserver.exe" -"c:\sys\bin\!mdsserver.exe"
+
+"\epoc32\release\armv5\udeb\mdswatchdog.exe"-"c:\sys\bin\mdswatchdog.exe"
+
+"\epoc32\data\z\Private\200009F3\schema.mde"-"c:\PRIVATE\200009F3\schema.mde"
+"\epoc32\data\z\Private\200009F3\defaultimportfile.mde"-"c:\PRIVATE\200009F3\defaultimportfile.mde"
+"\epoc32\data\z\Private\200009F3\backup_registration.xml"-"c:\PRIVATE\200009F3\backup_registration.xml"
+"\epoc32\data\z\Private\200009F5\backup_registration.xml"-"c:\PRIVATE\200009F5\backup_registration.xml"
+"\epoc32\data\z\Private\200009F5\mappings.db"-"c:\PRIVATE\200009F5\mappings.db"
+
+"\epoc32\release\armv5\udeb\mdsiadrestart.exe"-"c:\sys\bin\mdsiadrestart.exe",FILERUN,RB,RW
+
--- a/sis/mds/package_separate.pkg	Wed Jul 14 07:57:22 2010 +0300
+++ b/sis/mds/package_separate.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ;packet-header (name, uid, major, minor, build, type)
-#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 11, TYPE=SA, RU
+#{"Metadata System Upgrade"},(0x200009F5), 10, 10, 12, TYPE=SA, RU
 
 ; Localised vendor name
 %{"Nokia"}
--- a/sis/mds/stub.pkg	Wed Jul 14 07:57:22 2010 +0300
+++ b/sis/mds/stub.pkg	Fri Jul 23 10:03:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"Metadata System"}, (0x200009F5), 10, 10, 11, TYPE=SA
+#{"Metadata System"}, (0x200009F5), 10, 10, 12, TYPE=SA
 
 ; Localised Vendor name
 %{"Nokia"}
--- a/watchdog/src/watchdog.cpp	Wed Jul 14 07:57:22 2010 +0300
+++ b/watchdog/src/watchdog.cpp	Fri Jul 23 10:03:59 2010 +0300
@@ -161,8 +161,10 @@
 //
 CWatchdog::~CWatchdog()
     {
-    delete iShutdownObserver;    
+    delete iShutdownObserver;
+    iShutdownObserver = NULL;
     delete iSelfShutdownObserver;
+    iSelfShutdownObserver = NULL;
     Cancel();
     }
 
@@ -304,5 +306,6 @@
         }
   
     delete cleanupStack;
+    cleanupStack = NULL;
     return err;
     }