You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@abdera.apache.org by "Jim Ancona (JIRA)" <ji...@apache.org> on 2008/01/09 20:30:34 UTC

[jira] Created: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Null ResponseContext in call to AbstractServiceProvider.end()
-------------------------------------------------------------

                 Key: ABDERA-87
                 URL: https://issues.apache.org/jira/browse/ABDERA-87
             Project: Abdera
          Issue Type: Bug
    Affects Versions: 0.4.0
            Reporter: Jim Ancona


Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()

For example:
public ResponseContext getEntry(RequestContext request) {
      CollectionProvider provider = null;
      ResponseContext response = null;
      try {
        IRI entryBaseIri = resolveBase(request).resolve("./");
        provider = getCollectionProvider(request);
        provider.begin(request);
        
        return provider.getEntry(request, entryBaseIri);
      } catch (ResponseContextException e) {
        response = createErrorResponse(e);
        return response;
      } finally {
        end(provider, request, response);
      }
    }

should be:

    public ResponseContext getEntry(RequestContext request) {
      CollectionProvider provider = null;
      ResponseContext response = null;
      try {
        IRI entryBaseIri = resolveBase(request).resolve("./");
        provider = getCollectionProvider(request);
        provider.begin(request);
        
        response = provider.getEntry(request, entryBaseIri);
      } catch (ResponseContextException e) {
        response = createErrorResponse(e);
      } finally {
        end(provider, request, response);
      }
      return response;
    }



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "Jim Ancona (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Ancona updated ABDERA-87:
-----------------------------

    Attachment: AbstractProvider2.patch

Noticed another way this could mess up

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractProvider.patch, AbstractProvider2.patch, AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "James M Snell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James M Snell resolved ABDERA-87.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 0.4.0

After the refactoring, this should no longer be an issue. Please confirm.

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "Jim Ancona (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Ancona updated ABDERA-87:
-----------------------------

    Attachment: AbstractProvider.patch

Actually AbstractProvider still seems to have the issue. (I'm now using a Filter instead of end() to implement my use case, so I don't have code that exercises this anymore.) 

Patch attached.

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractProvider.patch, AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "Jim Ancona (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Ancona updated ABDERA-87:
-----------------------------

    Attachment: AbstractServiceProvider_end.patch

Patch. 

WARNING: This patch also includes the changes in issue ABDERA-86!!

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>         Attachments: AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "James M Snell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James M Snell resolved ABDERA-87.
---------------------------------

    Resolution: Fixed

the second case was checked in

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractProvider.patch, AbstractProvider2.patch, AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "James M Snell (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12566306#action_12566306 ] 

James M Snell commented on ABDERA-87:
-------------------------------------

Ah, right. Got it. Checked in a fix. Thx!

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractProvider.patch, AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (ABDERA-87) Null ResponseContext in call to AbstractServiceProvider.end()

Posted by "Jim Ancona (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ABDERA-87?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jim Ancona reopened ABDERA-87:
------------------------------


I noticed another way this could fail, and attached a patch.

> Null ResponseContext in call to AbstractServiceProvider.end()
> -------------------------------------------------------------
>
>                 Key: ABDERA-87
>                 URL: https://issues.apache.org/jira/browse/ABDERA-87
>             Project: Abdera
>          Issue Type: Bug
>    Affects Versions: 0.4.0
>            Reporter: Jim Ancona
>             Fix For: 0.4.0
>
>         Attachments: AbstractProvider.patch, AbstractProvider2.patch, AbstractServiceProvider_end.patch
>
>
> Several of the calls to the end() method in AbstractServiceProvider have a null ResponseContext  parameter because of the way the try/finally blocks are coded. This bug also affects calls to CollectionProvider.end()
> For example:
> public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         return provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>         return response;
>       } finally {
>         end(provider, request, response);
>       }
>     }
> should be:
>     public ResponseContext getEntry(RequestContext request) {
>       CollectionProvider provider = null;
>       ResponseContext response = null;
>       try {
>         IRI entryBaseIri = resolveBase(request).resolve("./");
>         provider = getCollectionProvider(request);
>         provider.begin(request);
>         
>         response = provider.getEntry(request, entryBaseIri);
>       } catch (ResponseContextException e) {
>         response = createErrorResponse(e);
>       } finally {
>         end(provider, request, response);
>       }
>       return response;
>     }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.