Giter Site home page Giter Site logo

knowledge's People

Contributors

h-skm avatar ikuko avatar kaakaa avatar kkebo avatar koda-masaru avatar koda-masaru-work avatar ktat avatar makies avatar monota avatar nagodon avatar nikukyugamer avatar nokok avatar nyoronjp avatar shyazusa avatar vtjkinoshita avatar yuizho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

knowledge's Issues

しばらく使っているとInternal Server Errorが出る

どういう条件かまだわかりませんが、こちらの環境でしばらく使っていると、Internal Server Errorになることがあります。
Tomcatを再起動すると直ります。

環境

  • Knowledge 0.4.5
  • Ubuntu 14.10
  • Docker 1.3.1
  • Tomcat 8.0.9
  • OpenJDK 1.8.0_40

エラーログ

以下はノウハウ一覧を表示しようとした際のエラーログです。

ERROR 2015-03-11 00:02:30,970 [Transaction(41)] Error(Rollback) : org.support.project.knowledge.dao.KnowledgesDao_$$_jvst838_2#_d44selectKnowledges
ERROR 2015-03-11 00:02:30,976 [Transaction(45)] Error
org.h2.jdbc.JdbcSQLException: General error: "java.lang.IllegalArgumentException"; SQL statement:
COMMIT [50000-183]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.message.DbException.convert(DbException.java:295)
    at org.h2.command.Command.executeUpdate(Command.java:262)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:345)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:159)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
    at java.nio.Buffer.limit(Buffer.java:275)
    at org.h2.mvstore.Page$PageChildren.read(Page.java:1040)
    at org.h2.mvstore.MVStore.readPageChunkReferences(MVStore.java:1267)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1240)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1227)
    at org.h2.mvstore.MVStore.freeUnusedChunks(MVStore.java:1186)
    at org.h2.mvstore.MVStore.storeNow(MVStore.java:980)
    at org.h2.mvstore.MVStore.commitAndSave(MVStore.java:970)
    at org.h2.mvstore.MVStore.commit(MVStore.java:931)
    at org.h2.mvstore.db.TransactionStore.endTransaction(TransactionStore.java:450)
    at org.h2.mvstore.db.TransactionStore.commit(TransactionStore.java:348)
    at org.h2.mvstore.db.TransactionStore$Transaction.commit(TransactionStore.java:762)
    at org.h2.engine.Session.commit(Session.java:492)
    at org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:46)
    at org.h2.command.CommandContainer.update(CommandContainer.java:78)
    at org.h2.command.Command.executeUpdate(Command.java:254)
    ... 3 more

    at org.h2.engine.SessionRemote.done(SessionRemote.java:622)
    at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:191)
    at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:468)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.commit(PoolableConnectionWrapper.java:91)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.commit(PoolableConnectionWrapper.java:91)
    at org.support.project.ormapping.transaction.TransactionPool.commit(TransactionPool.java:98)
    at org.support.project.ormapping.transaction.TransactionManager.commit(TransactionManager.java:33)
    at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:36)
    at org.support.project.knowledge.logic.KnowledgeLogic.getKnowledgeDatas(KnowledgeLogic.java:421)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:264)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:318)
    at org.support.project.knowledge.control.open.KnowledgeControl.list(KnowledgeControl.java:170)
    at org.support.project.common.util.ObjectUtils.invoke(ObjectUtils.java:130)
    at org.support.project.web.common.InvokeTarget.invoke(InvokeTarget.java:83)
    at org.support.project.web.filter.ControlManagerFilter.doInvoke(ControlManagerFilter.java:349)
    at org.support.project.web.filter.ControlFilter.invoke(ControlFilter.java:32)
    at org.support.project.web.filter.ControlManagerFilter.doFilter(ControlManagerFilter.java:173)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.MultipartFilter.doFilter(MultipartFilter.java:79)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:199)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.LoggingFilter.doFilter(LoggingFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.EncodingFilter.doFilter(EncodingFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
ERROR 2015-03-11 00:02:30,983 [Transaction(46)] Error
org.h2.jdbc.JdbcSQLException: General error: "java.lang.IllegalStateException: Transaction is closed [1.4.183/4]"; SQL statement:
ROLLBACK [50000-183]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.message.DbException.convert(DbException.java:295)
    at org.h2.command.Command.executeUpdate(Command.java:262)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:345)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:159)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Transaction is closed [1.4.183/4]
    at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:768)
    at org.h2.mvstore.db.TransactionStore$Transaction.checkNotClosed(TransactionStore.java:804)
    at org.h2.mvstore.db.TransactionStore$Transaction.commit(TransactionStore.java:761)
    at org.h2.engine.Session.rollback(Session.java:575)
    at org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:49)
    at org.h2.command.CommandContainer.update(CommandContainer.java:78)
    at org.h2.command.Command.executeUpdate(Command.java:254)
    ... 3 more

    at org.h2.engine.SessionRemote.done(SessionRemote.java:622)
    at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:191)
    at org.h2.jdbc.JdbcConnection.rollbackInternal(JdbcConnection.java:1501)
    at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:489)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.rollback(PoolableConnectionWrapper.java:95)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.rollback(PoolableConnectionWrapper.java:95)
    at org.support.project.ormapping.transaction.TransactionPool.rollback(TransactionPool.java:106)
    at org.support.project.ormapping.transaction.TransactionManager.rollback(TransactionManager.java:38)
    at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:43)
    at org.support.project.knowledge.logic.KnowledgeLogic.getKnowledgeDatas(KnowledgeLogic.java:421)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:264)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:318)
    at org.support.project.knowledge.control.open.KnowledgeControl.list(KnowledgeControl.java:170)
    at org.support.project.common.util.ObjectUtils.invoke(ObjectUtils.java:130)
    at org.support.project.web.common.InvokeTarget.invoke(InvokeTarget.java:83)
    at org.support.project.web.filter.ControlManagerFilter.doInvoke(ControlManagerFilter.java:349)
    at org.support.project.web.filter.ControlFilter.invoke(ControlFilter.java:32)
    at org.support.project.web.filter.ControlManagerFilter.doFilter(ControlManagerFilter.java:173)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.MultipartFilter.doFilter(MultipartFilter.java:79)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:199)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.LoggingFilter.doFilter(LoggingFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.EncodingFilter.doFilter(EncodingFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
INFO  2015-03-11 00:02:30,985 [Intercepter(220)] [ERROR] class org.support.project.knowledge.dao.KnowledgesDao_$$_jvst838_2 : selectKnowledges : General error: "java.lang.IllegalArgumentException"; SQL statement:
COMMIT [50000-183]
INFO  2015-03-11 00:02:30,986 [Intercepter(215)] error. [object]class org.support.project.knowledge.logic.KnowledgeLogic_$$_jvst838_1[proceed]_d15searchKnowledge[param0][param1]null[param2]0[param3]10
General error: "java.lang.IllegalArgumentException"; SQL statement:
COMMIT [50000-183]
ERROR 2015-03-11 00:02:30,989 [ControlManagerFilter(195)] ERROR SEND
ERROR 2015-03-11 00:02:30,991 [LoggingFilter(63)] Any exception is thrown. [javax.servlet.ServletException]
javax.servlet.ServletException: javax.servlet.ServletException: org.support.project.common.exception.SystemException: 
    at org.support.project.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.LoggingFilter.doFilter(LoggingFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.EncodingFilter.doFilter(EncodingFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.servlet.ServletException: org.support.project.common.exception.SystemException: 
    at org.support.project.web.filter.ControlManagerFilter.doFilter(ControlManagerFilter.java:205)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.MultipartFilter.doFilter(MultipartFilter.java:79)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.support.project.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:199)
    ... 25 more
Caused by: org.support.project.common.exception.SystemException: 
    at org.support.project.common.util.ObjectUtils.invoke(ObjectUtils.java:134)
    at org.support.project.web.common.InvokeTarget.invoke(InvokeTarget.java:83)
    at org.support.project.web.filter.ControlManagerFilter.doInvoke(ControlManagerFilter.java:349)
    at org.support.project.web.filter.ControlFilter.invoke(ControlFilter.java:32)
    at org.support.project.web.filter.ControlManagerFilter.doFilter(ControlManagerFilter.java:173)
    ... 31 more
Caused by: java.lang.reflect.InvocationTargetException
    at org.support.project.common.util.ObjectUtils.invoke(ObjectUtils.java:130)
    ... 35 more
Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.IllegalArgumentException"; SQL statement:
COMMIT [50000-183]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.message.DbException.convert(DbException.java:295)
    at org.h2.command.Command.executeUpdate(Command.java:262)
    at org.h2.server.TcpServerThread.process(TcpServerThread.java:345)
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:159)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
    at java.nio.Buffer.limit(Buffer.java:275)
    at org.h2.mvstore.Page$PageChildren.read(Page.java:1040)
    at org.h2.mvstore.MVStore.readPageChunkReferences(MVStore.java:1267)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1240)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244)
    at org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1227)
    at org.h2.mvstore.MVStore.freeUnusedChunks(MVStore.java:1186)
    at org.h2.mvstore.MVStore.storeNow(MVStore.java:980)
    at org.h2.mvstore.MVStore.commitAndSave(MVStore.java:970)
    at org.h2.mvstore.MVStore.commit(MVStore.java:931)
    at org.h2.mvstore.db.TransactionStore.endTransaction(TransactionStore.java:450)
    at org.h2.mvstore.db.TransactionStore.commit(TransactionStore.java:348)
    at org.h2.mvstore.db.TransactionStore$Transaction.commit(TransactionStore.java:762)
    at org.h2.engine.Session.commit(Session.java:492)
    at org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:46)
    at org.h2.command.CommandContainer.update(CommandContainer.java:78)
    at org.h2.command.Command.executeUpdate(Command.java:254)
    ... 3 more

    at org.h2.engine.SessionRemote.done(SessionRemote.java:622)
    at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:191)
    at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:468)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.commit(PoolableConnectionWrapper.java:91)
    at org.support.project.ormapping.connection.PoolableConnectionWrapper.commit(PoolableConnectionWrapper.java:91)
    at org.support.project.ormapping.transaction.TransactionPool.commit(TransactionPool.java:98)
    at org.support.project.ormapping.transaction.TransactionManager.commit(TransactionManager.java:33)
    at org.support.project.ormapping.transaction.Transaction.invoke(Transaction.java:36)
    at org.support.project.knowledge.logic.KnowledgeLogic.getKnowledgeDatas(KnowledgeLogic.java:421)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:264)
    at org.support.project.knowledge.logic.KnowledgeLogic.searchKnowledge(KnowledgeLogic.java:318)
    at org.support.project.knowledge.control.open.KnowledgeControl.list(KnowledgeControl.java:170)
    ... 36 more

