Hi,

I'm not sure why, but it looks like inner classes are not supported right
now. I get:


Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.h2.schema.TriggerObject.loadFromSource(TriggerObject.java:101)
    ... 15 more
Caused by: java.lang.NoClassDefFoundError:
org/h2/dynamic/trigger/MY_TRIGGER$Trig (wrong name:
org/h2/dynamic/trigger/MY_TRIGGER)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
    at
org.h2.util.SourceCompiler$ClassFileManager$1.findClass(SourceCompiler.java:520)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)



CREATE TRIGGER MY_TRIGGER BEFORE INSERT ON MY_TABLE AS $$
       org.h2.api.Trigger create() {
        return new Trig();
    }
    static class Trig implements  org.h2.api.Trigger {
            @Override
            public void remove() throws SQLException {
            }
            @Override
            public void init(Connection conn, String schemaName, String
triggerName, String tableName, boolean before,
                int type) throws SQLException {
            }
            @Override
            public void fire(Connection conn, Object[] oldRow, Object[]
newRow) throws SQLException {
            }
            @Override
            public void close() throws SQLException {
            }
    }
     $$;

Regards,
Thomas

On Wed, Mar 22, 2017 at 12:43 PM, Giulio Vito de Musso <
[email protected]> wrote:

> Hi Noel, thanks for the reply.
>
> This is the full stacktrace of the error
>
> SQL Error [90043] [90043]: Error creating or initializing trigger
> "MY_TRIGGER" object, class "..source..", cause: "org.h2.message.DbException:
> Syntax error in SQL statement ""
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } "" [42000-193]"; see root cause for details; SQL statement:
> CREATE TRIGGER MY_TRIGGER BEFORE INSERT ON CURRENT_APPLICATION_PROPERTY AS
> $$
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } $$ [90043-193]
>   Error creating or initializing trigger "MY_TRIGGER" object, class
> "..source..", cause: "org.h2.message.DbException: Syntax error in SQL
> statement ""
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } "" [42000-193]"; see root cause for details; SQL statement:
> CREATE TRIGGER MY_TRIGGER BEFORE INSERT ON CURRENT_APPLICATION_PROPERTY AS
> $$
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } $$ [90043-193]
>     Syntax error in SQL statement "
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } " [42000-193]
>       Syntax error in SQL statement "
>     org.h2.api.Trigger create() {
>         return new org.h2.api.Trigger() {
>
>
>             @Override
>             public void remove() throws SQLException {
>             }
>
>
>             @Override
>             public void init(Connection conn, String schemaName, String
> triggerName, String tableName, boolean before,
>                 int type) throws SQLException {
>             }
>
>
>             @Override
>             public void fire(Connection conn, Object[] oldRow, Object[]
> newRow) throws SQLException {
>             }
>
>
>             @Override
>             public void close() throws SQLException {
>             }
>         };
>
>
>     } " [42000-193]
>
>           java.lang.NullPointerException:
>
>
>
>
>
> Il giorno mercoledì 22 marzo 2017 12:13:34 UTC+1, Noel Grandin ha scritto:
>>
>> what does the rest of the exception trace look like?
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to