Recent activity
Subscribe to this feed-
Martijn Laarman started following the question "What if I have Tomcat?" in hedgehog lab.
Martijn Laarman replied on October 26, 2009 19:49 to the idea "API-Request: Get issues for a specific user." in hedgehog lab:
A comment on the idea "Moving over orphan issues" in hedgehog lab:
Brilliant! – Martijn Laarman, on October 22, 2009 18:54
Martijn Laarman replied on October 22, 2009 10:58 to the question "GET /api/projects/{project_id}/issue-types" in hedgehog lab:
-
Martijn Laarman started following the idea "Create areas on the fly" in hedgehog lab.
Martijn Laarman asked a question in hedgehog lab on October 13, 2009 20:17:
Inferred defaults when updating issue.resolvedOn and resolvedBy are not defaulted when sending a different resolution while updating an issue through the API. My feeling is an inferred default (api user, now) is less of a problem then allowing these to be set to null.
Martijn Laarman reported a problem in hedgehog lab on October 10, 2009 16:44:
wrong url for PUT issueAPI documentation glitch, the url for updating an issue is actually
PUT /api/issues/{issue_id} right now it states /api/issues. If you post to the later no HTTP error code is returned but it returns 200 with no data which is kinda misleading.
Martijn Laarman reported a problem in hedgehog lab on October 10, 2009 16:42:
closed element ignored POST /api/issuesThe closed element is ignored when posting a new issue to /api/issues
works fine updating an existing issue though.
Martijn Laarman asked a question in hedgehog lab on September 30, 2009 21:39:
Fixx API posting a new issue.Create a new issue is done by posting to /api/issues
How do you specify which project you want to post to ? Since project is not part of the issue entity. Is this somehow inferred by having to specify area (if area is required)?
A comment on the question "/profile/{id}/avatar?secure={base64authkey}" in hedgehog lab:
Ok thats good.. but setting a src attribute is a tenfold times easier then downloading the file with sockets and save to harddisk using GDI. As any programmer I too am lazy :) I also realise I could do http://username:password@.... but that would put a smile on any network sniffer :) – Martijn Laarman, on September 30, 2009 20:18
Martijn Laarman asked a question in hedgehog lab on September 30, 2009 19:57:
/profile/{id}/avatar?secure={base64authkey}I'd like to spruce my fixx addon up by showing the avatars however I do a clean request for /profile/5/avatar. Quite rightly it doesn't give me any picture back because i dont send along the SPRING_SECURITY_REMEMBER_ME_COOKIE. Is it possible however to allow for /profile/5/avatar?secure=<base64authkey> ?
</base64authkey>
A comment on the question "urgent Fixx-API error when adding a comment to an issue." in hedgehog lab:
I can confirm that manually sending <createdat> works. I'm happy I don't have to scrap that feature :)</createdat> – Martijn Laarman, on September 30, 2009 18:52
Martijn Laarman asked a question in hedgehog lab on September 30, 2009 18:36:
urgent Fixx-API error when adding a comment to an issue.Adding comments through API somehow seems to mess up the issue internally or perhaps im just doing it wrong :)
Request above the linesep(----) and response below it in the examples.
GET /api/issues/573 HTTP/1.1
Accept: application/xml
Content-Type: application/xml
Authorization: Basic <removed>
Host: </removed><removed>
------------------------
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=</removed><removed>; Path=/
Content-Length: 555
Date: Wed, 30 Sep 2009 18:19:43 GMT
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><issue><id>573</id><title>TEST ISSUE</title><description><p>This is a test issue</p></description><assignedto>5</assignedto><type>13</type><priority>4</priority><area />11<createdon>2009-09-30T20:18:18.858+02:00</createdon><dueon>2009-10-07T22:18:18.858+02:00</dueon><createdby>5</createdby><affected>6</affected><fixfor>6</fixfor><estimatedtime>0</estimatedtime><closed>false</closed><updatedon>2009-09-30T20:18:59.390+02:00</updatedon><hidefromclient>false</hidefromclient></issue>
</removed>
GET /api/issues/573/comments HTTP/1.1
Accept: application/xml
Content-Type: application/xml
Authorization: Basic <removed>
Host: </removed><removed>
--------------------------------
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=</removed><removed>; Path=/
Content-Length: 381
Date: Wed, 30 Sep 2009 18:19:46 GMT
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><comments><comment><id>273</id><text>Test COmmment2</text><createdat>2009-09-30T20:18:59.388+02:00</createdat><createdby>5</createdby><issue>573</issue></comment><comment><id>272</id><text>TEST COMMENT #1</text><createdat>2009-09-30T20:18:41.785+02:00</createdat><createdby>5</createdby><issue>573</issue></comment></comments>
</removed>
So far so good i get the issue and its comments (2) i then try to add a new comment:
POST /api/issues/573/comments HTTP/1.1
Accept: application/xml
Content-Type: application/xml
Authorization: Basic <removed>
Host: </removed><removed>
Content-Length: 52
Expect: 100-continue
<comment>
<text>Test Comment 3</text>
</comment>
-----------------------------
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=</removed><removed>; Path=/
Content-Length: 155
Date: Wed, 30 Sep 2009 18:20:11 GMT
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><comment><id>274</id><text>Test Comment 3</text><createdby>5</createdby><issue>573</issue></comment>
</removed>
Still no errors as expected if i now retrieve the comments again i get the following error:
GET /api/issues/573/comments HTTP/1.1
Accept: application/xml
Content-Type: application/xml
Authorization: Basic <removed>
Host: </removed><removed>
-------------------------------------------------
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Date: Wed, 30 Sep 2009 18:20:50 GMT
Connection: close
2000
<html><head><title>Apache Tomcat/6.0.16 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><hr /> type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
note
java.util.Date.getMillisOf(Unknown Source)
java.util.Date.before(Unknown Source)
com.hedgehoglab.fixx.model.comparator.CommentAgeComparator.compare(CommentAgeComparator.java:16)
com.hedgehoglab.fixx.model.comparator.CommentAgeComparator.compare(CommentAgeComparator.java:8)
java.util.Arrays.mergeSort(Unknown Source)
java.util.Arrays.sort(Unknown Source)
java.util.Collections.sort(Unknown Source)
com.hedgehoglab.fixx.api.resources.IssuesResource.getComments(IssuesResource.java:64)
sun.reflect.GeneratedMethodAccessor1253.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$ResponseOutInvoker._dispatch(EntityParamDispatchProvider.java:156)
com.sun.jersey.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:85)
com.sun.jersey.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:123)
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
com.sun.jersey.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
com.sun.jersey.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:63)
com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:722)
com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:692)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:344)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
org.appfuse.webapp.filter.StaticFilter.doFilterInternal(StaticFilter.java:103)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.appfuse.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:63)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.hedgehoglab.fixx.utils.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:90)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359)
org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
com.hedgehoglab.fixx.webapp.filter.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:83)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.config.OrderedFilterBeanDefinitionDecorator$OrderedFilterDecorator.doFilter(OrderedFilterBeanDefinitionDecorator.java:93)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:172)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:268)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:268)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:87)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:229)
org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371)
org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
com.hedgehoglab.fixx.webapp.filter.UpgradeFilter.doFilterInternal(UpgradeFilter.java:160)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.hedgehoglab.fixx.webapp.filter.SetupFilter.doFilterInternal(SetupFilter.java:68)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
ab
The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
<hr /><h3>Apache Tomcat/6.0.16</h3></body></html>
0
</removed>
This causes all the comments not to show in the web interface and for older issues I've noticed it clears the description too although I've not been able to fully catch when this happens.
Martijn Laarman replied on September 27, 2009 15:47 to the question "API inconsistency" in hedgehog lab:
Martijn Laarman replied on September 27, 2009 15:39 to the question "API inconsistency" in hedgehog lab:
Having worked just a tad bit longer with the Fixx API i think the reason why some of the examples seem to miss certain elements is that they were simply 'null' when they were rendered :) I think for sanity sake the examples should show the entire object and mention that elements will disappear if they are 'null'.
Martijn Laarman asked a question in hedgehog lab on September 26, 2009 08:25:
Performance/Filtering of /api/projects/{project_id}/issuesRight now /api/projects/{project_id}/issues is our only entry point to get ALL the issues for a project. For big projects with many issues it'd be really great if we could add a filter too like say /api/projects/{project_id}/issues?closed=false&resolved={resolutionid}&assignedto={userid}
What would really help to speed this call up is if we were able to send ?lastmodified={date} which only returns issues modified after that date and <issue /> also returning <modifieddate />. The combination of id/modifieddate would allow me to cache known issues.
Martijn Laarman asked a question in hedgehog lab on September 23, 2009 22:13:
API ASCII control codes (0-31) in returned XML.When I get the issues for one of my projects it somehow contains ASCII control codes which invalidates the XML. It only happens on one issue in the issue list ( i bet it's in the description damn those pesky contentEditable divs! :p) for one project but perhaps the API could always strip the end result of any ASCII control codes ?
Martijn Laarman asked a question in hedgehog lab on September 23, 2009 21:27:
GET /api/projects/{project_id}/issue-typessays it returns a description but it only returns id and name.
Martijn Laarman replied on September 23, 2009 21:02 to the question "API inconsistency" in hedgehog lab:
A comment on the question "Fixx api returns openid address ?" in hedgehog lab:
Up until now I have not encountered the openid address element being sent. Seems to be a flaw in the API documents. – Martijn Laarman, on September 23, 2009 20:38
| next » « previous |
Loading Profile...

