Release History

Data format is : YYYY-MM-DD

Version format is : major.minor.patch

4.2.8 Released

  • dependency 변경

    1. license-api 변경 : 1.1.4 -> 1.1.5으로 up.

      Network interface 중 virtual ip , loopback, P2P를 제외 하는 로직 추가

  • glue-core 모듈 수정

    1. GlueWebContext 의 toString() 시, request parameter 정보 출력 개선
      • com.poscoict.glueframework.context.GlueWebContext 수정

        수정전
        TRACE com.poscoict.glueframework.biz.control.GlueBizControllerImpl - Type : {WEB_BROWSER}, Root : {ContextPath=/GlueSample, ServiceName=sample-service, RequestURI=/GlueSample/sample.mvc, HttpRequest.getRemoteAddr=127.0.0.1}, RequestParameter : {ServiceName=[Ljava.lang.String;@1a9b7a7, deptno=[Ljava.lang.String;@46c960}, RequestAttribute : {}, SessionAttribute : {}, Cookie : {}, Header : {}
        
        수정후
        TRACE com.poscoict.glueframework.biz.control.GlueBizControllerImpl - Type : {WEB_BROWSER}, Root : {ContextPath=/GlueSample, ServiceName=sample-service, RequestURI=/GlueSample/sample.mvc, HttpRequest.getRemoteAddr=127.0.0.1}, RequestParameter : {ServiceName=[sample-service], deptno=[10]}, RequestAttribute : {}, SessionAttribute : {}, Cookie : {}, Header : {}
        
    2. 조회용 SQL 실행결과에 ColumnDefinition 정보 추가 개선
      • com.poscoict.glueframework.dao.jdbc.GlueJdbcDao 수정

      • com.poscoict.glueframework.dao.manager.GlueColumnManager 수정

    3. Named SQL을 통해 BLOB Column 저장시 java.sql.SQLException 발생
      • com.poscoict.glueframework.dao.jdbc.GlueGenericJdbcDao 수정

      • com.poscoict.glueframework.dao.jdbc.GlueJdbcDao 수정

        [main] [org.springframework.jdbc.core.JdbcTemplate] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcTemplate - Executing prepared SQL update
        [main] [org.springframework.jdbc.core.JdbcTemplate] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcTemplate - Executing prepared SQL statement [INSERT INTO BLOB_TEST VALUES (?, ?)]
        [main] [org.springframework.jdbc.core.StatementCreatorUtils] TRACE org.springframework.jdbc.core.StatementCreatorUtils - Setting SQL statement parameter value: column index 1, parameter value [TESTNamed3], value class [java.lang.String], SQL type unknown
        [main] [org.springframework.jdbc.core.StatementCreatorUtils] TRACE org.springframework.jdbc.core.StatementCreatorUtils - Setting SQL statement parameter value: column index 2, parameter value [D:\tmp\imgtest\one\test.png], value class [java.io.File], SQL type unknown
        [main] [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] INFO  org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
        [main] [org.springframework.jdbc.support.SQLErrorCodesFactory] INFO  org.springframework.jdbc.support.SQLErrorCodesFactory - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
        [main] [com.poscoict.glueframework.dao.jdbc.GlueJdbcDao] INFO  com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Executing Query StartTime[Fri Jul 15 16:04:40 KST 2016]
        com.poscoict.glueframework.dao.GlueUncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO BLOB_TEST VALUES (?, ?)]; SQL state [99999]; error code [17004]; 부적합한 열 유형; nested exception is java.sql.SQLException: 부적합한 열 유형
            at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.a(GlueJdbcDao.java:947)
            at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.a(GlueJdbcDao.java:725)
            at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.insert(GlueJdbcDao.java:500)
            at BlobTest.main(BlobTest.java:46)
        Caused by: java.sql.SQLException: 부적합한 열 유형
            at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8730)
            at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8237)
            at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8981)
            at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8962)
            at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:214)
            at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:169)
            at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:169)
            at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:401)
            at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:234)
            at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:149)
            at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.setValues(PreparedStatementCreatorFactory.java:298)
            at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:251)
            at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:583)
            at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:818)
            at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:840)
            at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:281)
            at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:285)
            at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.a(GlueJdbcDao.java:692)
            ... 2 more
        
    4. GlueJdbcNativeRun 에서 con.close() 대신에 dao.releaseDBConnection(con) 으로 수정.
      • com.poscoict.glueframework.biz.activity.GlueJdbcNativeRun 수정

        수정전
        Connection con = dao.getDBConnection();
        ...
        con.close();
        
        수정후
        Connection con = dao.getDBConnection();
        ...
        dao.releaseDBConnection(con)
        
    5. GlueHttpReceiverAdapter 의 resopnse body 에 empty string 추가.
      • com.poscoict.glueframework.web.GlueHttpReceiverAdapter 수정

            public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
            {
                response.setStatus( HttpServletResponse.SC_FORBIDDEN );
                response.getWriter().println("");  // <-- 4.2.8 에서 추가
                response.flushBuffer();
                this.logger.error( "GET Request is forbidden...." );
            }
        
    6. GlueJdbcInsert, GlueJdbcModify 의 param-count 값이 0이 경우 NullPointException 발생 보완
      • com.poscoict.glueframework.biz.activity.GlueJdbcInsert 수정

      • com.poscoict.glueframework.biz.activity.GlueJdbcModify 수정

    7. GlueStaticContext 의 method 추가
      • com.poscoict.glueframework.context.GlueStaticContext 수정

            public static String getGlueProperty( String key )
            public static String getCustomProperty( String key )
            public static String getSystemProperty( String key )
            public static String getGlueProperty( String key, String defaultValue )    <-- 추가
            public static String getCustomProperty( String key, String defaultValue )  <-- 추가
            public static String getSystemProperty( String key, String defaultValue )  <-- 추가
        
    8. GlueLazyJdbcDao, GlueLazyTransactionMangaer 추가
      • com.poscoict.glueframework.dao.jdbc.GlueLazyJdbcDao 추가

      • com.poscoict.glueframework.dao.vo.GlueCursorBasedRowSet 추가

      • com.poscoict.glueframework.transaction.GlueLazyTransactionManager 추가

      • com.poscoict.glueframework.web.GlueLazyTransactionReleaseFilter 추가

      • com.poscoict.glueframework.dao.jdbc.GlueJdbcDao 수정

            protected <T, P> List<T> findByQueryDefinitionInternal( GlueQueryDefinition def, GlueParameter<P> param )  <-- private 를 protected로 변경.
        
      • com.poscoict.glueframework.dao.manager.GlueColumnManager 수정 - method 추가

            public GlueColumnDef[] getColumnDefinition( String queryKey, ResultSet rs ) 
        
      • com.poscoict.glueframework.biz.control.GlueBizControllerImpl 수정 - GlueLazyTransactionManager 일 경우 commit/rollback 로그 제거함.

  • glue-ucube 모듈 수정

    1. u-CUBE4 를 통해 한건의 message를 보낼 경우 불필요한 commit 로직 제거
      • com.poscoict.glueframework.ucube4.GlueUCubeManagerImpl 수정

        public int sendMessage( String brokerName, String interfaceID, String message )
        {
            ... 중략 ...
            m_handler.sendMessage( brokerName, interfaceID, message, false );
            //m_handler.commit( brokerName );  // false 가 있으므로 commit 불필요.
            //m_handler.rollback( brokerName ); //false 로 되어 있으므로 rollback 불필요
            ... 중략 ...
        }
        
  • glue-schedule 모듈 수정

    1. JobCall activity 의 job-params 가 없을 경우 NullPointerException 발생.
      • com.poscoict.glueframework.scheduling.activity.GlueJobCall 수정

        Caused by: java.lang.NullPointerException
            at java.util.StringTokenizer.<init>(StringTokenizer.java:182)
            at java.util.StringTokenizer.<init>(StringTokenizer.java:204)
            at com.poscoict.glueframework.scheduling.activity.GlueJobCall.a(GlueJobCall.java:155)
            at com.poscoict.glueframework.scheduling.activity.GlueJobCall.runActivity(GlueJobCall.java:137)
            at com.poscoict.glueframework.biz.control.GlueService$GlueActivityHandler.runActivity(GlueService.java:166)
        
      • com.poscoict.glueframework.scheduling.server.GlueServerHandler 수정

      • com.poscoict.glueframework.scheduling.GlueQuartzJobBean 수정