Fork me on GitHub

CPD Results

The following document contains the results of PMD's CPD 5.3.5.

Duplications

File Line
org/apache/chemistry/opencmis/server/impl/atompub/NavigationService.java 236
org/apache/chemistry/opencmis/server/impl/atompub/NavigationService.java 323
            throw new CmisRuntimeException( "Descendants are null!" );
        }

        ObjectInfo folderInfo = service.getObjectInfo( repositoryId, folderId );

        if ( folderInfo == null )
        {
            throw new CmisRuntimeException( "Folder Object Info is missing!" );
        }

        // set headers
        response.setStatus( HttpServletResponse.SC_OK );
        response.setContentType( Constants.MEDIATYPE_FEED );

        // write XML
        AtomFeed feed = new AtomFeed(  );
        feed.startDocument( response.getOutputStream(  ) );
        feed.startFeed( true );

        // write basic Atom feed elements
        feed.writeFeedElements( folderInfo.getId(  ), folderInfo.getCreatedBy(  ), folderInfo.getName(  ),
            folderInfo.getLastModificationDate(  ), null, null );

        // write links
        UrlBuilder baseUrl = compileBaseUrl( request, repositoryId );

        feed.writeServiceLink( baseUrl.toString(  ), repositoryId );

        feed.writeSelfLink( compileUrl( baseUrl, RESOURCE_DESCENDANTS, folderInfo.getId(  ) ), null );

        feed.writeViaLink( compileUrl( baseUrl, RESOURCE_ENTRY, folderInfo.getId(  ) ) );

        feed.writeDownLink( compileUrl( baseUrl, RESOURCE_CHILDREN, folderInfo.getId(  ) ), Constants.MEDIATYPE_FEED );

        if ( folderInfo.supportsFolderTree(  ) )
File Line
org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java 259
org/apache/chemistry/opencmis/server/impl/browser/CmisBrowserBindingServlet.java 424
                response.sendError( HttpServletResponse.SC_METHOD_NOT_ALLOWED, "Unknown operation" );
            }
        }
        finally
        {
            if ( service != null )
            {
                service.close(  );
            }
        }
    }

    /**
     * Translates an exception in an appropriate HTTP error code.
     */
    private static int getErrorCode( CmisBaseException ex )
    {
        if ( ex instanceof CmisConstraintException )
        {
            return 409;
        }
        else if ( ex instanceof CmisContentAlreadyExistsException )
        {
            return 409;
        }
        else if ( ex instanceof CmisFilterNotValidException )
        {
            return 400;
        }
        else if ( ex instanceof CmisInvalidArgumentException )
        {
            return 400;
        }
        else if ( ex instanceof CmisNameConstraintViolationException )
        {
            return 409;
        }
        else if ( ex instanceof CmisNotSupportedException )
        {
            return 405;
        }
        else if ( ex instanceof CmisObjectNotFoundException )
        {
            return 404;
        }
        else if ( ex instanceof CmisPermissionDeniedException )
        {
            return 403;
        }
        else if ( ex instanceof CmisStorageException )
        {
            return 500;
        }
        else if ( ex instanceof CmisStreamNotSupportedException )
        {
            return 403;
        }
        else if ( ex instanceof CmisUpdateConflictException )
        {
            return 409;
        }
        else if ( ex instanceof CmisVersioningException )
        {
            return 409;
        }

        return 500;
    }

    /**
     * Prints the error HTML page.
     */
    private static void printError( Exception ex, HttpServletResponse response )
