Skip to Main Content

Embedded Technologies

Announcement

For appeals, questions and feedback, please email oracle-forums_moderators_us@oracle.com

JavaME Internal DOM classes

2987002Jul 8 2015 — edited Jul 13 2015

Hi,

I need to implement my own org.w3c.dom.Element class that later on is used as a node in a org.w3c.dom.Document instance.
My own element class essentially implements the required interface and everything works fine, at least in a Java standard edition.

Running it on a micro edition (v 8) I do see some unexpected behaviour. I get a class cast exception.

java.lang.ClassCastException
  - com/sun/ukit/dom/XParent.appendChild(), bci=21

Looking for the code I found the following on [1]

  public Node appendChild(Node newChild)
  throws DOMException
  {
  if (_isRO())
  throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "");

  XNode nchild = (XNode)newChild;
  if (newChild.getNodeType() != DOCUMENT_FRAGMENT_NODE) {
  // Append a new child node.
  _appendChild(nchild);
  _childAdded(nchild);
  } else {
  // Recursive call to appendChild for each child of doc fragment
  while (nchild.getLength() > 0)
  appendChild(nchild.item(0));
  }
  return nchild;
  }


It looks like each newChild node gets casted to XNode. First of all I wonder why and second I would like to know how I can now write my own Node classes. I cannot simply extend XNode given that it seems internal somehow.

Any ideas? Thank you very much for every hint,

-- Daniel


P.S: Sorry for cross posting the same question on JavaME Internal DOM classes (Java Micro Edition forum at JavaRanch)

[1] https://svn.java.net/svn/phoneme~svn/components/jsr280/branches/jsr280-cr-6781500/src/share/oi/com/sun/ukit/dom/XParent.java

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 10 2015
Added on Jul 8 2015
2 comments
832 views