markdownのCSS

  • h2の下線
  • tableの罫線
  • githubやQiitaに近い見た目がいいです

ナレッジ一覧の表示速度の改善

ナレッジ一覧の表示がデモサイトで極端に悪い。(マシンパワーが貧弱)
一覧取得の処理を見なおして、速度改善する。

処理を簡単にするため、一覧を表示するナレッジの付加情報の取得を
1件づつ行っているが当然ボトルネックになっている。
まずは、そこから改善していく。

自分宛ての投稿の通知

公開範囲で「ユーザ」も指定可能にする #21
に関連して、自分宛ての投稿があったらメール通知する機能は欲しい
(ON/OFFできるように)

言語ファイルの指定方法をまとめる

現在、言語ファイルは「英語」と「日本語」を用意しているが、
リソースファイルを追加すれば別言語にも対応できる。

別言語で使いたいというリクエストが来てるので、追加できる方法をまとめる。
(Readme.mdに書けば良いかな)

データの保存先を変更

  • Windows環境で使っているのだが、データの保存先がシステムドライブなのがちょっと困る。
  • 環境変数等でデータドライブに保存先を変更するようにできないだろうか。

DBはPostgreSQLを推奨するような記載をどこかに書く

  • 利用を簡単にするため、Knowledge起動時にH2Databaseを組み込んで、それを起動していた
  • データ件数が多くなると、H2Databaseはパフォーマンスがかなり劣化する
  • PostgreSQLに切り替えると、パフォーマンスが目に見えて改善する