File Line
org/apache/chemistry/opencmis/server/impl/atompub/MultiFilingService.java 125
org/apache/chemistry/opencmis/server/impl/atompub/ObjectService.java 162
                versioningState, parser.getPolicyIds(  ), null );

        ObjectInfo objectInfo = service.getObjectInfo( repositoryId, newObjectId );

        if ( objectInfo == null )
        {
            throw new CmisRuntimeException( "Object Info is missing!" );
        }

        ObjectData object = objectInfo.getObject(  );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        UrlBuilder baseUrl = compileBaseUrl( request, repositoryId );

        response.setStatus( HttpServletResponse.SC_CREATED );
        response.setContentType( Constants.MEDIATYPE_ENTRY );
        response.setHeader( "Location", compileUrl( baseUrl, RESOURCE_ENTRY, newObjectId ) );

        // write XML
        AtomEntry entry = new AtomEntry(  );
        entry.startDocument( response.getOutputStream(  ) );
        writeObjectEntry( service, entry, object, null, repositoryId, null, null, baseUrl, true );
        entry.endDocument(  );
    }
File Line
org/apache/chemistry/opencmis/server/impl/atompub/ObjectService.java 121
org/apache/chemistry/opencmis/server/impl/atompub/ObjectService.java 164
        ObjectInfo objectInfo = service.getObjectInfo( repositoryId, newObjectId );

        if ( objectInfo == null )
        {
            throw new CmisRuntimeException( "Object Info is missing!" );
        }

        ObjectData object = objectInfo.getObject(  );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        UrlBuilder baseUrl = compileBaseUrl( request, repositoryId );

        response.setStatus( HttpServletResponse.SC_CREATED );
        response.setContentType( Constants.MEDIATYPE_ENTRY );
        response.setHeader( "Location", compileUrl( baseUrl, RESOURCE_ENTRY, newObjectId ) );

        // write XML
        AtomEntry entry = new AtomEntry(  );
        entry.startDocument( response.getOutputStream(  ) );
        writeObjectEntry( service, entry, object, null, repositoryId, null, null, baseUrl, true );
        entry.endDocument(  );
    }

    /**
     * Create relationship.
     */
    public static void createRelationship( CallContext context, CmisService service, String repositoryId,
File Line
org/apache/chemistry/opencmis/server/impl/atompub/MultiFilingService.java 127
org/apache/chemistry/opencmis/server/impl/atompub/ObjectService.java 121
        ObjectInfo objectInfo = service.getObjectInfo( repositoryId, newObjectId );

        if ( objectInfo == null )
        {
            throw new CmisRuntimeException( "Object Info is missing!" );
        }

        ObjectData object = objectInfo.getObject(  );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        UrlBuilder baseUrl = compileBaseUrl( request, repositoryId );

        response.setStatus( HttpServletResponse.SC_CREATED );
        response.setContentType( Constants.MEDIATYPE_ENTRY );
        response.setHeader( "Location", compileUrl( baseUrl, RESOURCE_ENTRY, newObjectId ) );

        // write XML
        AtomEntry entry = new AtomEntry(  );
        entry.startDocument( response.getOutputStream(  ) );
        writeObjectEntry( service, entry, object, null, repositoryId, null, null, baseUrl, true );
        entry.endDocument(  );
    }
File Line
org/apache/chemistry/opencmis/server/impl/atompub/NavigationService.java 410
org/apache/chemistry/opencmis/server/impl/atompub/PolicyService.java 67
            throw new CmisRuntimeException( "Parents are null!" );
        }

        ObjectInfo objectInfo = service.getObjectInfo( repositoryId, objectId );

        if ( objectInfo == null )
        {
            throw new CmisRuntimeException( "Object Info is missing!" );
        }

        // set headers
        response.setStatus( HttpServletResponse.SC_OK );
        response.setContentType( Constants.MEDIATYPE_FEED );

        // write XML
        AtomFeed feed = new AtomFeed(  );
        feed.startDocument( response.getOutputStream(  ) );
        feed.startFeed( true );

        // write basic Atom feed elements
        feed.writeFeedElements( objectInfo.getId(  ), objectInfo.getCreatedBy(  ), objectInfo.getName(  ),
            objectInfo.getLastModificationDate(  ), null, null );

        // write links
        UrlBuilder baseUrl = compileBaseUrl( request, repositoryId );

        feed.writeServiceLink( baseUrl.toString(  ), repositoryId );

        feed.writeSelfLink( compileUrl( baseUrl, RESOURCE_PARENTS, objectInfo.getId(  ) ), null );
