Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P03
-
Fix Version/s: 4.1.1, EE-3.3.0.GA_P04
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Jetty 9 (9.2.7, 9.2.13)
-
Assignee Priority:P2
-
Support Case References:Support Case #13598 - https://icesoft.my.salesforce.com/5007000001SBhul
Description
It is not possible to upload files with the ace:fileEntry component on Jetty 9. ICE-10570 mentions similar issues with Jetty 9 and ICEfaces 4. When trying to upload a file the following error stack trace is thrown:
[STDERR] java.io.FileNotFoundException: C:\tmp\C:\Praca\BMC\workspaceR7.0\ICEfacesBasedOnOwui\src\main\webapp\mc3jznemooxn3rs48rva4v79\ice_file_8844744077071998930.tmp (The filename, directory name, or volume label syntax is incorrect)
[STDERR] at java.io.FileInputStream.open(Native Method)
[STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146)
[STDERR] at org.eclipse.jetty.util.MultiPartInputStreamParser$MultiPart.getInputStream(MultiPartInputStreamParser.java:203)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload$PartFile.transferFile(FileEntryUpload.java:787)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.uploadFile(FileEntryUpload.java:416)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.handleMultipartPortion(FileEntryUpload.java:271)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.afterPhase(FileEntryUpload.java:138)
[STDERR] at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
[STDERR] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
[STDERR] at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
[STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
[STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
[STDERR] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800)
[STDERR] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
[STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
[STDERR] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
[STDERR] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
[STDERR] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
[STDERR] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
[STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
[STDERR] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
[STDERR] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
[STDERR] at org.eclipse.jetty.server.Server.handle(Server.java:497)
[STDERR] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
[STDERR] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245)
[STDERR] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
[STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
[STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
[STDERR] at java.lang.Thread.run(Thread.java:745)
[STDERR] java.io.FileNotFoundException: C:\tmp\C:\Praca\BMC\workspaceR7.0\ICEfacesBasedOnOwui\src\main\webapp\mc3jznemooxn3rs48rva4v79\ice_file_8844744077071998930.tmp (The filename, directory name, or volume label syntax is incorrect)
[STDERR] at java.io.FileInputStream.open(Native Method)
[STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146)
[STDERR] at org.eclipse.jetty.util.MultiPartInputStreamParser$MultiPart.getInputStream(MultiPartInputStreamParser.java:203)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload$PartFile.transferFile(FileEntryUpload.java:787)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.uploadFile(FileEntryUpload.java:416)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.handleMultipartPortion(FileEntryUpload.java:271)
[STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.afterPhase(FileEntryUpload.java:138)
[STDERR] at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
[STDERR] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
[STDERR] at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
[STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
[STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
[STDERR] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800)
[STDERR] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)
[STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
[STDERR] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
[STDERR] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
[STDERR] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
[STDERR] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
[STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
[STDERR] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
[STDERR] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
[STDERR] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
[STDERR] at org.eclipse.jetty.server.Server.handle(Server.java:497)
[STDERR] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
[STDERR] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245)
[STDERR] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
[STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
[STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
[STDERR] at java.lang.Thread.run(Thread.java:745)
Issue Links
- depends on
-
ICE-10810 NullPointerException from EnvUtils.isJSF22
- Closed
Activity
Arran Mccullough
created issue -
Arran Mccullough
made changes -
Field | Original Value | New Value |
---|---|---|
Description |
It is not possible to upload files with the ace:fileEntry component on Jetty 9. When trying to upload a file the following error stack trace is thrown:
[STDERR] java.io.FileNotFoundException: C:\tmp\C:\Praca\BMC\workspaceR7.0\ICEfacesBasedOnOwui\src\main\webapp\mc3jznemooxn3rs48rva4v79\ice_file_8844744077071998930.tmp (The filename, directory name, or volume label syntax is incorrect) [STDERR] at java.io.FileInputStream.open(Native Method) [STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146) [STDERR] at org.eclipse.jetty.util.MultiPartInputStreamParser$MultiPart.getInputStream(MultiPartInputStreamParser.java:203) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload$PartFile.transferFile(FileEntryUpload.java:787) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.uploadFile(FileEntryUpload.java:416) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.handleMultipartPortion(FileEntryUpload.java:271) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.afterPhase(FileEntryUpload.java:138) [STDERR] at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189) [STDERR] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107) [STDERR] at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [STDERR] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800) [STDERR] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) [STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [STDERR] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [STDERR] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [STDERR] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [STDERR] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [STDERR] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) [STDERR] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [STDERR] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [STDERR] at org.eclipse.jetty.server.Server.handle(Server.java:497) [STDERR] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [STDERR] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) [STDERR] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [STDERR] at java.lang.Thread.run(Thread.java:745) |
It is not possible to upload files with the ace:fileEntry component on Jetty 9. [STDERR] java.io.FileNotFoundException: C:\tmp\C:\Praca\BMC\workspaceR7.0\ICEfacesBasedOnOwui\src\main\webapp\mc3jznemooxn3rs48rva4v79\ice_file_8844744077071998930.tmp (The filename, directory name, or volume label syntax is incorrect) [STDERR] at java.io.FileInputStream.open(Native Method) [STDERR] at java.io.FileInputStream.<init>(FileInputStream.java:146) [STDERR] at org.eclipse.jetty.util.MultiPartInputStreamParser$MultiPart.getInputStream(MultiPartInputStreamParser.java:203) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload$PartFile.transferFile(FileEntryUpload.java:787) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.uploadFile(FileEntryUpload.java:416) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.handleMultipartPortion(FileEntryUpload.java:271) [STDERR] at org.icefaces.ace.component.fileentry.FileEntryUpload.afterPhase(FileEntryUpload.java:138) [STDERR] at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189) [STDERR] at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107) [STDERR] at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116) [STDERR] at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [STDERR] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [STDERR] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:800) [STDERR] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587) [STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [STDERR] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) [STDERR] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) [STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) [STDERR] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) [STDERR] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [STDERR] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) [STDERR] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [STDERR] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) [STDERR] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) [STDERR] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [STDERR] at org.eclipse.jetty.server.Server.handle(Server.java:497) [STDERR] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) [STDERR] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:245) [STDERR] at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) [STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [STDERR] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [STDERR] at java.lang.Thread.run(Thread.java:745) |
Ken Fyten
made changes -
Assignee | Mircea Toma [ mircea.toma ] | |
Fix Version/s | EE-3.3.0.GA_P04 [ 12270 ] | |
Assignee Priority | P2 [ 10011 ] |
Mircea Toma
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Mircea Toma
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Mircea Toma
made changes -
Fix Version/s | EE-4.1.0.GA [ 12171 ] |
Mircea Toma
made changes -
Resolution | Fixed [ 1 ] | |
Status | Resolved [ 5 ] | Reopened [ 4 ] |
Mircea Toma
made changes -
Status | Reopened [ 4 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 4.1.1 [ 12972 ] | |
Fix Version/s | EE-4.1.0.GA [ 12171 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
The issue is caused by the call to javax.servlet.http.Part.write(fileName) which should save the uploaded content but the provided file path is absolute instead of relative as it is required (see https://docs.oracle.com/javaee/6/api/javax/servlet/http/Part.html#write(java.lang.String) ).
Modified PartFile.transferFile method to just use a FileOutputStream instead (just as we already do in ICEfaces4).