データのエクスポート

  • 使い続けていくうちに自分に合わないと感じるかもしれない。別のシステムに移りたい場合にどうやってデータを取り出したら?
  • Exportがあれば安心して仕事で使える。

パフォーマンスを改善する

対応

  • VPSのサーバーが貧弱なのもあるが、アクセスがそれなりにあるとパフォーマンスが非常に悪くなる。
  • そこでパフォーマンス改善を行う。

実施内容

  • データ表示時にXSS対策などを行っているが、保存時に実行して表示の時には実施しないように変更
  • メイン部分のSPA化
  • jsやcssの結合+圧縮

インデックスの再構築

バージョンアップの中で、コメントでも検索出来るようにしたが、検索インデックス(Lucene)に入っていないので検索できない。
また、DBをダンプから復元したような場合でも、インデックスは復元されない。
このため、インデックスを再更新する仕組みを作成する。

記事作成者以外にも編集ができるような機能が欲しい

現在の knowledge では記事の作成者のみが記事の編集が可能だと思います。(管理者権限を除く)
実際の情報共有の場では

  • 既存記事が古くなったので情報をアップデートしたい
  • 共同で何かを作りたい(既存の Wiki のような使い方)

もあるのではと思います。

そこで Qiita の 編集リクエストを作成 のような機能があると良いなと感じました。

