[jira] [Updated] (CAY-2333) Project XML extensions
[ https://issues.apache.org/jira/browse/CAY-2333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2333: - Fix Version/s: (was: 4.1.M2) 4.2.M1 > Project XML extensions > -- > > Key: CAY-2333 > URL: https://issues.apache.org/jira/browse/CAY-2333 > Project: Cayenne > Issue Type: Improvement > Components: Modeler, Non-GUI Tools >Affects Versions: 4.1.M1 >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.2.M1 > > > Cayenne need flexible project XML extensions mechanism to allow attach some > meta information to project, that will not affect runtime. > Use cases can be following: > * General comments for entities, attributes and relationships > * Reverse engineering config > * Cgen config > * ER and Class diagram > Possible linked tasks CAY-400 and CAY-56 > Here is main API for project extensions: > {code} > public interface ProjectExtension { > /** > * @return delegate that handle loading phase of XML processing > */ > LoaderDelegate createLoaderDelegate(); > /** > * @return delegate that handle saving phase of XML processing > */ > SaverDelegate createSaverDelegate(); > } > public interface LoaderDelegate { > /** > * @return target namespace that this extension is using > */ > String getTargetNamespace(); > /** > * Create handler that will handle parsing process further. > */ > NamespaceAwareNestedTagHandler > createHandler(NamespaceAwareNestedTagHandler parent, String tag); > } > public interface SaverDelegate extends ConfigurationNodeVisitor { > /** > * @param encoder provided by caller > */ > void setXMLEncoder(XMLEncoder encoder); > void setParentDelegate(SaverDelegate parentDelegate); > SaverDelegate getParentDelegate(); > } > {code} > Extension can be contributed via > {{ProjectModule.contributeExtensions(Binder)}} method. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (CAY-2332) Property API: unable to use eq() and in() methods for toMany relationships
[ https://issues.apache.org/jira/browse/CAY-2332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2332: - Fix Version/s: (was: 4.1.M2) 4.2.M1 > Property API: unable to use eq() and in() methods for toMany relationships > -- > > Key: CAY-2332 > URL: https://issues.apache.org/jira/browse/CAY-2332 > Project: Cayenne > Issue Type: Bug >Reporter: Nikita Timofeev >Priority: Major > Fix For: 4.2.M1 > > > Following code won't compile as {{eq()}} (as well as {{in()}}) method require > {{List}} or other Property<> in this case, but everything else > down the stack will correctly translate and execute this query and return > correct result (I've checked this by simply allowing {{Object}} as argument > in {{eq()}}) > {code} > Painting painting = > ObjectSelect.query(Painting.class).selectFirst(context); > Artist artist = ObjectSelect.query(Artist.class) > .where(Artist.PAINTING_ARRAY.eq(painting)) > .selectFirst(context); > {code} > Generated SQL: > {code:sql} > SELECT DISTINCT t0.ARTIST_NAME, t0.DATE_OF_BIRTH, t0.ARTIST_ID > FROM ARTIST t0 > JOIN PAINTING t1 ON (t0.ARTIST_ID = t1.ARTIST_ID) > WHERE t1.PAINTING_ID = ? > LIMIT 1 OFFSET 0 > [bind: 1->PAINTING_ID:1] > {code} > Workaround can be parsing expression from string: > {{.where(ExpressionFactory.exp("paintingArray = $p", painting))}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (CAY-2314) Problem in UnmanagedPoolingDataSource with managing closed Derby connection
[ https://issues.apache.org/jira/browse/CAY-2314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2314: - Fix Version/s: (was: 4.1.M2) 4.2.M1 > Problem in UnmanagedPoolingDataSource with managing closed Derby connection > --- > > Key: CAY-2314 > URL: https://issues.apache.org/jira/browse/CAY-2314 > Project: Cayenne > Issue Type: Bug >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Minor > Fix For: 4.2.M1 > > > There is random and rare test failures with a stack trace like this: > {quote} > org.apache.cayenne.CayenneRuntimeException: [v.4.0.M6-SNAPSHOT May 19 2017 > 14:34:29] Global exception. > at org.apache.derby.iapi.error.StandardException.newException(Unknown > Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.wrapArgsForTransportAcrossDRDA(Unknown > Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) > at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown > Source) > at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown > Source) > at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Unknown Source) > at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(Unknown > Source) > at org.apache.derby.impl.jdbc.EmbedConnection.getAutoCommit(Unknown > Source) > at > org.apache.cayenne.datasource.PoolAwareConnection.getAutoCommit(PoolAwareConnection.java:155) > at > org.apache.cayenne.datasource.UnmanagedPoolingDataSource.resetState(UnmanagedPoolingDataSource.java:309) > at > org.apache.cayenne.datasource.UnmanagedPoolingDataSource.getConnection(UnmanagedPoolingDataSource.java:334) > {quote} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (CAY-2378) Switch usage of SelectQuery to ObjectSelect internally
[ https://issues.apache.org/jira/browse/CAY-2378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2378: - Fix Version/s: (was: 4.1.M2) 4.2.M1 > Switch usage of SelectQuery to ObjectSelect internally > -- > > Key: CAY-2378 > URL: https://issues.apache.org/jira/browse/CAY-2378 > Project: Cayenne > Issue Type: Task >Reporter: Nikita Timofeev >Priority: Major > Fix For: 4.2.M1 > > > Recommended select query since 4.0 is {{ObjectSelect}}, that is converted > internally to {{SelectQuery}}. > We can gain some performance and maintainability by inverting this, i.e. > using {{ObjectSelect}} directly in Cayenne stack and converting > {{SelectQuery}} to it. > Important note: this should not affect any public API. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (CAY-2338) Support comments in cgen and default templates
[ https://issues.apache.org/jira/browse/CAY-2338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev updated CAY-2338: - Fix Version/s: (was: 4.1.M2) 4.2.M1 > Support comments in cgen and default templates > -- > > Key: CAY-2338 > URL: https://issues.apache.org/jira/browse/CAY-2338 > Project: Cayenne > Issue Type: Sub-task > Components: Modeler, Non-GUI Tools >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.2.M1 > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Closed] (CAY-2435) cdbimport: procedure parameters are not imported
[ https://issues.apache.org/jira/browse/CAY-2435?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev closed CAY-2435. Resolution: Fixed Fixed for *4.0* per https://github.com/apache/cayenne/commit/21732820a38c9d8c32b0b311b8edf53a320d91ff > cdbimport: procedure parameters are not imported > > > Key: CAY-2435 > URL: https://issues.apache.org/jira/browse/CAY-2435 > Project: Cayenne > Issue Type: Bug > Components: Modeler, Non-GUI Tools >Affects Versions: 4.1.M1, 4.0.RC1 >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.0.RC2, 4.1.M2 > > > Procedures are always imported without parameters in reverse engineering > (both in modeler and maven/gradle plugins). -- This message was sent by Atlassian JIRA (v7.6.3#76005)
cayenne git commit: CAY-2435 cdbimport: procedure parameters are not imported
Repository: cayenne Updated Branches: refs/heads/master 26dc6a268 -> 6ea7f3958 CAY-2435 cdbimport: procedure parameters are not imported Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/6ea7f395 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/6ea7f395 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/6ea7f395 Branch: refs/heads/master Commit: 6ea7f3958119c2d5f5a3bdfd3a863335705def4f Parents: 26dc6a2 Author: Nikita TimofeevAuthored: Wed May 23 12:19:39 2018 +0300 Committer: Nikita Timofeev Committed: Wed May 23 12:21:54 2018 +0300 -- RELEASE-NOTES.txt | 1 + .../dbsync/reverse/dbload/ProcedureColumnLoader.java| 12 +--- 2 files changed, 10 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/6ea7f395/RELEASE-NOTES.txt -- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 2923e0b..27fe24d 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -59,6 +59,7 @@ CAY-2425 Modeler: Migrate DB Direction field is locked if no option was selected CAY-2427 Modeler: Undo throws exception CAY-2429 Generate classes: Invalid template type: EMBEDDABLE_SINGLE_CLASS CAY-2430 Modeler: Redo throws NPE +CAY-2435 cdbimport: procedure parameters are not imported CAY-2436 NPE in CayenneRuntimeException constructor -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/6ea7f395/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java -- diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java index 23ba96c..31c6a73 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java @@ -59,7 +59,8 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { String name = rs.getString("PROCEDURE_NAME"); String key = Procedure.generateFullyQualifiedName(procCatalog, procSchema, name); Procedure procedure = map.getProcedure(name); -if (procedure == null) { +// should be filtered out in getResultSet() method, but check full name here too.. +if (procedure == null || !key.equals(procedure.getFullyQualifiedName())) { return; } @@ -80,7 +81,7 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return null; } -if (columnName == null) { +if (columnName == null || columnName.isEmpty()) { if (type == DatabaseMetaData.procedureColumnReturn) { LOGGER.debug("null column name, assuming result column: " + key); columnName = "_return_value"; @@ -103,7 +104,10 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { } ProcedureParameter column = new ProcedureParameter(columnName); -column.setDirection(getDirection(type)); +int direction = getDirection(type); +if(direction != -1) { +column.setDirection(direction); +} column.setType(columnType); column.setMaxLength(rs.getInt("LENGTH")); column.setPrecision(decimalDigits); @@ -120,6 +124,8 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return ProcedureParameter.IN_OUT_PARAMETER; case DatabaseMetaData.procedureColumnOut: return ProcedureParameter.OUT_PARAMETER; +case DatabaseMetaData.procedureColumnReturn: +return ProcedureParameter.OUT_PARAMETER; default: return -1; }
cayenne git commit: CAY-2435 cdbimport: procedure parameters are not imported
Repository: cayenne Updated Branches: refs/heads/STABLE-4.0 4944e863d -> 21732820a CAY-2435 cdbimport: procedure parameters are not imported Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/21732820 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/21732820 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/21732820 Branch: refs/heads/STABLE-4.0 Commit: 21732820a38c9d8c32b0b311b8edf53a320d91ff Parents: 4944e86 Author: Nikita TimofeevAuthored: Wed May 23 12:19:39 2018 +0300 Committer: Nikita Timofeev Committed: Wed May 23 12:19:39 2018 +0300 -- RELEASE-NOTES.txt | 1 + .../dbsync/reverse/dbload/ProcedureColumnLoader.java | 14 ++ 2 files changed, 11 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/RELEASE-NOTES.txt -- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index c09f88b..6bdc143 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,6 +16,7 @@ Changes/New Features: Bug Fixes: +CAY-2435 cdbimport: procedure parameters are not imported CAY-2436 NPE in CayenneRuntimeException constructor -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/21732820/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java -- diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java index f4096a1..31c6a73 100644 --- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java +++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/ProcedureColumnLoader.java @@ -58,8 +58,9 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { String procCatalog = rs.getString("PROCEDURE_CAT"); String name = rs.getString("PROCEDURE_NAME"); String key = Procedure.generateFullyQualifiedName(procCatalog, procSchema, name); -Procedure procedure = map.getProcedure(key); -if (procedure == null) { +Procedure procedure = map.getProcedure(name); +// should be filtered out in getResultSet() method, but check full name here too.. +if (procedure == null || !key.equals(procedure.getFullyQualifiedName())) { return; } @@ -80,7 +81,7 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return null; } -if (columnName == null) { +if (columnName == null || columnName.isEmpty()) { if (type == DatabaseMetaData.procedureColumnReturn) { LOGGER.debug("null column name, assuming result column: " + key); columnName = "_return_value"; @@ -103,7 +104,10 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { } ProcedureParameter column = new ProcedureParameter(columnName); -column.setDirection(getDirection(type)); +int direction = getDirection(type); +if(direction != -1) { +column.setDirection(direction); +} column.setType(columnType); column.setMaxLength(rs.getInt("LENGTH")); column.setPrecision(decimalDigits); @@ -120,6 +124,8 @@ public class ProcedureColumnLoader extends PerCatalogAndSchemaLoader { return ProcedureParameter.IN_OUT_PARAMETER; case DatabaseMetaData.procedureColumnOut: return ProcedureParameter.OUT_PARAMETER; +case DatabaseMetaData.procedureColumnReturn: +return ProcedureParameter.OUT_PARAMETER; default: return -1; }
[jira] [Closed] (CAY-2436) NPE in CayenneRuntimeException constructor
[ https://issues.apache.org/jira/browse/CAY-2436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nikita Timofeev closed CAY-2436. Resolution: Fixed *4.1*: [https://github.com/apache/cayenne/commit/872f231a1984033771867628b1e4f660dfec2b28] *4.0*: https://github.com/apache/cayenne/commit/4944e863d6d31e2d96a592c4cf4fefbb2a2c1b1e > NPE in CayenneRuntimeException constructor > -- > > Key: CAY-2436 > URL: https://issues.apache.org/jira/browse/CAY-2436 > Project: Cayenne > Issue Type: Bug > Components: Core Library >Affects Versions: 4.1.M1, 4.0.RC1 >Reporter: Nikita Timofeev >Assignee: Nikita Timofeev >Priority: Major > Fix For: 4.0.RC2, 4.1.M2 > > > {code} > java.lang.NullPointerException > at java.base/java.util.regex.Matcher.getTextLength(Unknown Source) > at java.base/java.util.regex.Matcher.reset(Unknown Source) > at java.base/java.util.regex.Matcher.(Unknown Source) > at java.base/java.util.regex.Pattern.matcher(Unknown Source) > at java.base/java.util.Formatter.parse(Unknown Source) > at java.base/java.util.Formatter.format(Unknown Source) > at java.base/java.util.Formatter.format(Unknown Source) > at java.base/java.lang.String.format(Unknown Source) > at > org.apache.cayenne.CayenneRuntimeException.(CayenneRuntimeException.java:58) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[1/2] cayenne git commit: CAY-2436 NPE in CayenneRuntimeException constructor
Repository: cayenne Updated Branches: refs/heads/master 57361b635 -> 26dc6a268 CAY-2436 NPE in CayenneRuntimeException constructor Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/872f231a Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/872f231a Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/872f231a Branch: refs/heads/master Commit: 872f231a1984033771867628b1e4f660dfec2b28 Parents: 57361b6 Author: Nikita TimofeevAuthored: Wed May 23 10:14:23 2018 +0300 Committer: Nikita Timofeev Committed: Wed May 23 10:17:32 2018 +0300 -- RELEASE-NOTES.txt | 1 + .../apache/cayenne/CayenneRuntimeException.java | 2 +- .../cayenne/CayenneRuntimeExceptionTest.java| 33 ++-- 3 files changed, 25 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/872f231a/RELEASE-NOTES.txt -- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 1df3b48..3806615 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -59,6 +59,7 @@ CAY-2425 Modeler: Migrate DB Direction field is locked if no option was selected CAY-2427 Modeler: Undo throws exception CAY-2429 Generate classes: Invalid template type: EMBEDDABLE_SINGLE_CLASS CAY-2430 Modeler: Redo throws NPE +CAY-2436 NPE in CayenneRuntimeException constructor -- Release: 4.1.M1 http://git-wip-us.apache.org/repos/asf/cayenne/blob/872f231a/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java -- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java b/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java index bb922bc..135b50c 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java @@ -37,7 +37,7 @@ public class CayenneRuntimeException extends RuntimeException { * conventions. */ public CayenneRuntimeException(String messageFormat, Object... messageArgs) { -super(String.format(messageFormat, messageArgs)); +super(messageFormat == null ? null : String.format(messageFormat, messageArgs)); } /** http://git-wip-us.apache.org/repos/asf/cayenne/blob/872f231a/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java -- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java index d9019c2..0e60ecf 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java @@ -29,26 +29,24 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -/** - */ public class CayenneRuntimeExceptionTest { @Test -public void testConstructor1() throws Exception { +public void testConstructor1() { CayenneRuntimeException ex = new CayenneRuntimeException(); assertNull(ex.getCause()); assertTrue(ex.getMessage().startsWith(CayenneException.getExceptionLabel())); } @Test -public void testConstructor2() throws Exception { +public void testConstructor2() { CayenneRuntimeException ex = new CayenneRuntimeException("abc"); assertNull(ex.getCause()); assertEquals(CayenneException.getExceptionLabel() + "abc", ex.getMessage()); } @Test -public void testConstructor3() throws Exception { +public void testConstructor3() { Throwable cause = new Throwable(); CayenneRuntimeException ex = new CayenneRuntimeException(cause); assertSame(cause, ex.getCause()); @@ -58,7 +56,7 @@ public class CayenneRuntimeExceptionTest { } @Test -public void testConstructor4() throws Exception { +public void testConstructor4() { Throwable cause = new Throwable(); CayenneRuntimeException ex = new CayenneRuntimeException("abc", cause); assertSame(cause, ex.getCause()); @@ -66,7 +64,22 @@ public class CayenneRuntimeExceptionTest { } @Test -public void testThrow1() throws Exception { +public void testConstructorNullMessage() { +Throwable cause = new Throwable(); + +CayenneRuntimeException ex = new CayenneRuntimeException(null, cause); +
[2/2] cayenne git commit: 4.1.M1 release date
4.1.M1 release date Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/26dc6a26 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/26dc6a26 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/26dc6a26 Branch: refs/heads/master Commit: 26dc6a268f64dc8f6c4c700a0dabbf09c877b93f Parents: 872f231 Author: Nikita TimofeevAuthored: Wed May 23 10:18:00 2018 +0300 Committer: Nikita Timofeev Committed: Wed May 23 10:18:00 2018 +0300 -- RELEASE-NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/26dc6a26/RELEASE-NOTES.txt -- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 3806615..2923e0b 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -63,7 +63,7 @@ CAY-2436 NPE in CayenneRuntimeException constructor -- Release: 4.1.M1 -Date: +Date: October 14, 2017 -- Changes/New Features:
cayenne git commit: CAY-2436 NPE in CayenneRuntimeException constructor
Repository: cayenne Updated Branches: refs/heads/STABLE-4.0 8a2b5a88c -> 4944e863d CAY-2436 NPE in CayenneRuntimeException constructor Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/4944e863 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/4944e863 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/4944e863 Branch: refs/heads/STABLE-4.0 Commit: 4944e863d6d31e2d96a592c4cf4fefbb2a2c1b1e Parents: 8a2b5a8 Author: Nikita TimofeevAuthored: Wed May 23 10:14:23 2018 +0300 Committer: Nikita Timofeev Committed: Wed May 23 10:14:23 2018 +0300 -- RELEASE-NOTES.txt | 4 ++- .../apache/cayenne/CayenneRuntimeException.java | 7 ++--- .../cayenne/CayenneRuntimeExceptionTest.java| 33 ++-- 3 files changed, 29 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cayenne/blob/4944e863/RELEASE-NOTES.txt -- diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 828731c..c09f88b 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,9 +16,11 @@ Changes/New Features: Bug Fixes: +CAY-2436 NPE in CayenneRuntimeException constructor + -- Release: 4.0.RC1 -Date: +Date: April 25, 2018 -- Changes/New Features: http://git-wip-us.apache.org/repos/asf/cayenne/blob/4944e863/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java -- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java b/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java index 29fc6c0..135b50c 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/CayenneRuntimeException.java @@ -37,7 +37,7 @@ public class CayenneRuntimeException extends RuntimeException { * conventions. */ public CayenneRuntimeException(String messageFormat, Object... messageArgs) { -super(String.format(messageFormat, messageArgs)); +super(messageFormat == null ? null : String.format(messageFormat, messageArgs)); } /** @@ -53,9 +53,8 @@ public class CayenneRuntimeException extends RuntimeException { * optional list of message formatting arguments. Message formatting rules follow * "String.format(..)" conventions. */ -public CayenneRuntimeException(String messageFormat, Throwable cause, -Object... messageArgs) { -super(String.format(messageFormat, messageArgs), cause); +public CayenneRuntimeException(String messageFormat, Throwable cause, Object... messageArgs) { +super(messageFormat == null ? null : String.format(messageFormat, messageArgs), cause); } /** http://git-wip-us.apache.org/repos/asf/cayenne/blob/4944e863/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java -- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java index d9019c2..0e60ecf 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneRuntimeExceptionTest.java @@ -29,26 +29,24 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -/** - */ public class CayenneRuntimeExceptionTest { @Test -public void testConstructor1() throws Exception { +public void testConstructor1() { CayenneRuntimeException ex = new CayenneRuntimeException(); assertNull(ex.getCause()); assertTrue(ex.getMessage().startsWith(CayenneException.getExceptionLabel())); } @Test -public void testConstructor2() throws Exception { +public void testConstructor2() { CayenneRuntimeException ex = new CayenneRuntimeException("abc"); assertNull(ex.getCause()); assertEquals(CayenneException.getExceptionLabel() + "abc", ex.getMessage()); } @Test -public void testConstructor3() throws Exception { +public void testConstructor3() { Throwable cause = new Throwable(); CayenneRuntimeException ex = new CayenneRuntimeException(cause); assertSame(cause, ex.getCause()); @@ -58,7 +56,7 @@ public class CayenneRuntimeExceptionTest { } @Test -public void testConstructor4() throws Exception { +
[jira] [Created] (CAY-2436) NPE in CayenneRuntimeException constructor
Nikita Timofeev created CAY-2436: Summary: NPE in CayenneRuntimeException constructor Key: CAY-2436 URL: https://issues.apache.org/jira/browse/CAY-2436 Project: Cayenne Issue Type: Bug Components: Core Library Affects Versions: 4.0.RC1, 4.1.M1 Reporter: Nikita Timofeev Assignee: Nikita Timofeev Fix For: 4.0.RC2, 4.1.M2 {code} java.lang.NullPointerException at java.base/java.util.regex.Matcher.getTextLength(Unknown Source) at java.base/java.util.regex.Matcher.reset(Unknown Source) at java.base/java.util.regex.Matcher.(Unknown Source) at java.base/java.util.regex.Pattern.matcher(Unknown Source) at java.base/java.util.Formatter.parse(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.util.Formatter.format(Unknown Source) at java.base/java.lang.String.format(Unknown Source) at org.apache.cayenne.CayenneRuntimeException.(CayenneRuntimeException.java:58) {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)