mycontroller-org / mycontroller-v1-legacy

The Open Source Controller
http://www.MyController.org
Apache License 2.0
147 stars 90 forks source link

Restoring backup leaves firmware blank. #313

Closed karrots closed 7 years ago

karrots commented 7 years ago

I upgraded from 0.0.3.Alpha2 to 0.0.3.FINAL SNAPSHOT. After restoring the backup all of my previous firmware were listed. When I went to look at them none had any HEX associated with them and they were unable to be used on sensors.

karrots commented 7 years ago

I should clarify. I am able to see the firmware listed under Utilities->Firmwares but I am unable to select them under the node configuration. This included newly added firmware as well.

jkandasa commented 7 years ago

@karrots Do you see any error on mycontroller.org? Kindly clear your browser cache and check once again.

karrots commented 7 years ago

When looking in the Chrome developer tools it looks like there is a failing REST call to https://localhost:9443/mc/rest/types/firmwares 500 (Internal server error)

Clearing cache did nothing.

2016-11-27 21:32:08,120 ERROR [Acme.Utils.ThreadPool(0)-PooledThread: Acme.Serve.Serve$ServeConnection@d32a489] [org.mycontroller.standalone.db.dao.BaseAbstractDaoImpl:323] unable to get all items
org.h2.jdbc.JdbcSQLException: Invalid value "8" for parameter "columnIndex" [90008-176]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
    at org.h2.message.DbException.get(DbException.java:178)
    at org.h2.message.DbException.getInvalidValueException(DbException.java:227)
    at org.h2.jdbc.JdbcResultSet.checkColumnIndex(JdbcResultSet.java:3165)
    at org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:3193)
    at org.h2.jdbc.JdbcResultSet.getBytes(JdbcResultSet.java:1056)
    at com.j256.ormlite.jdbc.JdbcDatabaseResults.getBytes(JdbcDatabaseResults.java:140)
    at com.j256.ormlite.field.types.SerializableType.resultToSqlArg(SerializableType.java:53)
    at com.j256.ormlite.field.BaseFieldConverter.resultToJava(BaseFieldConverter.java:26)
    at com.j256.ormlite.field.FieldType.resultToJava(FieldType.java:841)
    at com.j256.ormlite.stmt.mapped.BaseMappedQuery.mapRow(BaseMappedQuery.java:61)
    at com.j256.ormlite.stmt.SelectIterator.getCurrent(SelectIterator.java:284)
    at com.j256.ormlite.stmt.SelectIterator.nextThrow(SelectIterator.java:168)
    at com.j256.ormlite.stmt.StatementExecutor.query(StatementExecutor.java:202)
    at com.j256.ormlite.stmt.StatementExecutor.queryForAll(StatementExecutor.java:126)
    at com.j256.ormlite.dao.BaseDaoImpl.queryForAll(BaseDaoImpl.java:248)
    at org.mycontroller.standalone.db.dao.BaseAbstractDaoImpl.getAll(BaseAbstractDaoImpl.java:321)
    at org.mycontroller.standalone.utils.TypesUtils.getFirmwares(TypesUtils.java:734)
    at org.mycontroller.standalone.api.jaxrs.TypesHandler.getFirmwares(TypesHandler.java:195)
    at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:395)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
    at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
    at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
    at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
    at java.lang.Thread.run(Thread.java:745)
2016-11-27 21:32:08,120 ERROR [Acme.Utils.ThreadPool(0)-PooledThread: Acme.Serve.Serve$ServeConnection@d32a489] [org.mycontroller.standalone.api.jaxrs.exception.mappers.ApplicationExceptionMapper:42] ApplicationException,
org.jboss.resteasy.spi.ApplicationException: java.lang.NullPointerException
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:152)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
    at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:236)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:395)
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
    at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
    at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
    at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
    at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: null
    at org.mycontroller.standalone.utils.TypesUtils.getFirmwares(TypesUtils.java:735)
    at org.mycontroller.standalone.api.jaxrs.TypesHandler.getFirmwares(TypesHandler.java:195)
    at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
    ... 15 common frames omitted
jkandasa commented 7 years ago

@karrots Thank you to report this error with stack trace. I see this error after upgrade/migration from old database. I am looking root cause of this issue.

for now workaround is,

STOP and START MyController once again after successful migration.

karrots commented 7 years ago

STOP and START fixed my issue locally.

jkandasa commented 7 years ago

@karrots I have added fix kindly check it on latest SNAPSHOT version