After trying different ways to reach 'onuploadcomplete' event, I decided to look into JBOSS Issue Tracking System and found an opened ticket RF-10978 which gave me a clue on the problem I've described above.
Here's a quote by issue ticket creator:
Including the Primefaces 2 library along with Richfaces 4.0 Final causes the Richfaces fileUpload component to break. In the JBoss logs this message appears when rendering the page with the component:
"JSF1091: No mime type could be found for file fileUploadProgress. To resolve this, add a mime-type mapping to the applications web.xml"
Also when monitoring the HTTP traffic in Fiddler I see this entry over and over. Appears to be stuck in some loop
And so, I decided to get rid of primefaces by removing it's dependency inside project pom.xml file:
Finally, 'oncomplete' event has been fired properly, after file has been uploaded via <rich:fileUpload> component.
However, as I see the issue ticket has opened status, this means it's not solved yet and I hope will be when I really need to use Primefaces.
I've added in a sample Maven application as well to this issue.
I'm having the exact same issue.
And on top of that, the "maxFilesQuantity" attribute doesn't exist anymore in RichFaces 4....
There is no way to limit the number of uploaded files!!!
Why does it always happen that new versions (boldly called "Final"!!) of big frameworks/libraries lack some basic/important functionalities that were present in the old version?
The "Require no more, promise no less" is long time dead, and spinning in its grave.
No wonder more and more developers turn to other languages and frameworks.
Edit: updrading to 4.1.0-SNAPSHOT fixed the issue.