File Line
org/apache/chemistry/opencmis/server/impl/atompub/RepositoryService.java 280
org/apache/chemistry/opencmis/server/impl/atompub/RepositoryService.java 368
        Boolean hasMoreItems = ( ( typeList == null ) ? null : typeList.hasMoreItems(  ) );

        String parentTypeId = null;
        String typeName = "Type Children";

        // in order to get the parent type, we need the type definition of this
        // type as well
        if ( typeId != null )
        {
            TypeDefinition typeDefinition = service.getTypeDefinition( repositoryId, typeId, null );

            parentTypeId = ( ( typeDefinition == null ) ? null : typeDefinition.getParentTypeId(  ) );
            typeName = ( ( typeDefinition == null ) ? typeId : typeDefinition.getDisplayName(  ) );
        }

        // write XML
        response.setStatus( HttpServletResponse.SC_OK );
        response.setContentType( Constants.MEDIATYPE_FEED );

        AtomFeed feed = new AtomFeed(  );
        feed.startDocument( response.getOutputStream(  ) );
        feed.startFeed( true );

        // write basic Atom feed elements
        feed.writeFeedElements( typeId, TYPE_AUTHOR, typeName, new GregorianCalendar(  ), null, numItems );
File Line
org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java 65
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 631
        service.addObjectToFolder( repositoryId, objectId, folderId, allVersions, null );

        String newObjectId = ( ( objectIdHolder.getValue(  ) == null ) ? objectId : objectIdHolder.getValue(  ) );

        ObjectData object = getSimpleObject( service, repositoryId, newObjectId );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        String location = compileUrl( compileBaseUrl( request, repositoryId ), RESOURCE_CONTENT, newObjectId );

        setStatus( request, response, HttpServletResponse.SC_CREATED );
        response.setHeader( "Location", location );

        // return object
        TypeCache typeCache = new TypeCacheImpl( repositoryId, service );
        JSONObject jsonObject = JSONConverter.convert( object, typeCache, false );

        writeJSON( jsonObject, request, response );
    }

    /*
     * removeObjectFromFolder.
     */
    public static void removeObjectFromFolder( CallContext context, CmisService service, String repositoryId,
File Line
org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java 102
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 669
        service.removeObjectFromFolder( repositoryId, objectId, folderId, null );

        String newObjectId = ( ( objectIdHolder.getValue(  ) == null ) ? objectId : objectIdHolder.getValue(  ) );

        ObjectData object = getSimpleObject( service, repositoryId, newObjectId );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        String location = compileUrl( compileBaseUrl( request, repositoryId ), RESOURCE_CONTENT, newObjectId );

        setStatus( request, response, HttpServletResponse.SC_CREATED );
        response.setHeader( "Location", location );

        // return object
        TypeCache typeCache = new TypeCacheImpl( repositoryId, service );
        JSONObject jsonObject = JSONConverter.convert( object, typeCache, false );

        writeJSON( jsonObject, request, response );
    }
}
File Line
org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java 65
org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java 102
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 631
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 669
        service.addObjectToFolder( repositoryId, objectId, folderId, allVersions, null );

        String newObjectId = ( ( objectIdHolder.getValue(  ) == null ) ? objectId : objectIdHolder.getValue(  ) );

        ObjectData object = getSimpleObject( service, repositoryId, newObjectId );

        if ( object == null )
        {
            throw new CmisRuntimeException( "Object is null!" );
        }

        // set headers
        String location = compileUrl( compileBaseUrl( request, repositoryId ), RESOURCE_CONTENT, newObjectId );

        setStatus( request, response, HttpServletResponse.SC_CREATED );
        response.setHeader( "Location", location );

        // return object
        TypeCache typeCache = new TypeCacheImpl( repositoryId, service );
        JSONObject jsonObject = JSONConverter.convert( object, typeCache, false );

        writeJSON( jsonObject, request, response );
    }
