Android Camera, does not return to onActivityResult and resets calling activity

0

What is surprising is that the documented way of making this shit work does not work.

http://developer.android.com/guide/topics/media/camera.html

Scroll to Image Capture Intent,

// photoIDFile is type File
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoIDFile)); // set the image file name

With this it just does not work. My Uri is correct, I have

file:///data/data/com.samagra.operatorapp/files/photo1441253398999.jpg

But this gets the camera to return.

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoIDFile).toString()); // set the image file name

Now the camera resets my activity and I loose my activity, it goes back SHAMELESSLY.

I had to read through the Camera documentation on android.developer.com and read Building a Camera App section. This worked well.

Advertisements

Dreaded Exception SEVERE: A message body writer for Java class, MIME media type application/json

0

Gone are the days when error messages made sense. Something as simple as Annotation Missing has been replaced by something silly as MIME media type application.

The crazy exception below translates to having the following annotations in the ConsolidationSearchForUsersResponse class

@XmlRootElement(name = "Response")
@XmlAccessorType(XmlAccessType.FIELD)

</code>

Crazy Log shit

INFO com.mcruiseon.atom.endpoint.EndPointConsolidation - SearchUsers,
Aug 13, 2015 12:46:16 AM com.sun.jersey.spi.container.ContainerResponse write
com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and Java type class com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and MIME media type application/json was not found
Aug 13, 2015 12:46:16 AM com.sun.jersey.spi.container.ContainerResponse write
SEVERE: The registered message body writers compatible with the MIME media type are:
application/json ->
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$App
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$App
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.json.impl.provider.entity.JSONWithPaddingProvider
com.sun.jersey.server.impl.template.ViewableMessageBodyWriter
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy

Aug 13, 2015 12:46:16 AM com.sun.jersey.spi.container.ContainerResponse logException
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and Java type class com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and MIME media type application/json was not found
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1448)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and Java type class com.mcruiseon.atom.endpoint.response.ConsolidationSearchForUsersResponse, and MIME media type application/json was not found
... 28 more

Aug 13, 2015 1:02:09 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/AtomEndPoint] has started
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/AtomEndPoint] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/AtomEndPoint] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9b9t027hydr9jt|140323e]-AdminTaskTimer] but has failed to stop it. This is very likely to create a memory leak.
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/AtomEndPoint] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9b9t027hydr9jt|140323e]-HelperThread-#0] but has failed to stop it. This is very likely to create a memory leak.
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/AtomEndPoint] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9b9t027hydr9jt|140323e]-HelperThread-#1] but has failed to stop it. This is very likely to create a memory leak.
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/AtomEndPoint] appears to have started a thread named [C3P0PooledConnectionPoolManager[identityToken->z8kfsx9b9t027hydr9jt|140323e]-HelperThread-#2] but has failed to stop it. This is very likely to create a memory leak.
Aug 13, 2015 1:02:09 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
SEVERE: The web application [/AtomEndPoint] appears to have started a thread named [Thread-5] but has failed to stop it. This is very likely to create a memory leak.

GIT SHIT (deep shit, crazy tool)

0

Disclaimer Smaller Agile Teams (5 members)
I miss the svn days. Frankly the only issue and pain svn gives is when you copy folders from one place to another within it. That is the only time when it gives you grief without bounds. If you just create the new folder and copy the files in that folder things are GREAT with svn.

Now that I have moved to GIT, have realized a few tricks to survive. So here goes
1) Dont install any git plugin on eclipse
2) Dont think GUI will make it any easier, it will only make matters worse
3) Command line is your saviour

To get code from the repository to your machine
use clone

To checkin code to the repository after you made changes (and in the mean while someone else checked in stuff)

1) git add *
2) git commit -m "message"
3) git stash, this is for backing up your changes until you can syncup code from the repository
4) git pull, get the code from the repository
5) git stash pop, overlay your changes on the latest code
6) now, go back to your IDE and fix all the errors and conflicts, use merge tools
7) hit git commit -m "message", again
8) PRAY someone else has not checked in between step 4 and now :)
9) PRAY HARDER
10) When GOD RESPONDS, with a GO AHEAD
11) git push
12) Dance..
13) Your code is someone elses problem now.. hahahahha

Errors in Git and what they mean

Error
warning: push.default is unset; its implicit value is changing in bla bla bla.. JUST SHUT THE F up....

related stackoverflow question

What to do, since its a small team and you wont have any branches just run
git config --global push.default matching

What happens then ? Life is good again.. no more irritating long error messages that dont help.

Debugging Tomcat WAR

0

I hope would have found a step by step guide for debugging a tomcat WAR at runtime. Unfortunately the documentation sucks, I mean really, you expect people to go through pages of tutorials to understand debugging. Why cant it just be a few steps. Anyway, I figured some of the crap out, and am documenting it here for my reference. If you like to add more points please comment.

catalina.out, gives out errors but really cryptic shit. Unbelieveable that a out file would only give something as stupid as “SEVERE: ERROR LISTENERSTART” AND “SEVERE: ERROR FILTERSTART”. This happens when an exception is thrown in the contextInitialized method of a ServletContextListener. For this all I had to do was create a new logging.properties file in /var/lib/tomcat7/webapps/MY_APP/WEB_INF/classes folder. In this file I added these 2 lines for getting a stack trace on catalina.out.

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

More is coming here…

Learning Rails (on ubuntu)

0

As a java developer, learning ruby can be a daunting task. But I seem to have lived through the pain and hopefully this blog will help those who want to learn Ruby.

This blog will help you understand how to setup a development environment and the right places to look for to learn the language.

So to setup the ruby environment, I first started with a the correct editor. Sublime is it. Dont consider others (for now atleast). I then installed ruby language and all its other libraries as needed. After that I started with my Ruby On Rails learning. Rails is nothing but a deployment environment for Ruby. Helps to get started with Ruby faster.

      http://www.codelearn.org/ : Is a good place to start learning. They have one thing missing after the first Lesson, you will get help here. What you will need from this link is

      gem install bundler
      bundle init

      Now here you will find that rails server will create a new folder. DAMN!! why the hell does it do this shit?. Dont wonder too much, its just stupid. You need to follow this link to fix it.

      When you create your application with rails new myApp, there should be a myApp/script directory and in there will be a script named rails, this is the rails that understands server and console. So, do this:
      $ rails new MyApp
      $ cd MyApp
      $ script/rails server
      To create and start up your application. The naming is a little confusing.

      This also did not work, OK, try this then.

      cd script
      ./server

      Now, you will need to run a command line “rails generate controller pages about help”. This too will not work since “rails” will run from the command instead you should run script/generate. Yeah!! Its that silly!!