Issue Details (XML | Word | Printable)

Key: KERN-691
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Simon Gaeremynck
Reporter: Christian Vuerings
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Nakamura

We can't upload small images + JPEG images to the cropit service

Created: 09-Mar-2010 03:24   Updated: 22-Apr-2010 18:33
Component/s: Content - other
Affects Version/s: 0.3
Fix Version/s: 0.4

Time Tracking:
Original Estimate: 1 day
Original Estimate - 1 day
Remaining Estimate: 7 hours, 30 minutes
Time Spent - 30 minutes Remaining Estimate - 7 hours, 30 minutes
Time Spent: 30 minutes
Time Spent - 30 minutes Remaining Estimate - 7 hours, 30 minutes

File Attachments: None
Image Attachments:

1. nakamura_japan_home_0506.jpg
(58 kB)
Issue Links:
Depend
 


 Description  « Hide
Since the following change [1] we are not able to upload small and JPEG images.

JPEG Error:
09.03.2010 10:56:52.504 *ERROR* [0:0:0:0:0:0:0:1%0 [1268132212293] POST /var/image/cropit HTTP/1.1] org.sakaiproject.nakamura.image.CropItProcessor Can't parse this format. org.apache.sanselan.ImageReadException: Sanselan cannot read or write JPEG images.
at org.apache.sanselan.formats.jpeg.JpegImageParser.getBufferedImage(JpegImageParser.java:90)
at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1264)
at org.apache.sanselan.Sanselan.getBufferedImage(Sanselan.java:1185)
at org.sakaiproject.nakamura.image.CropItProcessor.crop(CropItProcessor.java:126)
at org.sakaiproject.nakamura.image.CropItServlet.doPost(CropItServlet.java:148)
at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:143)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:338)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:369)
at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:525)
at org.apache.sling.engine.impl.SlingMainServlet.processRequest(SlingMainServlet.java:448)
at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)
at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:59)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.sakaiproject.nakamura.persistence.TransactionManagerFilter.doFilter(TransactionManagerFilter.java:95)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.sakaiproject.nakamura.cluster.ClusterTrackingFilter.doFilter(ClusterTrackingFilter.java:87)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:326)
at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:207)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
at org.ops4j.pax.web.service.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.ops4j.pax.web.service.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
at org.ops4j.pax.web.service.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

With small images we get the following error:

09.03.2010 11:09:00.438 *ERROR* [0:0:0:0:0:0:0:1%0 [1268132940432] POST /var/image/cropit HTTP/1.1] org.apache.sling.engine.impl.SlingMainServlet service: Uncaught Throwable java.awt.image.RasterFormatException: (x + width) is outside raster
at sun.awt.image.IntegerInterleavedRaster.createWritableChild(IntegerInterleavedRaster.java:465)
at java.awt.image.BufferedImage.getSubimage(BufferedImage.java:1166)
at org.sakaiproject.nakamura.image.CropItProcessor.crop(CropItProcessor.java:140)
at org.sakaiproject.nakamura.image.CropItServlet.doPost(CropItServlet.java:148)
at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:143)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:338)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:369)
at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:525)
at org.apache.sling.engine.impl.SlingMainServlet.processRequest(SlingMainServlet.java:448)
at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:48)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:64)
at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:59)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.sakaiproject.nakamura.persistence.TransactionManagerFilter.doFilter(TransactionManagerFilter.java:95)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.sakaiproject.nakamura.cluster.ClusterTrackingFilter.doFilter(ClusterTrackingFilter.java:87)
at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:326)
at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:207)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
at org.ops4j.pax.web.service.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.ops4j.pax.web.service.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
at org.ops4j.pax.web.service.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)


[1] http://github.com/ieb/open-experiments/commit/8b4254e2a876abf1ba79fec32441c1650b08e61c#diff-8

 All   Comments   Work Log   Change History   Subversion Commits   git Commits      Sort Order: Ascending order - Click to sort in descending order
Christian Vuerings made changes - 15-Mar-2010 05:49
Field Original Value New Value
Link This issue is depended on by SAKIII-281 [ SAKIII-281 ]
Ian Boston added a comment - 16-Mar-2010 08:46
Could you attach a test image and curl to reproduce please.

Ian Boston made changes - 16-Mar-2010 08:46
Original Estimate 1 day [ 28800 ]
Remaining Estimate 1 day [ 28800 ]
Christian Vuerings added a comment - 16-Mar-2010 09:36
You should be able to use any jpg file you want for this.
But I'll one in attachment anyway.

I'll leave the curl command for now but here are the steps to reproduce:
1) go to http://3akai.sakaiproject.org/dev/my_sakai.html (or your local instance)
2) log-in with admin - admin
3) Click change pic
4) Click browse and find a jpg file
5) Select an area on the image and hit save selection.

Then you should be able to see the error in the log files.

The parameters we send could be the following:
  _charset_ utf-8
  dimensions 256x256
  height 247
  img /_user/public/a1/88/1c/06/user2/profilepicture
  save /_user/public/a1/88/1c/06/user2/
  width 247
  x 149
  y 169


The small images fix was a front-end problem which has been solved (we send wrong params to the back-end)
But the jpg issues are something only the back-end can solve.

Christian Vuerings made changes - 16-Mar-2010 09:36
Attachment nakamura_japan_home_0506.jpg [ 19911 ]
Simon Gaeremynck logged work - 16-Mar-2010 15:36
Time Worked: 30 minutes
<No comment>
Simon Gaeremynck added a comment - 16-Mar-2010 15:36
Sanselan can read/write in many formats. unfortunately JPEG isn't one of them.
I've added in the special case of JPEGs.

Simon Gaeremynck made changes - 16-Mar-2010 15:36
Status Open [ 1 ] Resolved [ 5 ]
Assignee Simon Gaeremynck [ sg555 ]
Resolution Fixed [ 1 ]
Simon Gaeremynck made changes - 16-Mar-2010 15:37
Remaining Estimate 1 day [ 28800 ] 7 hours, 30 minutes [ 27000 ]
Time Spent 30 minutes [ 1800 ]
Zach A. Thomas added a comment - 12-Apr-2010 11:52

Ian Boston added a comment - 22-Apr-2010 18:33
Closing as resolved issue has been released.

Ian Boston made changes - 22-Apr-2010 18:33
Status Resolved [ 5 ] Closed [ 6 ]