Bug 60271

Summary: Handle collisions of Macro names
Product: POI Reporter: Tim Allison <tallison>
Component: POIFSAssignee: POI Developers List <dev>
Status: NEW ---    
Severity: normal    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows NT   

Description Tim Allison 2016-10-18 16:52:02 UTC
While working on [Bug 59858], I found that there can be multiple copies of a macro with the same name.  Given that we're storing macros only by the macro name, this means that we might overwrite or skip macros with the same name.

If we want to maintain all macros, I propose that we store them as macroDir.getPath()+"\\"+macroName.

In 59858's test file, we'd have:

\_VBA_PROJECT_CUR\VBA\ThisWorkbook
\_VBA_PROJECT_CUR\VBA\SupportFunctions
\_VBA_PROJECT_CUR\VBA\ReferencesAndConstants
\_VBA_PROJECT_CUR\VBA\frmPageCreation
\_VBA_PROJECT_CUR\VBA\Sheet4
\_VBA_PROJECT_CUR\VBA\Sheet6
\_VBA_PROJECT_CUR\VBA\Sheet7
\_VBA_PROJECT_CUR\VBA\Sheet5
\_VBA_PROJECT_CUR\VBA\Sheet2
\_VBA_PROJECT_CUR\VBA\Sheet3
\_VBA_PROJECT_CUR\VBA\Sheet1
\MBD00082648\_VBA_PROJECT_CUR\VBA\Sheet2
\MBD00082648\_VBA_PROJECT_CUR\VBA\ThisWorkbook
\MBD00082648\_VBA_PROJECT_CUR\VBA\Sheet3
\MBD00082648\_VBA_PROJECT_CUR\VBA\Sheet1

I'll leave this open for comment for a few days.  I'm not sure this is the best option...