年始の大型リリース第2弾!編集リクエスト機能をリリースしました! - Qiita Blog

指定の投稿の「コメント」の更新をウォッチ

  • 指定の記事に対し、コメントが追加された際にメールなどで通知が来る機能
  • Q&Aのような形で利用するチームがいて、そのときにコメントが熱くなったときに、通知が欲しいとのこと

クッキーを使ったログイン情報の保持

現状はセッションが切れるとログインし直す必要がありますが、クッキーを使って数日間程度はログイン情報を保持していただけるとより使いやすくなるかと思います。

検索機能強化

  • 現在は、ナレッジに書かれている内容や、添付ファイルの中身、コメントで検索出来る(全文検索)
  • タグや登録者などで絞り込んで検索出来るとうれしい

コメントでも検索

  • 現在、情報のタイトル、内容、添付ファイルの中身が検索できる
  • コメントの中にも情報が書かれるそうなので、コメントも検索の対象に入るようにする

IE対応

IE8

うちの社内だと年末までIE8推奨なので、対応してもらえると嬉しいです
(あと半年耐えればいい話ではあるのですが…)
http://qiita.com/kimromi/items/d2f234c90c07f5417a8f

IE11

互換表示設定をされているIE11でも閲覧できるようになると嬉しいです
たぶん、以下の様な指定があると互換表示が働かなくなるとおもうのですが…

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

Websiteの情報を記事としたい

  • 指定のURL のウェブの情報を登録して共有したい
  • そのURLに書かれている中身で検索できると良い
    • 他のサイトに書かれている内容(テキスト)を取得して検索できるようにしたら著作権違反?
    • Googleのような形で、検索結果(記事の一部)のみ表示して、そこから登録先のURLにリンクすれば問題無し?
  • 問題なければ、URLを登録して、そこに書かれている内容を取得してインデキシングする

お気に入りユーザの投稿をウォッチ

  • 特定のユーザをお気に入りに入れる
  • そのユーザが投稿したら、メールなどでお知らせが来る
  • 提供時期は未定(アイディアだけ忘備録で記載)

記事の更新履歴

バージョン数限定でも良いので、各記事の更新履歴が見られると良いです。
Markdownの格納はGitなどを使うと楽かもしれません。

組み込みDB以外にも対応

現在、インストールを簡単にするために、H2DatabaseをWebアプリ起動時に同時起動しています。
組織運用する場合、既にある管理されたDBを利用できるようにしたほうが良いかもという意見がある。

初期設定の中で、組み込みDBを起動するか、接続指定できるようにすることを検討する。
(SQLはpostgresql準拠で作っているのでpostgresqlでは動くと思う。)

既読・未読がわかるようにしたい

  • 読んだかどうかがわかるようにする
    • 「参考になった!」ボタンを押した人を見えるようにする?
      • それだと「参考になった!」ボタンを押しづらい?
    • 「読んだ」ボタンでもつけようかな?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.