File Line
org/apache/chemistry/opencmis/server/impl/webservices/AbstractService.java 131
org/apache/chemistry/opencmis/server/shared/HttpUtils.java 141
                    String acceptLanguage = header.getValue(  ).get( 0 );

                    if ( acceptLanguage != null )
                    {
                        String[] locale = acceptLanguage.split( "-" );
                        context.put( CallContext.LOCALE_ISO639_LANGUAGE, locale[0].trim(  ) );

                        if ( locale.length > 1 )
                        {
                            int x = locale[1].indexOf( ',' );

                            if ( x == -1 )
                            {
                                context.put( CallContext.LOCALE_ISO3166_COUNTRY, locale[1].trim(  ) );
                            }
                            else
                            {
                                context.put( CallContext.LOCALE_ISO3166_COUNTRY, locale[1].substring( 0, x ).trim(  ) );
                            }
                        }
                    }
File Line
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 120
org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java 166
                createContentStream( request ), versioningState, createPolicies( cp ), createAddAcl( cp ),
                createRemoveAcl( cp ), null );

        ObjectData object = getSimpleObject( service, repositoryId, newObjectId );

        if ( object == null )
        {
            throw new CmisRuntimeException( "New document is null!" );
        }

        // return object
        JSONObject jsonObject = JSONConverter.convert( object, typeCache, false );

        setStatus( request, response, HttpServletResponse.SC_CREATED );
        setCookie( request, response, repositoryId, transaction,
            createCookieValue( HttpServletResponse.SC_CREATED, object.getId(  ), null, null ) );

        writeJSON( jsonObject, request, response );
    }

    /**
     * Create document from source.
     */
    public static void createDocumentFromSource( CallContext context, CmisService service, String repositoryId,
File Line
org/apache/chemistry/opencmis/server/impl/atompub/NavigationService.java 216
org/apache/chemistry/opencmis/server/impl/atompub/NavigationService.java 303
    public static void getDescendants( CallContext context, CmisService service, String repositoryId,
        HttpServletRequest request, HttpServletResponse response )
        throws Exception
    {
        // get parameters
        String folderId = getStringParameter( request, Constants.PARAM_ID );
        BigInteger depth = getBigIntegerParameter( request, Constants.PARAM_DEPTH );
        String filter = getStringParameter( request, Constants.PARAM_FILTER );
        Boolean includeAllowableActions = getBooleanParameter( request, Constants.PARAM_ALLOWABLE_ACTIONS );
        IncludeRelationships includeRelationships = getEnumParameter( request, Constants.PARAM_RELATIONSHIPS,
                IncludeRelationships.class );
        String renditionFilter = getStringParameter( request, Constants.PARAM_RENDITION_FILTER );
        Boolean includePathSegment = getBooleanParameter( request, Constants.PARAM_PATH_SEGMENT );

        // execute
        List<ObjectInFolderContainer> descendants = service.getDescendants( repositoryId, folderId, depth, filter,
File Line
org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java 206
org/apache/chemistry/opencmis/server/impl/browser/CmisBrowserBindingServlet.java 272
                printError( e, response );
            }
        }

        // we are done.
        response.flushBuffer(  );
    }

    /**
     * Dispatches to feed, entry or whatever.
     */
    private void dispatch( CallContext context, HttpServletRequest request, HttpServletResponse response )
        throws Exception
    {
        CmisService service = null;

        try
        {
            // get services factory
            CmisServiceFactory factory = (CmisServiceFactory) getServletContext(  )
                                                                  .getAttribute( CmisRepositoryContextListener.SERVICES_FACTORY );

            if ( factory == null )
            {
                throw new CmisRuntimeException( "Service factory not available! Configuration problem?" );
            }

            // get the service
            service = factory.getService( context );

            // analyze the path
            String[] pathFragments = HttpUtils.splitPath( request );

            if ( pathFragments.length < 4 )
            {
                // root -> service document
                RepositoryService.getRepositories( context, service, request, response );

                return;
            }