I'm currently on TomEE 1.7.1 PLUS (CXF 2.6.14). CXF has a bug - it cannot
handle File attachments if file name contains single quote symbol ("):
-----------------------------------------------------------------------
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1954)
~[na:1.8.0_25]
at
org.apache.cxf.attachment.AttachmentUtil.createAttachment(AttachmentUtil.java:315)
~[cxf-api-2.6.14.jar:2.6.14]
at
org.apache.cxf.attachment.AttachmentDeserializer.createAttachment(AttachmentDeserializer.java:289)
~[cxf-api-2.6.14.jar:2.6.14]
at
org.apache.cxf.attachment.AttachmentDeserializer.readNext(AttachmentDeserializer.java:192)
~[cxf-api-2.6.14.jar:2.6.14]
at
org.apache.cxf.attachment.LazyAttachmentCollection$1.hasNext(LazyAttachmentCollection.java:95)
~[cxf-api-2.6.14.jar:2.6.14]
at
org.apache.cxf.attachment.LazyDataSource.load(LazyDataSource.java:51)
~[cxf-api-2.6.14.jar:2.6.14]
at
org.apache.cxf.attachment.LazyDataSource.getInputStream(LazyDataSource.java:88)
~[cxf-api-2.6.14.jar:2.6.14]
at
javax.activation.DataHandler.getInputStream(DataHandler.java:238)
~[na:1.8.0_25]
-----------------------------------------------------------------------
CXF source (org.apache.cxf.attachment.AttachmentUtil.java):
if (fileName.indexOf("\"") > 0) {
fileName = fileName.substring(fileName.indexOf("\"") + 1,
fileName.lastIndexOf("\""));
This is WRONG: if fileName contains single quote symbol, begin index becomes
larger than end index, and String.substring() blows up (as seen above). I
cannot control file names - files are external to my system.
This bug seems to be fixed in CXF 2.7. Can I (and how) upgrade CXF in TomEE
PLUS?
--
View this message in context:
http://tomee-openejb.979440.n4.nabble.com/How-to-upgrade-CXF-to-2-7-tp4673228.html
Sent from the TomEE Users mailing list archive at Nabble.com.