Author: dkulp
Date: Thu Nov 12 22:36:27 2009
New Revision: 835613
URL: http://svn.apache.org/viewvc?rev=835613&view=rev
Log:
Use a new string to make sure the doc doesn't hold onto things strongly
Don't wrapper the woodstox locator objects to make sure they aren't held
onto strongly
Modified:
cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
Modified:
cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=835613&r1=835612&r2=835613&view=diff
==============================================================================
---
cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
(original)
+++
cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
Thu Nov 12 22:36:27 2009
@@ -743,7 +743,7 @@
}
public static Document read(XMLStreamReader reader, boolean recordLoc)
throws XMLStreamException {
Document doc = DOMUtils.createDocument();
- doc.setDocumentURI(reader.getLocation().getSystemId());
+ doc.setDocumentURI(new String(reader.getLocation().getSystemId()));
readDocElements(doc, doc, reader, true, recordLoc);
return doc;
}
@@ -751,7 +751,7 @@
public static Document read(DocumentBuilder builder, XMLStreamReader
reader, boolean repairing)
throws XMLStreamException {
Document doc = builder.newDocument();
- doc.setDocumentURI(reader.getLocation().getSystemId());
+ doc.setDocumentURI(new String(reader.getLocation().getSystemId()));
readDocElements(doc, reader, repairing);
return doc;
}
@@ -893,34 +893,33 @@
}
}
}
- private static void addLocation(final Document doc, Node node,
- XMLStreamReader reader, boolean recordLoc)
{
+ private static void addLocation(Document doc, Node node,
+ XMLStreamReader reader,
+ boolean recordLoc) {
if (recordLoc) {
- final Location loc = reader.getLocation();
+ Location loc = reader.getLocation();
if (loc != null && (loc.getColumnNumber() != 0 ||
loc.getLineNumber() != 0)) {
+ final int charOffset = loc.getCharacterOffset();
+ final int colNum = loc.getColumnNumber();
+ final int linNum = loc.getLineNumber();
+ final String pubId = loc.getPublicId() == null ?
doc.getDocumentURI() : loc.getPublicId();
+ final String sysId = loc.getSystemId() == null ?
doc.getDocumentURI() : loc.getSystemId();
Location loc2 = new Location() {
public int getCharacterOffset() {
- return loc.getCharacterOffset();
+ return charOffset;
}
public int getColumnNumber() {
- return loc.getColumnNumber();
+ return colNum;
}
public int getLineNumber() {
- return loc.getLineNumber();
+ return linNum;
}
public String getPublicId() {
- if (loc.getPublicId() == null) {
- return doc.getDocumentURI();
- }
- return loc.getPublicId();
+ return pubId;
}
public String getSystemId() {
- if (loc.getSystemId() == null) {
- return doc.getDocumentURI();
- }
- return loc.getSystemId();
+ return sysId;
}
-
};
node.setUserData("location", loc2, new UserDataHandler() {
public void handle(short operation, String key, Object
data, Node src, Node dst) {
Modified:
cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java?rev=835613&r1=835612&r2=835613&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
(original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/wsdl11/WSDLManagerImpl.java
Thu Nov 12 22:36:27 2009
@@ -222,7 +222,7 @@
Document doc;
try {
doc = StaxUtils.read(StaxUtils.createXMLStreamReader(src), true);
- doc.setDocumentURI(src.getSystemId());
+ doc.setDocumentURI(new String(src.getSystemId()));
} catch (Exception e) {
throw new WSDLException(WSDLException.PARSER_ERROR,
e.getMessage(), e);
}