{"action":"created","comment":{"url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/comments/62849732","id":62849732,"diff_hunk":"@@ -0,0 +1,570 @@\n+package com.epam.task2.util;\n+\n+import java.sql.Array;\n+import java.sql.Blob;\n+import java.sql.CallableStatement;\n+import java.sql.Clob;\n+import java.sql.Connection;\n+import java.sql.DatabaseMetaData;\n+import java.sql.DriverManager;\n+import java.sql.NClob;\n+import java.sql.PreparedStatement;\n+import java.sql.SQLClientInfoException;\n+import java.sql.SQLException;\n+import java.sql.SQLWarning;\n+import java.sql.SQLXML;\n+import java.sql.Savepoint;\n+import java.sql.Statement;\n+import java.sql.Struct;\n+import java.util.ArrayList;\n+import java.util.List;\n+import java.util.Map;\n+import java.util.Properties;\n+import java.util.concurrent.Executor;\n+\n+/**\n+ * Created by Olga Kramska on 09-May-16.\n+ */\n+\n+public class ConnectionPool {\n+    protected final List<PoolConnection> connections;\n+    protected String url;\n+    protected String user;\n+    protected String password;\n+    protected boolean checkConnections = true;\n+    protected long cleaningInterval = 30000;\n+    protected long maxIdleTime = 30000;\n+\n+    protected long maxUseTime = -1;\n+\n+    protected boolean draining = false;\n+\n+    protected PoolCleaner cleaner;\n+\n+    public ConnectionPool(String url, String user, String password) {\n+        this.url = url;\n+        this.user = user;\n+        this.password = password;\n+\n+        connections = new ArrayList();\n+    }\n+\n+    public void setCheckConnections(boolean checkConnections) {\n+        this.checkConnections = checkConnections;\n+    }\n+\n+    public void setCleaningInterval(long cleaningInterval) {\n+        this.cleaningInterval = cleaningInterval;\n+    }\n+\n+\n+    public void setMaxIdleTime(long maxIdleTime) {\n+        this.maxIdleTime = maxIdleTime;\n+    }\n+\n+\n+    public void setMaxUseTime(long maxUseTime) {\n+        this.maxUseTime = maxUseTime;\n+    }\n+\n+    public Connection getConnection() throws SQLException {\n+        if (draining) {\n+            throw new SQLException(\"ConnectionPool was drained\");\n+        }\n+\n+        synchronized (connections) {\n+            PoolConnection pc;\n+\n+            for (int i = 0; i < connections.size(); i++) {\n+                pc = connections.get(i);\n+\n+                if (pc.lease()) {\n+\n+                    if (!checkConnections) {\n+                        return pc;\n+                    } else {\n+                        boolean isHealthy = true;\n+\n+                        try {\n+                            if (pc.isClosed() && pc.getWarnings() != null) {\n+                                isHealthy = false;\n+                            }\n+                        } catch (SQLException sqle) {\n+                            isHealthy = false;\n+                        }\n+\n+                        if (isHealthy) {\n+                            return pc;\n+                        } else {\n+                            pc.expire();\n+\n+                            connections.remove(i);\n+                        }\n+                    }\n+                }\n+            }\n+        }\n+\n+        Connection con = DriverManager.getConnection(url, user, password);\n+        PoolConnection pc = new PoolConnection(con);\n+        pc.lease();\n+\n+        synchronized (connections) {\n+            connections.add(pc);\n+\n+            if (cleaner == null) {\n+                cleaner = new PoolCleaner(cleaningInterval);\n+                cleaner.start();\n+            }\n+        }\n+\n+        return pc;\n+    }\n+\n+    public void removeExpired() {\n+        PoolConnection pc;\n+\n+        long maxIdleDeadline = System.currentTimeMillis() - maxIdleTime;\n+        long maxUseDeadline = System.currentTimeMillis() - maxUseTime;\n+\n+        synchronized (connections) {\n+            for (int i = connections.size() - 1; i >= 0; i--) {\n+                pc = connections.get(i);\n+\n+                if (!pc.inUse() && pc.getTimeClosed() < maxIdleDeadline) {\n+                    connections.remove(i);\n+                    try {\n+                        pc.expire();\n+                    } catch (SQLException ignore) {\n+                    }\n+                } else if (\n+                        maxUseTime >= 0 &&\n+                                pc.inUse() &&\n+                                pc.getTimeOpened() < maxUseDeadline) {\n+                    System.err.println(\"Warning: forced closing of a connection that has been in use too long.\");\n+                    System.err.println(\"Connection was acquired in:\");\n+                    pc.printStackTrace();\n+                    System.err.println();\n+\n+                    connections.remove(i);\n+                    try {\n+                        pc.expire();\n+                    } catch (SQLException ignore) {\n+                    }\n+                }\n+            }\n+\n+            if (connections.size() == 0 && cleaner != null) {\n+                cleaner.halt();\n+                cleaner = null;\n+            }\n+        }\n+    }\n+\n+    public int getPoolSize() {\n+        synchronized (connections) {\n+            return connections.size();\n+        }\n+    }\n+\n+    public void drain() {\n+        draining = true;\n+\n+        if (cleaner != null) {\n+            cleaner.halt();\n+        }\n+\n+        synchronized (connections) {\n+            for (int i = connections.size() - 1; i >= 0; i--) {\n+                PoolConnection pc = connections.get(i);\n+\n+                if (pc.inUse()) {\n+                    System.err.println(\"Warning: forced closing of a connection still in use.\");\n+                    System.err.println(\"Connection was acquired in:\");\n+                    pc.printStackTrace();\n+                    System.err.println();\n+                }\n+\n+                connections.remove(i);\n+                try {\n+                    pc.expire();\n+                } catch (SQLException ignore) {\n+                }\n+            }\n+        }\n+    }\n+\n+    protected void finalize() {\n+        drain();\n+    }\n+\n+    static class PoolConnection implements Connection {\n+        protected Connection connection;\n+        protected boolean inUse;\n+        protected boolean autoCommit;\n+        protected long timeOpened;\n+        protected long timeClosed;\n+        private Throwable throwable;\n+\n+        public PoolConnection(Connection conn) {\n+            connection = conn;\n+            inUse = false;\n+            autoCommit = true;\n+        }\n+\n+        public synchronized boolean lease() {\n+            if (inUse) {\n+                return false;\n+            } else {\n+                inUse = true;\n+                timeOpened = System.currentTimeMillis();\n+                return true;\n+            }\n+        }\n+\n+        public boolean inUse() {\n+            return inUse;\n+        }\n+\n+        public synchronized long getTimeOpened() {\n+            return timeOpened;\n+        }\n+\n+        public synchronized long getTimeClosed() {\n+            return timeClosed;\n+        }\n+\n+        public void expire()\n+                throws SQLException {\n+            connection.close();\n+            connection = null;\n+        }\n+\n+        public void printStackTrace() {\n+            throwable.printStackTrace(System.err);\n+        }\n+\n+        public synchronized void close()\n+                throws SQLException {\n+            if (inUse) {\n+                timeClosed = System.currentTimeMillis();\n+                inUse = false;\n+\n+                if (!autoCommit) {\n+                    setAutoCommit(true);\n+                }\n+            }\n+        }\n+\n+        public Statement createStatement()\n+                throws SQLException {\n+            throwable = new Throwable();\n+            return connection.createStatement();\n+        }\n+\n+        public PreparedStatement prepareStatement(String sql)\n+                throws SQLException {\n+            throwable = new Throwable();\n+            return connection.prepareStatement(sql);\n+        }\n+\n+        public CallableStatement prepareCall(String sql)\n+                throws SQLException {\n+            return connection.prepareCall(sql);\n+        }\n+\n+        public String nativeSQL(String sql)\n+                throws SQLException {\n+            return connection.nativeSQL(sql);\n+        }\n+\n+        public void setAutoCommit(boolean autoCommit)\n+                throws SQLException {\n+            connection.setAutoCommit(autoCommit);\n+            this.autoCommit = connection.getAutoCommit();\n+        }\n+\n+        public boolean getAutoCommit()\n+                throws SQLException {\n+            return connection.getAutoCommit();\n+        }\n+\n+        public void commit()\n+                throws SQLException {\n+            connection.commit();\n+        }\n+\n+        public void rollback()\n+                throws SQLException {\n+            connection.rollback();\n+        }\n+\n+        public boolean isClosed()\n+                throws SQLException {\n+            return connection.isClosed();\n+        }\n+\n+        public DatabaseMetaData getMetaData()\n+                throws SQLException {\n+            return connection.getMetaData();\n+        }\n+\n+        public void setReadOnly(boolean readOnly)\n+                throws SQLException {\n+            connection.setReadOnly(readOnly);\n+        }\n+\n+        public boolean isReadOnly()\n+                throws SQLException {\n+            return connection.isReadOnly();\n+        }\n+\n+        public void setCatalog(String catalog)\n+                throws SQLException {\n+            connection.setCatalog(catalog);\n+        }\n+\n+        public String getCatalog()\n+                throws SQLException {\n+            return connection.getCatalog();\n+        }\n+\n+        public void setTransactionIsolation(int level)\n+                throws SQLException {\n+            connection.setTransactionIsolation(level);\n+        }\n+\n+        public int getTransactionIsolation()\n+                throws SQLException {\n+            return connection.getTransactionIsolation();\n+        }\n+\n+        public SQLWarning getWarnings()\n+                throws SQLException {\n+            return connection.getWarnings();\n+        }\n+\n+        public void clearWarnings()\n+                throws SQLException {\n+            connection.clearWarnings();\n+        }\n+\n+        public Statement createStatement(\n+                int resultSetType, int resultSetConcurrency)\n+                throws SQLException {\n+            return connection.createStatement(resultSetType, resultSetConcurrency);\n+        }\n+\n+        public PreparedStatement prepareStatement(\n+                String sql, int resultSetType, int resultSetConcurrency)\n+                throws SQLException {\n+            return connection.prepareStatement(sql, resultSetType, resultSetConcurrency);\n+        }\n+\n+        public CallableStatement prepareCall(\n+                String sql, int resultSetType, int resultSetConcurrency)\n+                throws SQLException {\n+            return connection.prepareCall(sql, resultSetType, resultSetConcurrency);\n+        }\n+\n+        public Map<String, Class<?>> getTypeMap()\n+                throws SQLException {\n+            return connection.getTypeMap();\n+        }\n+\n+        public void setTypeMap(Map<String, Class<?>> map)\n+                throws SQLException {\n+            connection.setTypeMap(map);\n+        }\n+\n+        public void setHoldability(int holdability)\n+                throws SQLException {\n+            connection.setHoldability(holdability);\n+        }\n+\n+        public int getHoldability()\n+                throws SQLException {\n+            return connection.getHoldability();\n+        }\n+\n+        public Savepoint setSavepoint()\n+                throws SQLException {\n+            return connection.setSavepoint();\n+        }\n+\n+        public Savepoint setSavepoint(String name)\n+                throws SQLException {\n+            return connection.setSavepoint(name);\n+        }\n+\n+        public void rollback(Savepoint savepoint)\n+                throws SQLException {\n+            connection.rollback(savepoint);\n+        }\n+\n+        public void releaseSavepoint(Savepoint savepoint)\n+                throws SQLException {\n+            connection.releaseSavepoint(savepoint);\n+        }\n+\n+        public Statement createStatement(\n+                int resultSetType,\n+                int resultSetConcurrency,\n+                int resultSetHoldability)\n+                throws SQLException {\n+            return connection.createStatement(\n+                    resultSetType, resultSetConcurrency, resultSetHoldability);\n+        }\n+\n+        public PreparedStatement prepareStatement(\n+                String sql,\n+                int resultSetType,\n+                int resultSetConcurrency,\n+                int resultSetHoldability)\n+                throws SQLException {\n+            return connection.prepareStatement(\n+                    sql, resultSetType, resultSetConcurrency, resultSetHoldability);\n+        }\n+\n+        public CallableStatement prepareCall(\n+                String sql,\n+                int resultSetType,\n+                int resultSetConcurrency,\n+                int resultSetHoldability)\n+                throws SQLException {\n+            return connection.prepareCall(\n+                    sql, resultSetType, resultSetConcurrency, resultSetHoldability);\n+        }\n+\n+        public PreparedStatement prepareStatement(\n+                String sql, int autoGenerateKeys)\n+                throws SQLException {\n+            return connection.prepareStatement(sql, autoGenerateKeys);\n+        }\n+\n+        public PreparedStatement prepareStatement(\n+                String sql, int[] columnIndexes)\n+                throws SQLException {\n+            return connection.prepareStatement(sql, columnIndexes);\n+        }\n+\n+        public PreparedStatement prepareStatement(\n+                String sql, String[] columnNames)\n+                throws SQLException {\n+            return connection.prepareStatement(sql, columnNames);\n+        }\n+\n+        public Clob createClob() throws SQLException {\n+            return null;\n+        }\n+\n+        public Blob createBlob() throws SQLException {\n+            return null;\n+        }\n+\n+        public NClob createNClob() throws SQLException {\n+            return null;\n+        }\n+\n+        public SQLXML createSQLXML() throws SQLException {\n+            return null;\n+        }\n+\n+        public boolean isValid(int timeout) throws SQLException {\n+            return false;\n+        }\n+\n+        public void setClientInfo(String name, String value) throws SQLClientInfoException {\n+        }\n+\n+        public void setClientInfo(Properties properties) throws SQLClientInfoException {\n+        }\n+\n+        public String getClientInfo(String name) throws SQLException {\n+            return null;\n+        }\n+\n+        public Properties getClientInfo() throws SQLException {\n+            return null;\n+        }\n+\n+        public Array createArrayOf(String typeName, Object[] elements) throws SQLException {\n+            return null;\n+        }\n+\n+        public Struct createStruct(String typeName, Object[] attributes) throws SQLException {\n+            return null;\n+        }\n+\n+        @Override\n+        public void setSchema(String schema) throws SQLException {\n+\n+        }\n+\n+        @Override\n+        public String getSchema() throws SQLException {\n+            return null;\n+        }\n+\n+        @Override\n+        public void abort(Executor executor) throws SQLException {\n+\n+        }\n+\n+        @Override\n+        public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {\n+\n+        }\n+\n+        @Override\n+        public int getNetworkTimeout() throws SQLException {\n+            return 0;\n+        }\n+\n+        public <T> T unwrap(Class<T> iface) throws SQLException {\n+            return null;\n+        }\n+\n+        public boolean isWrapperFor(Class<?> iface) throws SQLException {\n+            return false;\n+        }\n+    }\n+\n+    class PoolCleaner extends Thread {\n+\n+        protected long cleaningInterval;\n+        protected boolean mustStop;\n+\n+        public PoolCleaner(long cleaningInterval) {\n+            if (cleaningInterval < 0) {\n+                throw new IllegalArgumentException(\"cleaningInterval must be >= 0\");\n+            }\n+            mustStop = false;\n+            this.cleaningInterval = cleaningInterval;\n+\n+            setDaemon(true);\n+        }\n+\n+        public void run() {","path":"Olga_Kramska/Module 11 - JDBC/src/main/java/com/epam/task2/util/ConnectionPool.java","position":548,"original_position":548,"commit_id":"d6109a186e2cb979bc43c979fcfaa6366c52e1db","original_commit_id":"d6109a186e2cb979bc43c979fcfaa6366c52e1db","user":{"login":"technicaltaskjava","id":17650564,"avatar_url":"https://avatars.githubusercontent.com/u/17650564?v=3","gravatar_id":"","url":"https://api.github.com/users/technicaltaskjava","html_url":"https://github.com/technicaltaskjava","followers_url":"https://api.github.com/users/technicaltaskjava/followers","following_url":"https://api.github.com/users/technicaltaskjava/following{/other_user}","gists_url":"https://api.github.com/users/technicaltaskjava/gists{/gist_id}","starred_url":"https://api.github.com/users/technicaltaskjava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicaltaskjava/subscriptions","organizations_url":"https://api.github.com/users/technicaltaskjava/orgs","repos_url":"https://api.github.com/users/technicaltaskjava/repos","events_url":"https://api.github.com/users/technicaltaskjava/events{/privacy}","received_events_url":"https://api.github.com/users/technicaltaskjava/received_events","type":"User","site_admin":false},"body":"![MAJOR](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/severity-major.png) Add the \"@Override\" annotation above this method signature [![rule](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/rule.png)](http://localhost:9000/coding_rules#rule_key=squid%3AS1161)\n","created_at":"2016-05-11T13:44:19Z","updated_at":"2016-05-11T13:44:19Z","html_url":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149#discussion_r62849732","pull_request_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149","_links":{"self":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/comments/62849732"},"html":{"href":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149#discussion_r62849732"},"pull_request":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149"}}},"pull_request":{"url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149","id":69581811,"html_url":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149","diff_url":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149.diff","patch_url":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149.patch","issue_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/149","number":149,"state":"open","locked":false,"title":"Olga Kramska Homework Module 11 - JDBC","user":{"login":"OlgaKramska","id":17456697,"avatar_url":"https://avatars.githubusercontent.com/u/17456697?v=3","gravatar_id":"","url":"https://api.github.com/users/OlgaKramska","html_url":"https://github.com/OlgaKramska","followers_url":"https://api.github.com/users/OlgaKramska/followers","following_url":"https://api.github.com/users/OlgaKramska/following{/other_user}","gists_url":"https://api.github.com/users/OlgaKramska/gists{/gist_id}","starred_url":"https://api.github.com/users/OlgaKramska/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlgaKramska/subscriptions","organizations_url":"https://api.github.com/users/OlgaKramska/orgs","repos_url":"https://api.github.com/users/OlgaKramska/repos","events_url":"https://api.github.com/users/OlgaKramska/events{/privacy}","received_events_url":"https://api.github.com/users/OlgaKramska/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-05-10T21:33:17Z","updated_at":"2016-05-11T13:44:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c8eb0f0a58cb0b47df6f27bdae935a686ebfc100","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149/commits","review_comments_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149/comments","review_comment_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/149/comments","statuses_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/statuses/d6109a186e2cb979bc43c979fcfaa6366c52e1db","head":{"label":"OlgaKramska:master","ref":"master","sha":"d6109a186e2cb979bc43c979fcfaa6366c52e1db","user":{"login":"OlgaKramska","id":17456697,"avatar_url":"https://avatars.githubusercontent.com/u/17456697?v=3","gravatar_id":"","url":"https://api.github.com/users/OlgaKramska","html_url":"https://github.com/OlgaKramska","followers_url":"https://api.github.com/users/OlgaKramska/followers","following_url":"https://api.github.com/users/OlgaKramska/following{/other_user}","gists_url":"https://api.github.com/users/OlgaKramska/gists{/gist_id}","starred_url":"https://api.github.com/users/OlgaKramska/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlgaKramska/subscriptions","organizations_url":"https://api.github.com/users/OlgaKramska/orgs","repos_url":"https://api.github.com/users/OlgaKramska/repos","events_url":"https://api.github.com/users/OlgaKramska/events{/privacy}","received_events_url":"https://api.github.com/users/OlgaKramska/received_events","type":"User","site_admin":false},"repo":{"id":58490954,"name":"JavaCoreHomework","full_name":"OlgaKramska/JavaCoreHomework","owner":{"login":"OlgaKramska","id":17456697,"avatar_url":"https://avatars.githubusercontent.com/u/17456697?v=3","gravatar_id":"","url":"https://api.github.com/users/OlgaKramska","html_url":"https://github.com/OlgaKramska","followers_url":"https://api.github.com/users/OlgaKramska/followers","following_url":"https://api.github.com/users/OlgaKramska/following{/other_user}","gists_url":"https://api.github.com/users/OlgaKramska/gists{/gist_id}","starred_url":"https://api.github.com/users/OlgaKramska/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OlgaKramska/subscriptions","organizations_url":"https://api.github.com/users/OlgaKramska/orgs","repos_url":"https://api.github.com/users/OlgaKramska/repos","events_url":"https://api.github.com/users/OlgaKramska/events{/privacy}","received_events_url":"https://api.github.com/users/OlgaKramska/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/OlgaKramska/JavaCoreHomework","description":"","fork":true,"url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework","forks_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/forks","keys_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/teams","hooks_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/hooks","issue_events_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/issues/events{/number}","events_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/events","assignees_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/assignees{/user}","branches_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/branches{/branch}","tags_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/tags","blobs_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/git/refs{/sha}","trees_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/statuses/{sha}","languages_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/languages","stargazers_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/stargazers","contributors_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/contributors","subscribers_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/subscribers","subscription_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/subscription","commits_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/commits{/sha}","git_commits_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/git/commits{/sha}","comments_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/comments{/number}","issue_comment_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/issues/comments{/number}","contents_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/contents/{+path}","compare_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/merges","archive_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/downloads","issues_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/issues{/number}","pulls_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/pulls{/number}","milestones_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/milestones{/number}","notifications_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/labels{/name}","releases_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/releases{/id}","deployments_url":"https://api.github.com/repos/OlgaKramska/JavaCoreHomework/deployments","created_at":"2016-05-10T20:19:24Z","updated_at":"2016-05-10T20:19:28Z","pushed_at":"2016-05-10T21:32:55Z","git_url":"git://github.com/OlgaKramska/JavaCoreHomework.git","ssh_url":"git@github.com:OlgaKramska/JavaCoreHomework.git","clone_url":"https://github.com/OlgaKramska/JavaCoreHomework.git","svn_url":"https://github.com/OlgaKramska/JavaCoreHomework","homepage":null,"size":6775,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"technicaltaskjava:master","ref":"master","sha":"86f1871dea8625ef84bec87f472fb5cb3f461e9a","user":{"login":"technicaltaskjava","id":17650564,"avatar_url":"https://avatars.githubusercontent.com/u/17650564?v=3","gravatar_id":"","url":"https://api.github.com/users/technicaltaskjava","html_url":"https://github.com/technicaltaskjava","followers_url":"https://api.github.com/users/technicaltaskjava/followers","following_url":"https://api.github.com/users/technicaltaskjava/following{/other_user}","gists_url":"https://api.github.com/users/technicaltaskjava/gists{/gist_id}","starred_url":"https://api.github.com/users/technicaltaskjava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicaltaskjava/subscriptions","organizations_url":"https://api.github.com/users/technicaltaskjava/orgs","repos_url":"https://api.github.com/users/technicaltaskjava/repos","events_url":"https://api.github.com/users/technicaltaskjava/events{/privacy}","received_events_url":"https://api.github.com/users/technicaltaskjava/received_events","type":"User","site_admin":false},"repo":{"id":53159830,"name":"JavaCoreHomework","full_name":"technicaltaskjava/JavaCoreHomework","owner":{"login":"technicaltaskjava","id":17650564,"avatar_url":"https://avatars.githubusercontent.com/u/17650564?v=3","gravatar_id":"","url":"https://api.github.com/users/technicaltaskjava","html_url":"https://github.com/technicaltaskjava","followers_url":"https://api.github.com/users/technicaltaskjava/followers","following_url":"https://api.github.com/users/technicaltaskjava/following{/other_user}","gists_url":"https://api.github.com/users/technicaltaskjava/gists{/gist_id}","starred_url":"https://api.github.com/users/technicaltaskjava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicaltaskjava/subscriptions","organizations_url":"https://api.github.com/users/technicaltaskjava/orgs","repos_url":"https://api.github.com/users/technicaltaskjava/repos","events_url":"https://api.github.com/users/technicaltaskjava/events{/privacy}","received_events_url":"https://api.github.com/users/technicaltaskjava/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/technicaltaskjava/JavaCoreHomework","description":"","fork":false,"url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework","forks_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/forks","keys_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/teams","hooks_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/hooks","issue_events_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/events{/number}","events_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/events","assignees_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/assignees{/user}","branches_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/branches{/branch}","tags_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/tags","blobs_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/git/refs{/sha}","trees_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/statuses/{sha}","languages_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/languages","stargazers_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/stargazers","contributors_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/contributors","subscribers_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/subscribers","subscription_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/subscription","commits_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/commits{/sha}","git_commits_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/git/commits{/sha}","comments_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/comments{/number}","issue_comment_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/comments{/number}","contents_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/contents/{+path}","compare_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/merges","archive_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/downloads","issues_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues{/number}","pulls_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls{/number}","milestones_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/milestones{/number}","notifications_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/labels{/name}","releases_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/releases{/id}","deployments_url":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/deployments","created_at":"2016-03-04T19:19:59Z","updated_at":"2016-04-07T16:35:36Z","pushed_at":"2016-05-11T09:25:20Z","git_url":"git://github.com/technicaltaskjava/JavaCoreHomework.git","ssh_url":"git@github.com:technicaltaskjava/JavaCoreHomework.git","clone_url":"https://github.com/technicaltaskjava/JavaCoreHomework.git","svn_url":"https://github.com/technicaltaskjava/JavaCoreHomework","homepage":null,"size":6862,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":18,"mirror_url":null,"open_issues_count":12,"forks":18,"open_issues":12,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149"},"html":{"href":"https://github.com/technicaltaskjava/JavaCoreHomework/pull/149"},"issue":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/149"},"comments":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/issues/149/comments"},"review_comments":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149/comments"},"review_comment":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/pulls/149/commits"},"statuses":{"href":"https://api.github.com/repos/technicaltaskjava/JavaCoreHomework/statuses/d6109a186e2cb979bc43c979fcfaa6366c52e1db"}}}}