diff options
Diffstat (limited to 'src/com')
3 files changed, 33 insertions, 2 deletions
| diff --git a/src/com/p4square/grow/frontend/AccountRedirectResource.java b/src/com/p4square/grow/frontend/AccountRedirectResource.java index b363c89..be2ae65 100644 --- a/src/com/p4square/grow/frontend/AccountRedirectResource.java +++ b/src/com/p4square/grow/frontend/AccountRedirectResource.java @@ -4,6 +4,7 @@  package com.p4square.grow.frontend; +import java.io.IOException;  import java.util.HashMap;  import java.util.Map; @@ -61,9 +62,22 @@ public class AccountRedirectResource extends ServerResource {       */      @Override      protected Representation get() { +        if (mUserId == null || mUserId.length() == 0) { +            // This shouldn't happen, but I want to be safe because of the DB insert below. +            setStatus(Status.CLIENT_ERROR_FORBIDDEN); +            return new ErrorPage("Not Authenticated!"); +        } +          try {              // Fetch account Map. -            UserRecord user = mUserRecordProvider.get(mUserId); +            UserRecord user = null; +            try { +                user = mUserRecordProvider.get(mUserId); +            } catch (NotFoundException e) { +                // User record doesn't exist, so create a new one. +                user = new UserRecord(getRequest().getClientInfo().getUser()); +                mUserRecordProvider.put(mUserId, user); +            }              // Check for the new believers cookie              String cookie = getRequest().getCookies().getFirstValue(NewBelieverResource.COOKIE_NAME); diff --git a/src/com/p4square/grow/frontend/JsonRequestProvider.java b/src/com/p4square/grow/frontend/JsonRequestProvider.java index a04294d..bf3b2b3 100644 --- a/src/com/p4square/grow/frontend/JsonRequestProvider.java +++ b/src/com/p4square/grow/frontend/JsonRequestProvider.java @@ -51,7 +51,11 @@ public class JsonRequestProvider<V> extends JsonEncodedProvider<V> implements Pr                  representation.release();              } -            throw new IOException("Could not get object. " + response.getStatus()); +            if (Status.CLIENT_ERROR_NOT_FOUND.equals(response.getStatus())) { +                throw new NotFoundException("Could not get object. " + response.getStatus()); +            } else { +                throw new IOException("Could not get object. " + response.getStatus()); +            }          }          return decode(representation.getText()); diff --git a/src/com/p4square/grow/frontend/NotFoundException.java b/src/com/p4square/grow/frontend/NotFoundException.java new file mode 100644 index 0000000..dfa2a4c --- /dev/null +++ b/src/com/p4square/grow/frontend/NotFoundException.java @@ -0,0 +1,13 @@ +/* + * Copyright 2014 Jesse Morgan + */ + +package com.p4square.grow.frontend; + +import java.io.IOException; + +public class NotFoundException extends IOException { +    public NotFoundException(final String message) { +        super(message); +    } +} | 
