Bug in Excel's handling of metadata? Or at least a deviation from the Open Office XML specification?

I've discovered some very strange behaviour in Excel which seems to be contrary to that documented in the Open Office XML specification (OOXML). I couldn't find a way to report bugs against Excel, so I thought I'd try to explain the issue here.
In short it seems that Excel is removing, and incorrectly re-indexing the metadata I programatically associate with cells.
First, a summary of the relevant parts of the specification:
From OOXML 18.9: There are two types of metadata: "cell metadata" and "value metadata".
Cell metadata follows the cell as it moves. Value metadata follows the value through formulae etc.
From OOXML 18.3.1.4: The c (cell) element has cm and vm attributes which are both documented as "The zero-based index of the [cell|value] metadata...in the Metadata Part"
From OOXML 18.9.17: The valueMetadata is "a collection of block element that each define the value metadata for a particular cell". "Cells in the workbook index into this collection".
The valueMetadata contains bk elements which in turn contain rc (metadata record) elements
From OOXML 18.9.15: rc elements have t (type index) and v (value index) attributes. t is a 1-based index into metadataTypes and v is a 0-based index into the futureMetadata element which matches the name of the metadata type.
Here's an example of what this might look like:
<c vm="0"> <!-- vm points to the first bk inside valueMetadata below -->
<x:valueMetadata>
<x:bk>
<x:rc t="1" v="0" /> <!-- t points to the first metadataType below. v points to the first bk in the futureMetadata below (whose name matches the metadataType to which t points) -->
</x:bk>
</x:valueMetadata>
<x:metadataTypes>
<x:metadataType name="MyMetaType" ... /> <!-- name dictates which futureMetadata valueMetadata's v attribute indexes into -->
</x:metadataTypes>
<x:futureMetadata name="MyMetaType" ...>
<x:bk>
<x:extLst>
<x:ext xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main" uri="http://example.com/extension" p5:value="test value" xmlns:p5="http://example.com/extension" />
</x:extLst>
</x:bk>
</x:futureMetadata>
The Problem
From what I can tell, for values of n > 2, if you associate n cells with metadata, Excel will drop the last piece of metadata, and the one at index 1, and it will do so silently. The indices are then 0..n-3, and the association for all but the first (0
index) will be wrong. This renders the future metadata totally useless.
For n == 1, Excel just removes the last piece of metadata (index 1). If we try 1-based indexes for the vm attribute on the c element, we get different behaviour. This may not be relevant as it is contrary to the specification, but the slightly better behaviour
might indicate an off-by-one error:
n
Deleted Indices (0-based) when using 0-based indices
Deleted Indices (0-based) when using 1-based indices
1
0
None
2
1
1
3
1,2
1
4
1,3
1
5
1,4
1
6
1,5
1
Demonstrating the Problem
I have some example code[1] that demonstrates the problem. You will need a file called test.xlsx with cells A1..C2 populated.
Compile the source as AddMetadata.exe then run with the test file as the only parameter:
> AddMetadata.exe test.xlsx
You can look at test.xlsx in Excel, Visual Studio (with the Open XML Package Editor Power Tool for Visual Studio 2010) or the Open XML SDK 2.0 Productivity Tool for Microsoft Office. Looking at the file before and after running AddMetadata.exe you should
be able to reproduce the behaviour documented above.
Summary
It would be good to know if this is really an Excel bug or whether we're doing something wrong / unsupported. Any insight would be very much appreciated.
[1] The Example code:
namespace AddMetadata
using System;
using System.Linq;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
public class Program
// The cells to associate with metadata
private readonly static CellSpec[] CellSpecs = new[]
new CellSpec{ Sheet = "Sheet1", Column = "A", Row = 1 },
new CellSpec{ Sheet = "Sheet1", Column = "B", Row = 1 },
new CellSpec{ Sheet = "Sheet1", Column = "C", Row = 1 },
new CellSpec{ Sheet = "Sheet1", Column = "A", Row = 2 },
new CellSpec{ Sheet = "Sheet1", Column = "B", Row = 2 },
new CellSpec{ Sheet = "Sheet1", Column = "C", Row = 2 },
private static readonly uint NumCells = (uint)CellSpecs.Length;
private const string SPREADSHEET_ML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
private const string METADATA_TYPE_NAME = "MyMetaType";
private const string EXTENSION_URI = "http://example.com/extension";
public static void Main(string[] args)
if (args.Length != 1)
Console.Out.WriteLine("AddMetadata <doc.xslx>");
Console.Out.WriteLine(" Adds metadata to the specified document to demonstate some strange Excel behaviour");
Environment.Exit(1);
try
var doc = SpreadsheetDocument.Open(args[0], true);
StripMetadata(doc);
AddMetadata(doc);
AddMetadataType(doc);
AddFutureMetadata(doc);
AddMetadataRecords(doc);
AssociateCellsWithMetadata(doc);
doc.WorkbookPart.Workbook.Save();
doc.Close();
catch(Exception e)
Console.Out.WriteLine(e);
/// <summary>
/// Strip any existing metadata.
/// </summary>
/// <param name="doc">The document</param>
private static void StripMetadata(SpreadsheetDocument doc)
var wbPart = doc.WorkbookPart;
var cellMetadataPart = wbPart.GetPartsOfType<CellMetadataPart>().FirstOrDefault();
wbPart.DeletePart(cellMetadataPart);
/// <summary>
/// Add basic metadata part structure.
/// </summary>
/// <param name="doc">The document</param>
private static void AddMetadata(SpreadsheetDocument doc)
doc.WorkbookPart.AddNewPart<CellMetadataPart>();
doc.WorkbookPart.CellMetadataPart.Metadata = new Metadata { MetadataTypes = new MetadataTypes() };
/// <summary>
/// Add the metadata type used by all the metadata we're adding
/// </summary>
/// <param name="doc"></param>
private static void AddMetadataType(SpreadsheetDocument doc)
var metadata = doc.WorkbookPart.CellMetadataPart.Metadata;
var metadataType = new MetadataType
Name = METADATA_TYPE_NAME,
Assign = false,
CellMeta = false,
ClearContents = false,
ClearAll = false,
ClearComments = true,
ClearFormats = true,
Coerce = false,
Copy = true,
Delete = false,
Edit = true,
Merge = true,
MinSupportedVersion = 0U,
PasteAll = true,
PasteBorders = false,
PasteColWidths = false,
PasteComments = false,
PasteDataValidation = false,
PasteFormats = false,
PasteFormulas = false,
PasteNumberFormats = false,
PasteValues = true,
RowColumnShift = true,
SplitAll = false,
SplitFirst = false
metadata.MetadataTypes.AppendChild(metadataType);
/// <summary>
/// Add future metadata blocks which contain the actual metadata for each cell.
/// They are referenced by the metadata records.
/// </summary>
/// <param name="doc">The document</param>
private static void AddFutureMetadata(SpreadsheetDocument doc)
var metadata = doc.WorkbookPart.CellMetadataPart.Metadata;
var futureMetadata = metadata.AppendChild(new FutureMetadata());
futureMetadata.Name = METADATA_TYPE_NAME;
futureMetadata.Count = NumCells;
// Future metadata area
for (var i = 0; i < NumCells; i++)
// The metadata for each cell will be single FutureMetadataBlock containing an extension list with a single extension.
FutureMetadataBlock futureMetadataBlock = futureMetadata.AppendChild(new FutureMetadataBlock());
ExtensionList extLst = futureMetadataBlock.AppendChild(new ExtensionList());
Extension ext = extLst.AppendChild(new Extension());
ext.Uri = EXTENSION_URI;
ext.AddNamespaceDeclaration("x", SPREADSHEET_ML_NS);
ext.SetAttribute(new OpenXmlAttribute("value", ext.Uri, string.Format("test value {0}", i)));
/// <summary>
/// Add metadata records which point to each future metadata block.
/// They are in turn referenced by the cells.
/// </summary>
/// <param name="doc">The document</param>
private static void AddMetadataRecords(SpreadsheetDocument doc)
var metadata = doc.WorkbookPart.CellMetadataPart.Metadata;
// Value metadata area
ValueMetadata valueMetadata = metadata.AppendChild(new ValueMetadata());
for (uint i = 0; i < NumCells; i++)
// Type is 1-indexed, index into future metadata is 0-indexed
var metadataBlock = valueMetadata.AppendChild(new MetadataBlock());
var metadataRecord = metadataBlock.AppendChild(new MetadataRecord());
metadataRecord.Val = i;
metadataRecord.TypeIndex = (uint)1;
/// <summary>
/// Associate existing cells with existing metadata.
/// </summary>
/// <param name="doc">The document</param>
private static void AssociateCellsWithMetadata(SpreadsheetDocument doc)
for (uint i = 0; i < CellSpecs.Length; i++)
var cellSpec = CellSpecs[i];
var cell = GetCell(doc, cellSpec.Sheet, cellSpec.Column, cellSpec.Row);
if (cell == null)
throw new ArgumentException(string.Format("Cell {0} not found in row {1} of sheet {2}", cellSpec.Column, cellSpec.Row, cellSpec.Sheet));
cell.ValueMetaIndex = i;
/// <summary>
/// Get a cell given the document, sheet name, column name and row index.
/// </summary>
/// <param name="doc">The document</param>
/// <param name="sheetName">The sheet name</param>
/// <param name="columnName">The column name</param>
/// <param name="rowIndex">The row index</param>
/// <returns>The cell</returns>
private static Cell GetCell(SpreadsheetDocument doc, String sheetName, String columnName, uint rowIndex)
var row = GetRow(doc, sheetName, rowIndex);
if (row == null)
throw new ArgumentException(string.Format("Row '{0}' not found", rowIndex));
return row.Elements<Cell>().Where(c => c.CellReference.Value.StartsWith(columnName)).FirstOrDefault();
/// <summary>
/// Get a worksheet part by sheet name.
/// </summary>
/// <param name="document">The document</param>
/// <param name="name">The sheet name</param>
/// <returns>The worksheet part</returns>
private static WorksheetPart GetWorksheetPartByName(SpreadsheetDocument document, string name)
// Get Sheet by name from Sheets in Workbook
var sheet = document.WorkbookPart.Workbook.GetFirstChild<Sheets>().Elements<Sheet>().Where(x => x.Name == name).FirstOrDefault();
// Lookup WorksheetPart by Id
return sheet == null ? null : (WorksheetPart)document.WorkbookPart.GetPartById(sheet.Id.Value);
/// <summary>
/// Get a row given the document, sheet name and row index.
/// </summary>
/// <param name="doc">The document</param>
/// <param name="sheetName">The sheet name</param>
/// <param name="rowIndex">The row index</param>
/// <returns>The row</returns>
private static Row GetRow(SpreadsheetDocument doc, String sheetName, uint rowIndex)
var worksheetPart = GetWorksheetPartByName(doc, sheetName);
if (worksheetPart == null)
throw new ArgumentException(string.Format("Sheet '{0}' not found", sheetName));
return worksheetPart.Worksheet.GetFirstChild<SheetData>().Elements<Row>().Where(r => r.RowIndex == rowIndex).First();
struct CellSpec
public string Sheet;
public string Column;
public uint Row;

