Buggy code:
@ SuppressWarnings ( "serial" ) public class PratilipiServiceImpl extends RemoteServiceServlet implements PratilipiService { @ Override public SavePratilipiResponse savePratilipi ( SavePratilipiRequest request ) throws InsufficientAccessException , InvalidArgumentException { } @ Override public GetPratilipiListResponse getPratilipiList ( GetPratilipiListRequest request ) { } @ Override public GetLanguageListResponse getLanguageList ( GetLanguageListRequest request ) { } @ Override public SaveAuthorResponse saveAuthor ( SaveAuthorRequest request ) throws InsufficientAccessException , InvalidArgumentException { } @ Override public GetAuthorListResponse getAuthorList ( GetAuthorListRequest request ) throws InsufficientAccessException { } @ Override public SaveGenreResponse saveGenre ( SaveGenreRequest request ) throws InsufficientAccessException , InvalidArgumentException { } public GetGenreListResponse getGenreList ( GetGenreListRequest request ) throws InsufficientAccessException , InvalidArgumentException { } public AddPratilipiGenreResponse addPratilipiGenre ( AddPratilipiGenreRequest request ) throws InsufficientAccessException , InvalidArgumentException { } public DeletePratilipiGenreResponse deletePratilipiGenre ( DeletePratilipiGenreRequest request ) throws InsufficientAccessException , InvalidArgumentException { } @ Override public AddUserPratilipiResponse addUserPratilipi ( AddUserPratilipiRequest request ) throws InsufficientAccessException , InvalidArgumentException { UserPratilipiData userPratilipiData = request . getUserPratilipi ( ) ; PratilipiHelper pratilipiHelper = PratilipiHelper . get ( this . getThreadLocalRequest ( ) ) ; DataAccessor dataAccessor = DataAccessorFactory . getDataAccessor ( this . getThreadLocalRequest ( ) ) ; Pratilipi pratilipi = dataAccessor . getPratilipi ( userPratilipiData . getPratilipiId ( ) ) ; UserPratilipi userPratilipi = dataAccessor . getUserPratilipi ( pratilipiHelper . getCurrentUserId ( ) , pratilipi . getId ( ) ) ; if ( userPratilipiData . hasRating ( ) ) { if ( ! ( PratilipiContentHelper . hasRequestAccessToAddPratilipiReview ( this . getThreadLocalRequest ( ) , pratilipi ) ) ) throw new InsufficientAccessException ( ) ; if ( userPratilipi == null ) { userPratilipi = dataAccessor . newUserPratilipi ( ) ; userPratilipi . setUserId ( pratilipiHelper . getCurrentUserId ( ) ) ; userPratilipi . setPratilipiId ( pratilipi . getId ( ) ) ; userPratilipi . setRating ( userPratilipiData . getRating ( ) ) ; pratilipi . setRatingCount ( ( ( ( pratilipi . getRatingCount ( ) ) == null ? 0 : pratilipi . getRatingCount ( ) ) + 1 ) ) ; pratilipi . setStarCount ( ( ( ( pratilipi . getStarCount ( ) ) == null ? 0 : pratilipi . getStarCount ( ) ) + ( userPratilipiData . getRating ( ) ) ) ) ; } else { int earlierRating = ( ( userPratilipi . getRating ( ) ) == null ) ? 0 : userPratilipi . getRating ( ) ; userPratilipi . setRating ( userPratilipiData . getRating ( ) ) ; pratilipi . setStarCount ( ( ( ( ( pratilipi . getStarCount ( ) ) == null ? 0 : pratilipi . getStarCount ( ) ) - earlierRating ) + ( userPratilipiData . getRating ( ) ) ) ) ; if ( ( userPratilipiData . getRating ( ) ) == 0 ) pratilipi . setRatingCount ( ( ( pratilipi . getRatingCount ( ) ) - 1 ) ) ; if ( earlierRating == 0 ) pratilipi . setRatingCount ( ( ( pratilipi . getRatingCount ( ) ) + 1 ) ) ; } userPratilipi = dataAccessor . createOrUpdateUserPratilipi ( userPratilipi ) ; dataAccessor . createOrUpdatePratilipi ( pratilipi ) ; } if ( userPratilipiData . hasReview ( ) ) { <START_BUG> if ( ( ( userPratilipi != null ) && ( ( userPratilipi . getReviewState ( ) ) != ( UserReviewState . NOT_SUBMITTED ) ) ) || ( ! ( PratilipiContentHelper . hasRequestAccessToAddPratilipiReview ( this . getThreadLocalRequest ( ) , pratilipi ) ) ) ) <END_BUG> throw new InsufficientAccessException ( ) ; userPratilipi = dataAccessor . newUserPratilipi ( ) ; userPratilipi . setUserId ( pratilipiHelper . getCurrentUserId ( ) ) ; userPratilipi . setPratilipiId ( pratilipi . getId ( ) ) ; userPratilipi . setReview ( userPratilipiData . getReview ( ) ) ; userPratilipi . setReviewState ( PENDING_APPROVAL ) ; userPratilipi . setReviewDate ( new Date ( ) ) ; userPratilipi = dataAccessor . createOrUpdateUserPratilipi ( userPratilipi ) ; } return new AddUserPratilipiResponse ( userPratilipi . getId ( ) ) ; } @ Override public GetUserPratilipiResponse getUserPratilipi ( GetUserPratilipiRequest request ) { } @ Override public GetUserPratilipiListResponse getUserPratilipiList ( GetUserPratilipiListRequest request ) { } @ Override public SearchResponse search ( SearchRequest request ) { } @ Override public void ConvertWordToHtml ( ConvertPratilipiWordToHtmlRequest request ) throws IOException { } }

Fix:
if ( ( ( ( userPratilipi != null ) && ( ( userPratilipi . getReviewState ( ) ) != null ) ) && ( ( userPratilipi . getReviewState ( ) ) != ( UserReviewState . NOT_SUBMITTED ) ) ) || ( ! ( PratilipiContentHelper . hasRequestAccessToAddPratilipiReview ( this . getThreadLocalRequest ( ) , pratilipi ) ) ) )