If you create a metadatatype with a single metdata block, and you reference that in your vm/cm cell attribute using a *one* based index, Excel seems to see the link and it honors it when saving the spreadsheet.
So, I ended up with something like:
<c ... cm="1"/> (I'm dealing with cell metadata, but the concept is equivalente to value metadata)
<metadataTypes count="1">
  <metadataType name="MyMetaType" .../>
</metadataTypes>
<futureMetadata count="1" name="MyMetaType">
  <bk>
    <extLst><ext
uri="http://example" xmlns:x="http://example"><x:val>87</x:val></ext></extLst>
  </bk>
</futureMetadata>
<cellMetadata count="1">
  <bk><rc
t="1" v="0"/></bk> <!-- this is what gets referenced as cm=1 on the cell -->
</cellMetadata>
Hope this helps. 

Similar Messages

  • I was reading an earlier post about upgrading to 10.9.2 and still using Office for Mac Excell 2004.  Will Excell 2004 work with OS 10.9.2 or is there an Open Office I can use?

    I currently have 10.9.2 and just purchased Office 365.  The 365 won't work for what I want to do.  Need to go backe to Excell 2004.  Is there anyway to do this with my current OS?  Need to interface with a Windows 2003 Excell user.

    Need to interface with a Windows 2003 Excell user.
    First, MS Office 2004 will not work on versions of OS X Lion or later including your 10.9.2.  On Mavericks you need Office 2011.
    Second, the difference between Excel formats in Office 2008/2011 vs. earlier versions of Excel is that Office 2008/20011 uses the ".xlsx" filetype but earlier versions including Windows Excel 2003 use the older ".xls" filetype.  The older versions of Excel can't open the newer ".xlsx" filetype ... but there is a way you can exchange Excel files between the newer and older versions of Excel!
    In Office 2008/2011 just SAVE AS Excel 97-2004 Workbook (.xls) if you need to use or exchange your Excel file with earlier versions of Excel, Windows or Mac.  And, going the other way, Excel 2008/2011 can open and use the older .xls files just fine.

  • Labview Excel Search data in one column and send back data from the second!

    Hello,
    I am still very new with using LABVIEW and I have a issue. I am using an excel worksheet with two columns and four rows. In one column I have  barcode numbers and in the second I have which sequence tests that the particular barcode has with it. I have it where I get the barcode scanned but what I need help with is having Labview search the excel sheet for a match on the Barcode (From column one) and return back the related test sequence that goes with it ( From Column two). Any suggestions???
    Joe

    Sorry!
    Attachments:
    Excel String Search.vi ‏50 KB
    Barcode.xlsx ‏10 KB

  • Bridge CS6 Mac XMP File Info Panel Bug: can't copy and paste metadata

    The cmd-keys / shortcuts doesn't work in the xmp file info panel btw. in the xmp / iptc fields (e.g. cmd+c, cmd+v, ...) of Adobe Bridge CS6 (Mac OS 10.6.8 and 10.7.3). You are not able to cut and paste info from one box to another like previous versions.
    This bug only appears in the xmp file info window (opened via alt+i) in Bridge CS6 - if you edit information or metadata in the file info panel in Photoshop CS6 copy and paste from one field to another works.
    The shortcuts also work under Windows (tested under Vista).
    I noticed this minor bug already one in the Photoshop CS6 Beta more than one months ago. I hoped that this was corrected in the official test version, but unfortunately it is not. Although it is a minor bug, it is IMHO a basic function and would be very helpful in my daily work - it is too bad, that such a small thing is making working with the application a little bit annoying.

    Thanks! If there is a workaround or simple solution, I would be very glad if you could inform me.
    Christian
    (signature removed by the Admin)
    Am 14.05.2012 um 13:49 schrieb FrankBiederich:
    Re: Bridge CS6 Mac XMP File Info Panel Bug: can't copy and paste metadata
    created by FrankBiederich in XMP SDK - View the full discussion
    Thanks for your report; we'll look into it.
    Frank
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: Re: Bridge CS6 Mac XMP File Info Panel Bug: can't copy and paste metadata
    To unsubscribe from this thread, please visit the message page at Re: Bridge CS6 Mac XMP File Info Panel Bug: can't copy and paste metadata. In the Actions box on the right, click the Stop Email Notifications link.
    Start a new discussion in XMP SDK by email or at Adobe Forums
    For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.
    Message was edited by: Arpit Kapoor

  • Annoying but not fatal bug uncovered in Aperture file size metadata.

    The bug described below was found as a result of testing the relative print sharpness of the Aperture print routines. I printed an adjusted Canon 5D image with Aperture's print routine to a 4X6, 300ppi print output, then took the same image through P'shop, (as a PSD) downsized the file to the same dimensions and converted it to 8-bit color depth. Then printed the returned file through Aperture.
    To my surprise when I was performing this comparison, I found that the file size shown in the metadata panel of the test file was not reduced, even though I had significantly downsized the file (from an "outbound" 72.2GB to an "inbound" file of slightly less than 7GB. So I repeated the round trip to P'shop, using the OSX Inspector to examine the relevant .approject size at three points in the workflow:
    1) Before executing the "Open in External Editor" command;
    2) After the PSD version had been created by Aperture; and
    3) After re-sizing the file in P'Shop and saving it back to Aperture.
    The net of the test was as follows:
    1) The size of the base (pre-export) .approject increased by approximately 72.2GB when it created the 16-bit PSD file for export to P'shop - exactly what the metadata showed and what I expected for a 5D file at 16-bit color depth.
    2) When the resized file was returned from P'shop, the base .approject file was now only 7.5GB larger, indicating the size of the returned file was in fact reduced by the downsizing.
    So the problem is not creation of an abnormally large Aperture PSD file. The metadata file size is simply not updated when the downsized file is returned from P'shop.
    I submitted a bug report to Apple on this, but I'm not sure what priority it will get. So this is an FYI in case others have observed a similar phenomenon and been concerned about it.
    BTW: The file downsized via the P'Shop round trip was noticeably sharper on printing (from Aperture) than the print produced directly out of Aperture. So it appears the print output sharpening routines in Aperture still need considerable improvement. That's the improvement I'd rather have Apple spending their time on than an anoying but not fatal bug in file size metadata.
    Mike
    PowerMac G5 Dual 2.0GHz, Radeon X800XT Graphics Card; MacBookPro 2.0Ghz   Mac OS X (10.4.6)   iMac800 and Powerbook G4 also in household

    I was trying to imagine how you were managing taking more than a few photographs if your files were increasing the space take by 72GB a pop.
    I was also imagining a camera the size of an aircraft carrier.

  • [svn] 3233: Fix for bug related to see tag, [Exclude] metadata, and extra lines in mxml examples block.

    Revision: 3233
    Author: [email protected]
    Date: 2008-09-16 12:57:29 -0700 (Tue, 16 Sep 2008)
    Log Message:
    Fix for bug related to see tag, [Exclude] metadata, and extra lines in mxml examples block.
    Bugs: SDK-16886
    QA: Yes
    Doc:
    Reviewed By: Pete F
    Tests: checkintests
    Ticket Links:
    http://bugs.adobe.com/jira/browse/SDK-16886
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/asdoc/TopLevelClassesGenerator.ja va

    Remember that Arch Arm is a different distribution, but we try to bend the rules and provide limited support for them.  This may or may not be unique to Arch Arm, so you might try asking on their forums as well.

  • BUG in Excel 2010 SUMIF & SUMIFS functions [EDIT: also AVERAGEIF & -IFS]

    I am quite certain that there is a bug in the implementation of the SUMIF function of Excel 2010. In certain special cases the function returns
    its evaluation argument instead of the correct result. This bug is reproducible in Excel 2010, but does not occur in Excel 2007 (or earlier, as far as I can tell).
    The SUMIF function accepts the arguments "Range", which is the range of identifiers which the function evaluates against; "Criteria", which is
    the criteria that defines which members of "Range" will be chosen to sum, and "Sum_range", which is the (optional) range of values to sum. "Range" and "Sum_range" do not need to reside on the same worksheet in order for the function to return correct results.
    This means that "Range" and "Sum_range" can refer to the same column of different worksheets, and this is where the bug occurs. As an example,
    say we have the formula =SUMIF(Sheet1!E:E;2;Sheet2!E:E). This will return 2 (i.e. the "Criteria" argument), regardless of which values are in column E of Sheet2. If we move the data in Sheet2 to column D or F, however, the same formula (e.g. =SUMIF(Sheet1!E:E;2;Sheet2!F:F)
    will return the correct result.
    I have just noticed that the same error occurs with the SUMIFS function.
    Bug resolution please? :)

    Hi!
    An alternative methd don't solve my problem. Although I state that the 32bit version of Excel 2010 is now corrected of this bug. I wonder why the 64bit version is not....  I have to work with large Excel files and with this king of bugs I can't get
    the most of 64bit Excel.
    I'm surprised that no alternative methods of calculation will work in Excel 2010 64-bit and be compatible with other versions.
    So what other functions do not work?
    I guess SUMPRODUCT also doesn't work when referring to a range in another workbook. That is one of the ways we used to get the same results as AVERAGEIF before that function became available in 2007.  There are also array formulas that can refer to
    other worksheets.
    Or is your problem solely related to not being able to use particular functions in Excel 2010 64-bit, and not to solving your calculation problem?
    Ron
    I've upgraded the Office version from 2007 to 2010 64bit and I want to use my earlier Excel files to calculate and update data that I need to use in another software.
    I noticed that the averageif and sumif formulas don't update their values if they refer to other worksheets or workfiles and after a web search I get to this forum.
    I inferred that these bugs were corrected for all versions of Excel 2010… that’s not the case!
    My workfiles are huge and I have to do calculations between workfiles and worksheets, update existing links, and so on… Excel 2010 64bit perform very well in
    my machine in terms of speed! But not with these bugs!!!
    Since I have not the time to redo all my previous work (done in Excel 2007) you can say that my problem solely relates to not being able to use particular functions
    in Excel 2010 64-bit!!! I have deadlines!!!
    I suppose that Microsoft would gladly thank its customers to report bugs of its products and would try to solve them! I guess wrong!!! Sorry for that!

  • Bug: Keywords behave incorrectly after "Read Metadata from File"

    (Happens in LR3.4 RC and probably also in previous versions... but I am not sure if it happened in LR2)
    The problem seems tro be somthing like de-sync of database status and what we see on the screen.
    1) Let's say we have a photo with keyword "abc"
    2) Click in the Keyword List on the arrow around the "abc" keyword to show only photos with this keyword (single one), leave the filter on this settings
    2) Save Metadata to File
    3) Edit XMP in an external application, add new keyword "def"
    4) Read Metadate from File
    5) Now what happens is: The photos disappers from the screen as if it lost the "abc" keyword (weird), but if you look at the Keyword List, the "abc" keyword has still 1 photo attached to it. Also, if you release the filter and find the photo, it clearly has the "abc" and "def" keywords in the Keywording panel. And you can search for this keyword in the text filter (works correctly), but if you click on the arrow around the "abc" keyword, the photo is not shown.
    6) If you restart the Lightroom, it will work correctly again.
    I have an own application that is able to modify the XMP and the modifications may not be perfect, but in my opinion, this shouldn't happen when reading the metadata. If any developer is reading this, I can supply a file with original and changed metadata for debugging.
    It would be great it this could be resolved.
    Thanks!

    Please do report your find with the details you state (well done!) here: https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform
    Thanks.........

  • Probable bug in Kodo class handling code (Beta 2.2)

    I have a test class "Widget" that has two attributes, name and
    mark. I am encountering a curious error in the no-args
    constructor under some circumstances that looks like a bug.
    public class Widget
    private static Random random = new Random();
    private String name;
    private int mark;
    private Widget()
    public Widget(String name)
    this.name = name;
    mark = random.nextInt(1000);
    Typically, the test application constructs Widgets with a name.
    But since I believe that it is good practice for the application
    to define the no-args constructor even when it is only for the
    use of JDO, I have a private no-args constructor. As the class
    stands above, it compiles, enhances, and runs just fine.
    But if I copy the line "mark = random.nextInt(1000);" into the
    no-args constructor, the code compiles and enhances just fine,
    but bombs on running with the following error:
    javax.jdo.JDOFatalDataStoreException:
    The registered class "com.ysoft.jdo.book.widget.Widget"
    is not compiled or not longer exists. If the class has been deleted,
    unregister it before proceeding.
    NestedThrowables:
    java.lang.ExceptionInInitializerError
         at
    com.solarmetric.kodo.impl.jdbc.schema.DB.getPersistentTypes(DB.java:270)
         at com.solarmetric.kodo.impl.jdbc.JDBCPersistenceManagerFactory.setup
    (JDBCPersistenceManagerFactory.java:170)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerFactoryImpl.privateSetup
    (PersistenceManagerFactoryImpl.java:501)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerFactoryImpl.getPersistenceManager
    (PersistenceManagerFactoryImpl.java:61)
         at
    com.solarmetric.kodo.runtime.PersistenceManagerFactoryImpl.getPersistenceManager
    (PersistenceManagerFactoryImpl.java:50)
         at
    com.ysoft.jdo.book.widget.WidgetHandler.<init>(WidgetHandler.java:43)
         at com.ysoft.jdo.book.test.widget.TestWidget.main(TestWidget.java:18)
    Exception in thread "main"
    Using the schematool for -action refresh will yield a null pointer
    exception at the no-args constructor line that is setting the
    value of mark.
    After initially having the mark initialization code in the
    no-args constructor and puzzling over the error, I realized that
    it didn't make sense to set the value of mark in the no-args
    constructor, since JDO would later set it to whatever the value
    in the database was. But it seems to me that there should be no
    great harm in it, either. If mark is initialized with the value
    "42" instead of "random.nextInt(1000)", there are no problems.
    Any insights?
    David Ezzio
    Yankee Software

    David,
    I'm not quite sure what to do about this. I'll have to dig into the spec
    and get back to you.
    Here's what's happening:
    Upon compilation, your initialization of the static field 'random' is
    inserted into a 'static' block.
    Upon bytecode enhancement, a good deal of code is added to the 'static'
    block. This code is responsible for registering the class with the JDO
    system.
    One step of this registration process involves instantiating an object
    of type 'Widget' and passing it to JDOImplHelper.registerClass().
    This step is inserted into the static block before the initialization
    of 'random'.
    So, when the no-args constructor is invoked in preparation for the call
    to registerClass(), 'random' is still null. Hence the null pointer
    instruction.
    As a temporary workaround, move the 'random' initialization code into an
    init () method that is invoked from the constructors, and which
    initializes 'random' if it is null. Or just don't perform the
    initialization in the no-args constructor.
    -Patrick Linskey

  • Handle metadata of configuration objects when transported from DEV to QA?

    All,
    I was reading this blog /people/sravya.talanki2/blog/2005/11/02/overview-of-transition-from-dev-to-qa-in-xi
    <i>"Unlike IR when we import the scenarios in ID the configuration metadata will be lost and have to be manually entered in the QA ID. For Ex: Parameters like source directory, filename scheme, FTP server will vanish and have to be entered appropriately as required for QA sand box. After entering the metadata we need to activate all the scenario objects in the ID. After successful activation your interfaces are ready for testing."</i>
    From the above I understand there are somethings(like adapter metadata..) that has to be entered manually when the objects are transported from dev to QA.
    So my question is, for what all objects of ID needs metadata to be entered  manually in QA.
    Party?
    Business systems(business systems, bus servcies, integration process)?
    Communication channels?
    Receiver determination?
    Interface Determination?
    Sender Agreement?
    Receiver Agreement?
    I appreciate your reply
    Thanks
    KK

    Hi,
    first of all it's not adapter's metadata
    (adapter's metadata is something completely different)
    the "thing" that will dissapear is the adapters'
    configuration (configuration of your communication channels) - that's all
    RFC destination (idoc adapter) ftp server (file adapter) etc.
    basically all you need to do
    is to fill it one every system (QAT, PRD etc.)
    Regards,
    michal

  • BUG: ColdFusion does not handle conflicting cookies correctly

    (I have reported this as a bug - I'm posting it here to hopefully save people from having to go through the same process)
    If I've got a CF instance on test1.k9.edu, and my cookie jar has CFID/CFToken cookies for both 'test1.k9.edu' and '.k9.edu', CF behaves badly in two ways:
    1) A CFDump of COOKIE shows two entries for each of the CFID and CFToken cookies
    2) the values are identical, and match the first one set - NOT the most specific - 'test1.k9.edu' should always take precedence, but the CF behavior is that it only takes precedence if the browser got it before the '.k9.edu' value (browser in this case is FireFox 20.0.1)
    The net result is... that if I browse to foo.k9.edu and it sets CFID/CFToken cookies at the domain level... and then go to 'test1.k9.edu' which does not set domain cookies... I will not be able to maintain a session (assuming that 'test1' has the latest security fixes) at test1.k9.edu until I scrub my cookies - each request will take the '.k9.edu' values, reject them because they didn't originate locally... and issue new cookies (which will be ignored by the next request... and so on)
    This problem is not limited to CFID/CFToken cookies, although this is where the problem is most urgent, as it could be exploited to create a domain-wide denial of service (by effectively blocking session use for all CF instances in the domain)
    The test case is very simple  (change the domain in this example as appropriate for your installation)
    [for this example, all requests go to test1.k9.edu - adjust to match your domain]
    first request - run this:
    <cfcookie name="test1a" value="domain(domain cookie sent first first)" domain=".k9.edu">
    <cfcookie name="test1b" value="no-domain(non-domain cookie sent first)">
    second request - run this:
    <cfcookie name="test1a" value="no-domain(domain cookie sent first first)">
    <cfcookie name="test1b" value="domain(non-domain cookie sent first)" domain=".k9.edu">
    third request - run this:
    <cfdump var=#cookie#>
    ===============
    My tests were all done with FireFox 20.0.1 with ColdFusion 10 (stand-alone), updater 10 applied.  My web server is Apache 2.2.  The same problem is seen with CF9.0.2.
    The same tests run with Railo 3.3.4 (Tomcat 7) produced correct results (value seen in CFDump results is reliably from the most-specific cookie)

    I feel your pain, more so as you are trying to assist in making a product better. I would fire off an email to the top dog, Steve Jobs. As well, Apple should make a habit of trolling the forums here as they are where the real work of fixing and educating Apple customers takes place. I am amazed by the assistance I have had here and try to assist where I can while avoiding anything to make matters worse. Those Top Users just to my right deserve praise and an Apple goodie every now and then. There ought to be a hall of fame too.
    < Edited by Host >

  • Possible bug, at least serious problem, in the AS3.0 event architecture

    Event bubbling causes a compiler error when it should not.
    High up in the display list, a
    listener has been added for TypeBEvent which extends
    TypeAEvent.
    Lower in the display list, a
    different object dispatches a TypeAEvent, and sets bubbling to true
    (and possibly, cancellable to false).
    A Type Coercion error (#1034)
    results! The listener receives the bubbled event which is of the
    same type as the base class of the handler event type. The event
    object "cannot be converted" to the TypeBEvent it is
    receiving.
    Circumstances
    This situation came up in a real Flex project, where a video
    player that had been loaded as a module within another module
    dispatched a PROGRESS ProgressEvent, and a listener had been added
    to the higher level module for its ModuleEvent PROGRESS event,
    ModuleEvent subclasses ProgressEvent. The video player bubbled its
    event, and the compiler threw this error: "TypeError: Error #1034:
    Type Coercion failed: cannot convert
    flash.events::ProgressEvent@1f2de0d1 to mx.events.ModuleEvent."
    This compiler error does not make sense from a developer
    perspective, because it means any class lower on the display list
    can break the player (not the program, the player) simply by
    dispatching an event.
    Our team lost a great deal of (expensive) time trying to
    locate the source of this problem, since nothing about the compiler
    error – including the stack trace! – indicated the
    high-level class. In fact, the module developer didn't know
    anything about the high-level class which was compiled to a swc
    library, and the event being dispatched was in the flex class
    library, so neither end of the problem was very visible. Because
    the error only pointed to the video player class the developer
    naturally went into the flex classes first and tried to solve the
    problem in their scope before finally giving up and bringing the
    problem to others on the team.
    Truly a case where the software defeated team workflow.
    Our conclusion
    We love the new event framework but, this seems to come
    pretty close to qualifying as a bug. The high-level event listener
    simply should NOT have received, then choked the player on the
    bubbled base-class event. It should either receive it or not. If it
    did receive the event, the code in the handler could check whether
    the event target was appropriate... but instead the player breaks
    and does not provide any clue as to where, it only indicates the
    dispatching class as a culprit. Even short of fixing the problem,
    improving the error message so that the receiving event handler is
    clearly implicated would be a start.
    Again I am of the opinion that this compiler error should not
    take place at all because the top class subscribed specifically to
    the subclassed event type. A bubbled event that breaks the player
    due to an unrelated listener is just a huge black hole, especially
    when multiple developers are working on different tiers of a
    program.
    Could we get a reply from someone at Adobe on this issue?
    Thanks very much,
    Moses Gunesch

    If you create a metadatatype with a single metdata block, and you reference that in your vm/cm cell attribute using a *one* based index, Excel seems to see the link and it honors it when saving the spreadsheet.
    So, I ended up with something like:
    <c ... cm="1"/> (I'm dealing with cell metadata, but the concept is equivalente to value metadata)
    <metadataTypes count="1">
      <metadataType name="MyMetaType" .../>
    </metadataTypes>
    <futureMetadata count="1" name="MyMetaType">
      <bk>
        <extLst><ext
    uri="http://example" xmlns:x="http://example"><x:val>87</x:val></ext></extLst>
      </bk>
    </futureMetadata>
    <cellMetadata count="1">
      <bk><rc
    t="1" v="0"/></bk> <!-- this is what gets referenced as cm=1 on the cell -->
    </cellMetadata>
    Hope this helps. 

  • [svn:fx-trunk] 10075: Cleanups from the spark text changes and some bug fixes for VideoElement.

    Revision: 10075
    Author:   [email protected]
    Date:     2009-09-08 18:01:58 -0700 (Tue, 08 Sep 2009)
    Log Message:
    Cleanups from the spark text changes and some bug fixes for VideoElement.  Also some PARB changes for UIComponent.
    TitleBar: Changing the skin part type from Label to Textbase
    UIComponent: skipMeasure()->canSkipMeasurement() to be in line with GraphicElement.  This has been PARB approved.
    UIComponent: same with hasComplexLayoutMatrix...this replaces hasDeltaIdentityTransform.  This has been PARB approved.
    StyleProtoChain: cleanup around what interfaces to use
    TextBase: clean up code that?\226?\128?\153s no longer needed.
    VideoElement: Fixing 4 bugs:
    SDK-22824: sourceLastPlayed keeps track of what video file we?\226?\128?\153ve called play() with last.  This way if a user pauses the video and wants to start it up again at the same point, we can call play(null) on the underlying FLVPlayback videoPlayer.  However, anytime the souce changes, we want to null out sourceLastPlayed.  This was causing a bug when someone set the source to null and then reset it to it?\226?\128?\153s previous value.
    SDK-23034 (GUMBO_PRIORITY): This deals with some FLVPlayback quirks around sizing.  I had put in a fix so we weren?\226?\128?\153t setting width/height on the underlying videoPlayer too many times, but apparently we need to make sure it always gets called once.  Hopefully when switching to Strobe we can cleanup this logic...I put a FIXME in to do this.
    SDK-21947/ SDK-22533 - some video files don?\226?\128?\153t always send out a metadata event.  I?\226?\128?\153m not quite sure why this is, but in case this happens, we do a check in the ready handler to see whether we should call invalidateSize() to make sure it gets sized properly.
    QE notes:-
    Doc notes:-
    Bugs: SDK-22824, SDK-23034, SDK-21947, SDK-22533
    Reviewer: Glenn, Corey
    Tests run: checkintests, Button, GraphicTags, VideoElement, and VideoPlayer (some VideoPlayer were failing, but I think it should be fine)
    Is noteworthy for integration: Yes
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-22824
        http://bugs.adobe.com/jira/browse/SDK-23034
        http://bugs.adobe.com/jira/browse/SDK-21947
        http://bugs.adobe.com/jira/browse/SDK-22533
        http://bugs.adobe.com/jira/browse/SDK-22824
        http://bugs.adobe.com/jira/browse/SDK-23034
        http://bugs.adobe.com/jira/browse/SDK-21947
        http://bugs.adobe.com/jira/browse/SDK-22533
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleB ar.as
        flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as
        flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
        flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AddActionInstan ce.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransfor mInstance.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/RemoveActionIns tance.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicEleme nt.as

  • [svn:fx-3.x] 5072: Bug: LCDS-636 - None of the responder get called from the createItem

    Revision: 5072
    Author: [email protected]
    Date: 2009-02-25 13:27:34 -0800 (Wed, 25 Feb 2009)
    Log Message:
    Bug: LCDS-636 - None of the responder get called from the createItem
    QA: Yes (LCDS QA)
    Doc: No
    Checkintests Pass: Yes
    Ticket Links:
    http://bugs.adobe.com/jira/browse/LCDS-636
    Modified Paths:
    flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as

    If you create a metadatatype with a single metdata block, and you reference that in your vm/cm cell attribute using a *one* based index, Excel seems to see the link and it honors it when saving the spreadsheet.
    So, I ended up with something like:
    <c ... cm="1"/> (I'm dealing with cell metadata, but the concept is equivalente to value metadata)
    <metadataTypes count="1">
      <metadataType name="MyMetaType" .../>
    </metadataTypes>
    <futureMetadata count="1" name="MyMetaType">
      <bk>
        <extLst><ext
    uri="http://example" xmlns:x="http://example"><x:val>87</x:val></ext></extLst>
      </bk>
    </futureMetadata>
    <cellMetadata count="1">
      <bk><rc
    t="1" v="0"/></bk> <!-- this is what gets referenced as cm=1 on the cell -->
    </cellMetadata>
    Hope this helps. 

  • Can I use Power Query to Import a table from Excel sheet range which starts not from the top row?

    Hi,
    Being an experienced Excel user before Power BI, I am just starting to explore the M and Power Query capabilities, and need help already (ain't easy to google this use case somehow):
    I need to import the table which sits in the Excel file with header row in the row 17 of Excel sheet, with some metadata header in the preceding rows of the columns A and B.
    01: Report name, Quick Report
    02: Report Date, 1/1/2014
    17: Employee Name, Manager, etc...
    18: John Doe, Matt Beaver, etc.
    Both (a) direct attempt to load as Excel file and (b) the indirect way through [From Folder] and formula in custom column -- both lead to the same error: "[DataFormat.Error] External table is not in the expected format."
    Specifically, I tried to use the [Power Query -> From File -> From Folder] functionality, select an Excel file and add a custom column to access the binary content: [Add Custom Column] with formula "=Excel.Workbook([Content])".
    It looks like Power Query expects a rectangular range with headers full-width followed by a contiguous table range to import anything, and refuses to load if that is not the case...
    QUESTION: Is there any way to load whatever-formatted data from Excel first, and then manipulate the overall imported range (like referring to rows starting from 17th using "Table.SelectRows" etc.) to read the actual data? Reading and using
    the metadata from header would be a bonus, but that comes second... The main issue is to get something from a non-regular Excel file to later work with using M formulae ...
    Thanks!
    SAM

    Finally found the answer to this one in ():
    You Cannot Open a Password-Protected Workbook
     If the Excel workbook is protected by a password, you
      cannot open it for data access, even by supplying the correct password with
      your connection settings, unless the workbook file is already open in the
      Microsoft Excel application. If you try, you receive the following error
      message:
    Could not decrypt file.
    ANSWER: So, will have either weave in the work with temporary unprotected files or requires opening them before updating the data source (although this almost defeats the purpose of automation...)
    ANSWER to ORIGINAL QUESTION: password was preventing Power Query from reading the Excel file. For solution see above.
    Thanks anyway for participation and inspiration, Imke!

Maybe you are looking for

  • Browser doesn't display applets (classes)

    hi all, i am sure every beginner faced the same problem though i am not a beginner, i am facing this strange problem, and i can't figure out where the proble is . i just started developing simple swing applications. first i want to try the examples g

  • Fullscreen doesn't work with Silverlight for Netflix movies

    Recently, when I restarted watching Netflix, I can't go to Fullscreen. I called Netflix and they had me reinstall Silverlight, which I did, but to no avail. Any ideas here?

  • Position of an non modal external window

    How is it possible to set the position of an non modal external window? I've tried it over window.setWindowPosition(new WDCssSize(500,WDWindowUnitOfLength.PX),new WDCssSize(200, WDWindowUnitOfLength.PX)); and also over window.setWindowPosition(500,20

  • I cannot select an app without it being highlighted by a box and double pressing

    The same applies with scrolling through home screens. To do so i must select the dots so they are highlighted and then double press. I'm really not sure how it's happened but would like to know how to resolve it as i also can't scroll downwards Help

  • Trouble Installing Office 365

    Using the OfficeDeploymentTool.exe I was trying to follow this post https://marckean.wordpress.com/2013/07/01/fully-automate-the-installation-of-office-365/to install Office 365.    I did what this post said, I copy/paste the .XML settings into my .X